change workspacetype to worksopace until
This commit is contained in:
@@ -19,8 +19,8 @@ export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const handleCreateWorkspace = async () => {
|
const handleCreateWorkspace = async () => {
|
||||||
const workspace = await createWorkspace(workspaceName);
|
const workspace = await createWorkspace(workspaceName);
|
||||||
if (workspace && workspace.room) {
|
if (workspace && workspace.id) {
|
||||||
router.replace(`/workspace/${workspace.room}`);
|
router.replace(`/workspace/${workspace.id}`);
|
||||||
onClose();
|
onClose();
|
||||||
} else {
|
} else {
|
||||||
console.log('create error');
|
console.log('create error');
|
||||||
|
|||||||
@@ -22,11 +22,11 @@ export const ImportModal = ({ open, onClose }: ImportModalProps) => {
|
|||||||
const { currentWorkspace } = useAppState();
|
const { currentWorkspace } = useAppState();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const _applyTemplate = function (pageId: string, template: Template) {
|
const _applyTemplate = function (pageId: string, template: Template) {
|
||||||
const page = currentWorkspace?.getPage(pageId);
|
const page = currentWorkspace?.blocksuiteWorkspace?.getPage(pageId);
|
||||||
|
|
||||||
const title = template.name;
|
const title = template.name;
|
||||||
if (page) {
|
if (page) {
|
||||||
currentWorkspace?.setPageMeta(page.id, { title });
|
currentWorkspace?.blocksuiteWorkspace?.setPageMeta(page.id, { title });
|
||||||
if (page && page.root === null) {
|
if (page && page.root === null) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
const editor = document.querySelector('editor-container');
|
const editor = document.querySelector('editor-container');
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ export const Input = (props: {
|
|||||||
}}
|
}}
|
||||||
placeholder={
|
placeholder={
|
||||||
isPublish
|
isPublish
|
||||||
? `Search in ${currentWorkspace?.meta.name}`
|
? `Search in ${currentWorkspace?.blocksuiteWorkspace?.meta.name}`
|
||||||
: 'Quick Search...'
|
: 'Quick Search...'
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export const WorkspaceModal = ({ open, onClose }: WorkspaceModalProps) => {
|
|||||||
router.replace(`/workspace/${item.id}`);
|
router.replace(`/workspace/${item.id}`);
|
||||||
onClose();
|
onClose();
|
||||||
}}
|
}}
|
||||||
active={item.id === currentWorkspace?.room}
|
active={item.id === currentWorkspace?.id}
|
||||||
key={index}
|
key={index}
|
||||||
>
|
>
|
||||||
<span style={{ width: '100px' }}>
|
<span style={{ width: '100px' }}>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export const useChangePageMeta = () => {
|
|||||||
|
|
||||||
return useCallback<ChangePageMeta>(
|
return useCallback<ChangePageMeta>(
|
||||||
(pageId, pageMeta) => {
|
(pageId, pageMeta) => {
|
||||||
currentWorkspace?.setPageMeta(pageId, {
|
currentWorkspace?.blocksuiteWorkspace?.setPageMeta(pageId, {
|
||||||
...pageMeta,
|
...pageMeta,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export const useCurrentPageMeta = (): PageMeta | null => {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
(currentWorkspace.meta.pageMetas.find(
|
(currentWorkspace.blocksuiteWorkspace?.meta.pageMetas.find(
|
||||||
p => p.id === currentPage.id
|
p => p.id === currentPage.id
|
||||||
) as PageMeta) ?? null
|
) as PageMeta) ?? null
|
||||||
);
|
);
|
||||||
@@ -22,9 +22,11 @@ export const useCurrentPageMeta = (): PageMeta | null => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setCurrentPageMeta(pageMetaHandler);
|
setCurrentPageMeta(pageMetaHandler);
|
||||||
|
|
||||||
const dispose = currentWorkspace?.meta.pagesUpdated.on(() => {
|
const dispose = currentWorkspace?.blocksuiteWorkspace?.meta.pagesUpdated.on(
|
||||||
setCurrentPageMeta(pageMetaHandler);
|
() => {
|
||||||
}).dispose;
|
setCurrentPageMeta(pageMetaHandler);
|
||||||
|
}
|
||||||
|
).dispose;
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
dispose?.();
|
dispose?.();
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import { Workspace, uuidv4 } from '@blocksuite/store';
|
import { uuidv4 } from '@blocksuite/store';
|
||||||
import { QueryContent } from '@blocksuite/store/dist/workspace/search';
|
import { QueryContent } from '@blocksuite/store/dist/workspace/search';
|
||||||
import { PageMeta, useAppState } from '@/providers/app-state-provider';
|
import { PageMeta, useAppState } from '@/providers/app-state-provider';
|
||||||
import { EditorContainer } from '@blocksuite/editor';
|
import { EditorContainer } from '@blocksuite/editor';
|
||||||
import { useChangePageMeta } from '@/hooks/use-change-page-meta';
|
import { useChangePageMeta } from '@/hooks/use-change-page-meta';
|
||||||
import { useRouter } from 'next/router';
|
import { useRouter } from 'next/router';
|
||||||
|
import { WorkspaceUnit } from '@affine/datacenter';
|
||||||
|
|
||||||
export type EditorHandlers = {
|
export type EditorHandlers = {
|
||||||
createPage: (params?: {
|
createPage: (params?: {
|
||||||
@@ -27,8 +28,10 @@ export type EditorHandlers = {
|
|||||||
) => Promise<EditorContainer['mode']>;
|
) => Promise<EditorContainer['mode']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getPageMeta = (workspace: Workspace | null, pageId: string) => {
|
const getPageMeta = (workspace: WorkspaceUnit | null, pageId: string) => {
|
||||||
return workspace?.meta.pageMetas.find(p => p.id === pageId);
|
return workspace?.blocksuiteWorkspace?.meta.pageMetas.find(
|
||||||
|
p => p.id === pageId
|
||||||
|
);
|
||||||
};
|
};
|
||||||
export const usePageHelper = (): EditorHandlers => {
|
export const usePageHelper = (): EditorHandlers => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@@ -44,11 +47,15 @@ export const usePageHelper = (): EditorHandlers => {
|
|||||||
if (!currentWorkspace) {
|
if (!currentWorkspace) {
|
||||||
return resolve(null);
|
return resolve(null);
|
||||||
}
|
}
|
||||||
currentWorkspace.createPage(pageId);
|
currentWorkspace.blocksuiteWorkspace?.createPage(pageId);
|
||||||
currentWorkspace.signals.pageAdded.once(addedPageId => {
|
currentWorkspace.blocksuiteWorkspace?.signals.pageAdded.once(
|
||||||
currentWorkspace.setPageMeta(addedPageId, { title });
|
addedPageId => {
|
||||||
resolve(addedPageId);
|
currentWorkspace.blocksuiteWorkspace?.setPageMeta(addedPageId, {
|
||||||
});
|
title,
|
||||||
|
});
|
||||||
|
resolve(addedPageId);
|
||||||
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
toggleFavoritePage: async pageId => {
|
toggleFavoritePage: async pageId => {
|
||||||
@@ -78,7 +85,7 @@ export const usePageHelper = (): EditorHandlers => {
|
|||||||
},
|
},
|
||||||
search: (query: QueryContent) => {
|
search: (query: QueryContent) => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||||
return currentWorkspace!.search(query);
|
return currentWorkspace!.blocksuiteWorkspace!.search(query);
|
||||||
},
|
},
|
||||||
changePageMode: async (pageId, mode) => {
|
changePageMode: async (pageId, mode) => {
|
||||||
const pageMeta = getPageMeta(currentWorkspace, pageId);
|
const pageMeta = getPageMeta(currentWorkspace, pageId);
|
||||||
@@ -96,7 +103,7 @@ export const usePageHelper = (): EditorHandlers => {
|
|||||||
permanentlyDeletePage: pageId => {
|
permanentlyDeletePage: pageId => {
|
||||||
// TODO: workspace.meta.removePage or workspace.removePage?
|
// TODO: workspace.meta.removePage or workspace.removePage?
|
||||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||||
currentWorkspace!.meta.removePage(pageId);
|
currentWorkspace!.blocksuiteWorkspace?.meta.removePage(pageId);
|
||||||
},
|
},
|
||||||
openPage: (pageId, query = {}, newTab = false) => {
|
openPage: (pageId, query = {}, newTab = false) => {
|
||||||
pageId = pageId.replace('space:', '');
|
pageId = pageId.replace('space:', '');
|
||||||
@@ -116,7 +123,7 @@ export const usePageHelper = (): EditorHandlers => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
(currentWorkspace.meta.pageMetas.find(
|
(currentWorkspace.blocksuiteWorkspace?.meta.pageMetas.find(
|
||||||
page => page.id === pageId
|
page => page.id === pageId
|
||||||
) as PageMeta) || null
|
) as PageMeta) || null
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { useAppState } from '@/providers/app-state-provider';
|
import { useAppState } from '@/providers/app-state-provider';
|
||||||
import { useConfirm } from '@/providers/ConfirmProvider';
|
import { useConfirm } from '@/providers/ConfirmProvider';
|
||||||
import { toast } from '@/ui/toast';
|
import { toast } from '@/ui/toast';
|
||||||
import { Workspace } from '@blocksuite/store';
|
import { WorkspaceUnit } from '@affine/datacenter';
|
||||||
import router from 'next/router';
|
import router from 'next/router';
|
||||||
|
|
||||||
export const useWorkspaceHelper = () => {
|
export const useWorkspaceHelper = () => {
|
||||||
@@ -12,8 +12,8 @@ export const useWorkspaceHelper = () => {
|
|||||||
const workspaceInfo = await dataCenter.createWorkspace({
|
const workspaceInfo = await dataCenter.createWorkspace({
|
||||||
name: name,
|
name: name,
|
||||||
});
|
});
|
||||||
if (workspaceInfo && workspaceInfo.room) {
|
if (workspaceInfo && workspaceInfo.id) {
|
||||||
return await dataCenter.loadWorkspace(workspaceInfo.room);
|
return await dataCenter.loadWorkspace(workspaceInfo.id);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
@@ -26,14 +26,14 @@ export const useWorkspaceHelper = () => {
|
|||||||
|
|
||||||
const updateWorkspace = async (
|
const updateWorkspace = async (
|
||||||
{ name, avatarBlob }: { name?: string; avatarBlob?: Blob },
|
{ name, avatarBlob }: { name?: string; avatarBlob?: Blob },
|
||||||
workspace: Workspace
|
workspace: WorkspaceUnit
|
||||||
) => {
|
) => {
|
||||||
if (name) {
|
if (name) {
|
||||||
await dataCenter.updateWorkspaceMeta({ name }, workspace);
|
await dataCenter.updateWorkspaceMeta({ name }, workspace);
|
||||||
}
|
}
|
||||||
if (avatarBlob) {
|
if (avatarBlob) {
|
||||||
const blobId = await dataCenter.setBlob(workspace, avatarBlob);
|
// const blobId = await dataCenter.setBlob(workspace, avatarBlob);
|
||||||
await dataCenter.updateWorkspaceMeta({ avatar: blobId }, workspace);
|
// await dataCenter.updateWorkspaceMeta({ avatar: blobId }, workspace);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -37,11 +37,11 @@ const All = () => {
|
|||||||
const { openPage, createPage } = usePageHelper();
|
const { openPage, createPage } = usePageHelper();
|
||||||
const { currentWorkspace } = useAppState();
|
const { currentWorkspace } = useAppState();
|
||||||
const _applyTemplate = function (pageId: string, template: Template) {
|
const _applyTemplate = function (pageId: string, template: Template) {
|
||||||
const page = currentWorkspace?.getPage(pageId);
|
const page = currentWorkspace?.blocksuiteWorkspace?.getPage(pageId);
|
||||||
|
|
||||||
const title = template.name;
|
const title = template.name;
|
||||||
if (page) {
|
if (page) {
|
||||||
currentWorkspace?.setPageMeta(page.id, { title });
|
currentWorkspace?.blocksuiteWorkspace?.setPageMeta(page.id, { title });
|
||||||
if (page && page.root === null) {
|
if (page && page.root === null) {
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
const editor = document.querySelector('editor-container');
|
const editor = document.querySelector('editor-container');
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
||||||
import {
|
import {
|
||||||
PropsWithChildren,
|
PropsWithChildren,
|
||||||
ReactElement,
|
ReactElement,
|
||||||
@@ -31,10 +30,10 @@ const Page: NextPageWithLayout = () => {
|
|||||||
<EditorHeader />
|
<EditorHeader />
|
||||||
<MobileModal />
|
<MobileModal />
|
||||||
|
|
||||||
{currentPage && currentWorkspace && (
|
{currentPage && currentWorkspace?.blocksuiteWorkspace && (
|
||||||
<DynamicBlocksuite
|
<DynamicBlocksuite
|
||||||
page={currentPage}
|
page={currentPage}
|
||||||
workspace={currentWorkspace}
|
workspace={currentWorkspace.blocksuiteWorkspace}
|
||||||
setEditor={setEditorHandler}
|
setEditor={setEditorHandler}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
@@ -52,9 +51,10 @@ const PageDefender = ({ children }: PropsWithChildren) => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const initPage = async () => {
|
const initPage = async () => {
|
||||||
const pageId = router.query.pageId as string;
|
const pageId = router.query.pageId as string;
|
||||||
const isPageExist = !!currentWorkspace!.meta.pageMetas.find(
|
const isPageExist =
|
||||||
p => p.id === pageId
|
currentWorkspace?.blocksuiteWorkspace?.meta?.pageMetas.find(
|
||||||
);
|
p => p.id === pageId
|
||||||
|
);
|
||||||
if (!isPageExist) {
|
if (!isPageExist) {
|
||||||
await createPage({ pageId });
|
await createPage({ pageId });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ const WorkspaceIndex = () => {
|
|||||||
if (!workspaceLoaded) {
|
if (!workspaceLoaded) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const savedPageId = currentWorkspace?.meta.pageMetas[0]?.id;
|
const savedPageId =
|
||||||
|
currentWorkspace?.blocksuiteWorkspace?.meta.pageMetas[0]?.id;
|
||||||
if (savedPageId) {
|
if (savedPageId) {
|
||||||
router.replace(`/workspace/${activeWorkspaceId}/${savedPageId}`);
|
router.replace(`/workspace/${activeWorkspaceId}/${savedPageId}`);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -48,18 +48,21 @@ export const AppStateProvider = ({
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!appState?.currentWorkspace) {
|
if (!appState?.currentWorkspace?.blocksuiteWorkspace) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const currentWorkspace = appState.currentWorkspace;
|
const currentWorkspace = appState.currentWorkspace;
|
||||||
const dispose = currentWorkspace.meta.pagesUpdated.on(() => {
|
const dispose = currentWorkspace?.blocksuiteWorkspace?.meta.pagesUpdated.on(
|
||||||
setAppState({
|
() => {
|
||||||
...appState,
|
setAppState({
|
||||||
pageList: currentWorkspace.meta.pageMetas as PageMeta[],
|
...appState,
|
||||||
});
|
pageList: currentWorkspace.blocksuiteWorkspace?.meta
|
||||||
}).dispose;
|
.pageMetas as PageMeta[],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
).dispose;
|
||||||
return () => {
|
return () => {
|
||||||
dispose();
|
dispose && dispose();
|
||||||
};
|
};
|
||||||
}, [appState]);
|
}, [appState]);
|
||||||
|
|
||||||
@@ -83,7 +86,7 @@ export const AppStateProvider = ({
|
|||||||
if (pageId === currentPage?.id) {
|
if (pageId === currentPage?.id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const page = currentWorkspace?.getPage(pageId) || null;
|
const page = currentWorkspace?.blocksuiteWorkspace?.getPage(pageId) || null;
|
||||||
setAppState({
|
setAppState({
|
||||||
...appState,
|
...appState,
|
||||||
currentPage: page,
|
currentPage: page,
|
||||||
@@ -103,16 +106,17 @@ export const AppStateProvider = ({
|
|||||||
const workspace = await dataCenter.loadWorkspace(workspaceId);
|
const workspace = await dataCenter.loadWorkspace(workspaceId);
|
||||||
const currentMetaWorkSpace = dataCenter.workspaces.find(
|
const currentMetaWorkSpace = dataCenter.workspaces.find(
|
||||||
(item: WorkspaceUnit) => {
|
(item: WorkspaceUnit) => {
|
||||||
return item.id.toString() === workspace.room;
|
return item.id.toString() === workspace.id;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
const pageList =
|
||||||
|
(workspace?.blocksuiteWorkspace?.meta.pageMetas as PageMeta[]) ?? [];
|
||||||
setAppState({
|
setAppState({
|
||||||
...appState,
|
...appState,
|
||||||
currentWorkspace: workspace,
|
currentWorkspace: workspace,
|
||||||
currentWorkspaceId: workspaceId,
|
currentWorkspaceId: workspaceId,
|
||||||
currentMetaWorkSpace: currentMetaWorkSpace ?? null,
|
currentMetaWorkSpace: currentMetaWorkSpace ?? null,
|
||||||
pageList: currentWorkspace?.meta.pageMetas as PageMeta[],
|
pageList: pageList,
|
||||||
currentPage: null,
|
currentPage: null,
|
||||||
editor: null,
|
editor: null,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import type { EditorContainer } from '@blocksuite/editor';
|
|||||||
|
|
||||||
import type {
|
import type {
|
||||||
Page as StorePage,
|
Page as StorePage,
|
||||||
Workspace as StoreWorkspace,
|
|
||||||
PageMeta as StorePageMeta,
|
PageMeta as StorePageMeta,
|
||||||
} from '@blocksuite/store';
|
} from '@blocksuite/store';
|
||||||
import { MutableRefObject } from 'react';
|
import { MutableRefObject } from 'react';
|
||||||
@@ -19,7 +18,7 @@ export type AppStateValue = {
|
|||||||
dataCenter: DataCenter;
|
dataCenter: DataCenter;
|
||||||
user: User | null;
|
user: User | null;
|
||||||
workspaceList: WorkspaceUnit[];
|
workspaceList: WorkspaceUnit[];
|
||||||
currentWorkspace: StoreWorkspace | null;
|
currentWorkspace: WorkspaceUnit | null;
|
||||||
currentMetaWorkSpace: WorkspaceUnit | null;
|
currentMetaWorkSpace: WorkspaceUnit | null;
|
||||||
currentWorkspaceId: string;
|
currentWorkspaceId: string;
|
||||||
pageList: PageMeta[];
|
pageList: PageMeta[];
|
||||||
@@ -31,7 +30,7 @@ export type AppStateValue = {
|
|||||||
export type AppStateFunction = {
|
export type AppStateFunction = {
|
||||||
setEditor: MutableRefObject<(page: EditorContainer) => void>;
|
setEditor: MutableRefObject<(page: EditorContainer) => void>;
|
||||||
|
|
||||||
loadWorkspace: (workspaceId: string) => Promise<StoreWorkspace | null>;
|
loadWorkspace: (workspaceId: string) => Promise<WorkspaceUnit | null>;
|
||||||
loadPage: (pageId: string) => void;
|
loadPage: (pageId: string) => void;
|
||||||
|
|
||||||
login: () => Promise<User>;
|
login: () => Promise<User>;
|
||||||
|
|||||||
@@ -23,7 +23,23 @@ export class LocalProvider extends BaseProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _storeWorkspaces(workspaces: WorkspaceMeta0[]) {
|
private _storeWorkspaces(workspaces: WorkspaceMeta0[]) {
|
||||||
storage.setItem(WORKSPACE_KEY, JSON.stringify(workspaces));
|
storage.setItem(
|
||||||
|
WORKSPACE_KEY,
|
||||||
|
JSON.stringify(
|
||||||
|
workspaces.map(w => {
|
||||||
|
return {
|
||||||
|
id: w.id,
|
||||||
|
name: w.name,
|
||||||
|
avatar: w.avatar,
|
||||||
|
owner: w.owner,
|
||||||
|
published: w.published,
|
||||||
|
memberCount: w.memberCount,
|
||||||
|
provider: w.provider,
|
||||||
|
syncMode: w.syncMode,
|
||||||
|
};
|
||||||
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async linkLocal(workspace: BlocksuiteWorkspace) {
|
public override async linkLocal(workspace: BlocksuiteWorkspace) {
|
||||||
|
|||||||
Reference in New Issue
Block a user