mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-02 01:49:51 +08:00
Merge branch 'feat/datacenter' of github.com:toeverything/AFFiNE into feat/datacenter
This commit is contained in:
@@ -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', [
|
||||||
|
|||||||
Reference in New Issue
Block a user