From 8df66a2a94d106276fb3bf33ac8ad9f19716e328 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Fri, 9 Jan 2026 20:26:05 +0100 Subject: [PATCH] Private message caching --- src/app/auth/CreateAccount.tsx | 1 + src/app/auth/Login.tsx | 1 + src/hooks/use-app.ts | 17 +++++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/src/app/auth/CreateAccount.tsx b/src/app/auth/CreateAccount.tsx index 8424e67..2e35eff 100644 --- a/src/app/auth/CreateAccount.tsx +++ b/src/app/auth/CreateAccount.tsx @@ -83,6 +83,7 @@ export default function CreateAccount() { Cookies.set("verify_temp_password", password); router.push(`/verify`); Cookies.set("servers", ""); + localStorage.clear(); } else { setFeedback({ message: response.message, kind: "error" }); } diff --git a/src/app/auth/Login.tsx b/src/app/auth/Login.tsx index 31e8a2e..cd6265f 100644 --- a/src/app/auth/Login.tsx +++ b/src/app/auth/Login.tsx @@ -30,6 +30,7 @@ export default function Login() { }); Cookies.set("servers", ""); + localStorage.clear(); router.push("/chat"); } catch (err: any) { setFeedback({ diff --git a/src/hooks/use-app.ts b/src/hooks/use-app.ts index dff41a5..87ce7b0 100644 --- a/src/hooks/use-app.ts +++ b/src/hooks/use-app.ts @@ -27,6 +27,7 @@ export default function useApp(): App { >({}); const [speaking, setSpeaking] = useState>({}); + const [pmsLoaded, setPmsLoaded] = useState(false); useEffect(() => { const stored = Cookies.get("servers"); @@ -42,6 +43,22 @@ export default function useApp(): App { .catch(toast.error); }, []); + useEffect(() => { + const json = localStorage.getItem("privateMessages"); + if (json) { + privateMessages.setMessages(JSON.parse(json)); + } + setPmsLoaded(true); + }, []); + + useEffect(() => { + if (!pmsLoaded) return; + localStorage.setItem( + "privateMessages", + JSON.stringify(privateMessages.messages) + ); + }, [privateMessages.messages, pmsLoaded]); + return { speaking, setSpeaking,