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);