chore: fix initial state

This commit is contained in:
Steven 2024-06-03 23:15:37 +08:00
parent 769b474bdc
commit e0e4a1af8f
3 changed files with 9 additions and 5 deletions

View File

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

View File

@ -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.
}

View File

@ -11,17 +11,17 @@ interface WorkspaceState {
fetchWorkspaceSetting: () => Promise<WorkspaceSetting>;
}
const useWorkspaceStore = create<WorkspaceState>()((set) => ({
const useWorkspaceStore = create<WorkspaceState>()((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;
},
}));