32 lines
973 B
TypeScript
32 lines
973 B
TypeScript
import { useEffect, useState } from "react";
|
|
import { initialGlobalState } from "@/store/module";
|
|
import { useUserStore, useWorkspaceSettingStore } from "@/store/v1";
|
|
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
|
|
|
|
interface Props {
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
const CommonContextProvider = (props: Props) => {
|
|
const workspaceSettingStore = useWorkspaceSettingStore();
|
|
const userStore = useUserStore();
|
|
const [loading, setLoading] = useState(true);
|
|
|
|
useEffect(() => {
|
|
const initialState = async () => {
|
|
await initialGlobalState();
|
|
await workspaceSettingStore.fetchWorkspaceSetting(WorkspaceSettingKey.WORKSPACE_SETTING_GENERAL);
|
|
try {
|
|
await userStore.fetchCurrentUser();
|
|
} catch (error) {
|
|
// Do nothing.
|
|
}
|
|
};
|
|
|
|
Promise.all([initialState()]).then(() => setLoading(false));
|
|
}, []);
|
|
|
|
return loading ? null : <>{props.children}</>;
|
|
};
|
|
|
|
export default CommonContextProvider;
|