diff --git a/frontend/web/src/App.tsx b/frontend/web/src/App.tsx index b510364..3c489e2 100644 --- a/frontend/web/src/App.tsx +++ b/frontend/web/src/App.tsx @@ -13,7 +13,9 @@ function App() { // Redirect to sign up page if no instance owner. useEffect(() => { if (!workspaceStore.profile.owner) { - navigateTo("/auth/signup"); + navigateTo("/auth/signup", { + replace: true, + }); } }, [workspaceStore.profile]); diff --git a/frontend/web/src/layouts/CommonContextProvider.tsx b/frontend/web/src/layouts/CommonContextProvider.tsx index d4fc59e..c03e4ba 100644 --- a/frontend/web/src/layouts/CommonContextProvider.tsx +++ b/frontend/web/src/layouts/CommonContextProvider.tsx @@ -14,7 +14,9 @@ const CommonContextProvider = ({ children }: { children: React.ReactNode }) => { useEffect(() => { (async () => { try { - await Promise.all([workspaceStore.fetchWorkspaceProfile(), workspaceStore.fetchWorkspaceSetting(), userStore.fetchCurrentUser()]); + await workspaceStore.fetchWorkspaceProfile(); + await workspaceStore.fetchWorkspaceSetting(); + await userStore.fetchCurrentUser(); } catch (error) { // Do nothing. } diff --git a/frontend/web/src/stores/workspace.ts b/frontend/web/src/stores/workspace.ts index 896bfcc..c713a5c 100644 --- a/frontend/web/src/stores/workspace.ts +++ b/frontend/web/src/stores/workspace.ts @@ -11,17 +11,17 @@ interface WorkspaceState { fetchWorkspaceSetting: () => Promise; } -const useWorkspaceStore = create()((set) => ({ +const useWorkspaceStore = create()((set, get) => ({ profile: WorkspaceProfile.fromPartial({}), setting: WorkspaceSetting.fromPartial({}), fetchWorkspaceProfile: async () => { const workspaceProfile = (await workspaceServiceClient.getWorkspaceProfile({})).profile as WorkspaceProfile; - set({ profile: workspaceProfile }); + set({ ...get(), profile: workspaceProfile }); return workspaceProfile; }, fetchWorkspaceSetting: async () => { const workspaceSetting = (await workspaceServiceClient.getWorkspaceSetting({})).setting as WorkspaceSetting; - set({ setting: workspaceSetting }); + set({ ...get(), setting: workspaceSetting }); return workspaceSetting; }, }));