Merge branch 'feat/datacenter' of github.com:toeverything/AFFiNE into feat/datacenter

This commit is contained in:
QiShaoXuan
2023-01-10 21:10:03 +08:00
5 changed files with 14 additions and 12 deletions
@@ -7,6 +7,9 @@ export const useEnsureWorkspace = () => {
const [workspaceLoaded, setWorkspaceLoaded] = useState(false); const [workspaceLoaded, setWorkspaceLoaded] = useState(false);
const { workspaceList, loadWorkspace, user } = useAppState(); const { workspaceList, loadWorkspace, user } = useAppState();
const router = useRouter(); const router = useRouter();
const [activeWorkspaceId, setActiveWorkspaceId] = useState(
router.query.workspaceId as string
);
// const defaultOutLineWorkspaceId = '99ce7eb7'; // const defaultOutLineWorkspaceId = '99ce7eb7';
// console.log(defaultOutLineWorkspaceId); // console.log(defaultOutLineWorkspaceId);
@@ -35,15 +38,15 @@ export const useEnsureWorkspace = () => {
const workspaceId = const workspaceId =
(router.query.workspaceId as string) || workspaceList[0]?.id; (router.query.workspaceId as string) || workspaceList[0]?.id;
loadWorkspace(workspaceId).finally(() => { loadWorkspace(workspaceId).finally(() => {
console.log('workspaceId: ', workspaceId);
setWorkspaceLoaded(true); setWorkspaceLoaded(true);
setActiveWorkspaceId(activeWorkspaceId);
}); });
}, [loadWorkspace, router, user, workspaceList]); }, [loadWorkspace, router, user, workspaceList]);
return { return {
workspaceLoaded, workspaceLoaded,
activeWorkspaceId,
}; };
}; };
@@ -9,23 +9,23 @@ const WorkspaceIndex = () => {
const router = useRouter(); const router = useRouter();
const { currentWorkspaceId, currentWorkspace } = useAppState(); const { currentWorkspaceId, currentWorkspace } = useAppState();
const { createPage } = usePageHelper(); const { createPage } = usePageHelper();
const { workspaceLoaded } = useEnsureWorkspace(); const { workspaceLoaded, activeWorkspaceId } = useEnsureWorkspace();
console.log('workspaceLoaded: ', workspaceLoaded);
useEffect(() => { useEffect(() => {
const initPage = async () => { const initPage = async () => {
if (!workspaceLoaded) { if (!workspaceLoaded) {
return; return;
} }
const savedPageId = currentWorkspace?.meta.pageMetas[0]?.id; const savedPageId = currentWorkspace?.meta.pageMetas[0]?.id;
console.log('savedPageId: ', savedPageId);
if (savedPageId) { if (savedPageId) {
router.replace(`/workspace/${currentWorkspaceId}/${savedPageId}`); router.replace(`/workspace/${activeWorkspaceId}/${savedPageId}`);
return; return;
} }
const pageId = await createPage(); const pageId = await createPage();
router.replace(`/workspace/${currentWorkspaceId}/${pageId}`); router.replace(`/workspace/${activeWorkspaceId}/${pageId}`);
}; };
initPage(); initPage();
}, [ }, [
@@ -11,7 +11,6 @@ export const WorkspaceIndex = () => {
useEffect(() => { useEffect(() => {
if (workspaceLoaded) { if (workspaceLoaded) {
console.log('workspaceLoaded: ', workspaceLoaded);
router.push(`/workspace/${currentWorkspaceId}`); router.push(`/workspace/${currentWorkspaceId}`);
} }
}, [currentWorkspaceId, router, workspaceLoaded]); }, [currentWorkspaceId, router, workspaceLoaded]);
@@ -89,22 +89,22 @@ export const AppStateProvider = ({
const loadWorkspace = useRef<AppStateFunction['loadWorkspace']>(); const loadWorkspace = useRef<AppStateFunction['loadWorkspace']>();
loadWorkspace.current = async (workspaceId: string) => { loadWorkspace.current = async (workspaceId: string) => {
console.log('loadWorkspace');
const { dataCenter, workspaceList, currentWorkspaceId, currentWorkspace } = const { dataCenter, workspaceList, currentWorkspaceId, currentWorkspace } =
appState; appState;
if (!workspaceList.find(v => v.id === workspaceId)) { if (!workspaceList.find(v => v.id.toString() === workspaceId)) {
return null; return null;
} }
if (workspaceId === currentWorkspaceId) { if (workspaceId === currentWorkspaceId) {
return currentWorkspace; return currentWorkspace;
} }
const workspace = await dataCenter.loadWorkspace(workspaceId); const workspace = await dataCenter.loadWorkspace(workspaceId);
const currentMetaWorkSpace = dataCenter.workspaces.find( const currentMetaWorkSpace = dataCenter.workspaces.find(
(item: WorkspaceInfo) => { (item: WorkspaceInfo) => {
return item.id === workspace.room; return item.id === workspace.room;
} }
); );
setAppState({ setAppState({
...appState, ...appState,
currentWorkspace: workspace, currentWorkspace: workspace,
@@ -41,7 +41,7 @@ export class WorkspaceMetaCollection extends Observable<'change'> {
if (this._workspacesMap.has(workspace.id)) { if (this._workspacesMap.has(workspace.id)) {
throw new Error(`Duplicate workspace id.`); throw new Error(`Duplicate workspace id.`);
} }
this._workspacesMap.set(workspace.id, workspace); this._workspacesMap.set(workspace.id.toString(), workspace);
scopedWorkspaceIds.add(workspace.id); scopedWorkspaceIds.add(workspace.id);
this.emit('change', [ this.emit('change', [