From b7a53d2d8a7701b62da608d6be866c187ab9d87a Mon Sep 17 00:00:00 2001 From: Oliver Bryan <04oliverbryan@gmail.com> Date: Tue, 6 Jan 2026 14:50:40 +0000 Subject: [PATCH] update user state variable on change --- packages/frontend/src/Index.tsx | 15 +++++++++++++-- .../frontend/src/components/account-dialog.tsx | 5 +++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/frontend/src/Index.tsx b/packages/frontend/src/Index.tsx index 2d71ed5..e075435 100644 --- a/packages/frontend/src/Index.tsx +++ b/packages/frontend/src/Index.tsx @@ -23,7 +23,9 @@ import { ResizablePanel, ResizablePanelGroup, ResizableSeparator } from "@/compo import { issue, organisation, project } from "@/lib/server"; function Index() { - const user = JSON.parse(localStorage.getItem("user") || "{}") as UserRecord; + const userData = JSON.parse(localStorage.getItem("user") || "{}") as UserRecord; + + const [user, setUser] = useState(userData); const organisationsRef = useRef(false); const [organisations, setOrganisations] = useState([]); @@ -35,6 +37,11 @@ function Index() { const [issues, setIssues] = useState([]); const [selectedIssue, setSelectedIssue] = useState(null); + const refetchUser = async () => { + const userData = JSON.parse(localStorage.getItem("user") || "{}") as UserRecord; + setUser(userData); + }; + const refetchOrganisations = async (options?: { selectOrganisationId?: number }) => { try { await organisation.byUser({ @@ -220,7 +227,11 @@ function Index() { - + { + refetchUser(); + }} + /> void; trigger?: ReactNode }) { const [open, setOpen] = useState(false); const [name, setName] = useState(""); const [username, setUsername] = useState(""); @@ -57,7 +57,8 @@ function AccountDialog({ trigger }: { trigger?: ReactNode }) { setError(""); localStorage.setItem("user", JSON.stringify(data)); setPassword(""); - window.location.reload(); + onUpdate?.(); + setOpen(false); }, onError: (errorMessage) => { setError(errorMessage);