From 6047243d2e3d60b3cb09295b82df2eb2af2cdb65 Mon Sep 17 00:00:00 2001 From: tzhangchi Date: Fri, 23 Dec 2022 21:34:07 +0800 Subject: [PATCH] feat: update the strategy of workspace id and page id generator --- packages/app/src/hooks/use-ensure-workspace.ts | 10 ++++++++-- .../app/src/providers/app-state-provider/provider.tsx | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/app/src/hooks/use-ensure-workspace.ts b/packages/app/src/hooks/use-ensure-workspace.ts index 57a61c4664..fa59403547 100644 --- a/packages/app/src/hooks/use-ensure-workspace.ts +++ b/packages/app/src/hooks/use-ensure-workspace.ts @@ -1,14 +1,17 @@ import { useState, useEffect } from 'react'; import { useAppState } from '@/providers/app-state-provider'; import { useRouter } from 'next/router'; + // It is a fully effective hook // Cause it not just ensure workspace loaded, but also have router change. export const useEnsureWorkspace = () => { const [workspaceLoaded, setWorkspaceLoaded] = useState(false); const { workspacesMeta, loadWorkspace, synced, user } = useAppState(); const router = useRouter(); - const defaultOutLineWorkspaceId = '99ce7eb7'; - + const defaultOutLineWorkspaceId = + 'local-first-' + '85b4ca0b-9081-421d-903b-bc2501ea280f'; + // const defaultOutLineWorkspaceId = '99ce7eb7'; + // console.log(defaultOutLineWorkspaceId); useEffect(() => { if (!synced) { setWorkspaceLoaded(false); @@ -23,6 +26,7 @@ export const useEnsureWorkspace = () => { meta => meta.id.toString() === router.query.workspaceId ) === -1 ) { + debugger; router.push('/404'); return; } @@ -32,6 +36,8 @@ export const useEnsureWorkspace = () => { router.query.workspaceId && router.query.workspaceId !== defaultOutLineWorkspaceId ) { + debugger; + router.push('/404'); return; } diff --git a/packages/app/src/providers/app-state-provider/provider.tsx b/packages/app/src/providers/app-state-provider/provider.tsx index 52acf87ffc..a2c960cf0f 100644 --- a/packages/app/src/providers/app-state-provider/provider.tsx +++ b/packages/app/src/providers/app-state-provider/provider.tsx @@ -5,7 +5,6 @@ import { token, AccessTokenMessage, getWorkspaces, - downloadWorkspace, } from '@pathfinder/data-services'; import { AppState, AppStateContext } from './context'; import type { @@ -15,6 +14,7 @@ import type { } from './context'; import { Page, Workspace as StoreWorkspace } from '@blocksuite/store'; import { EditorContainer } from '@blocksuite/editor'; +import { uuidv4 as uuidv4IdGenerator } from '@blocksuite/store'; const DynamicBlocksuite = dynamic(() => import('./dynamic-blocksuite'), { ssr: false, }); @@ -153,7 +153,7 @@ export const AppStateProvider = ({ children }: { children?: ReactNode }) => { Promise.resolve(null) ); - createPage.current = (pageId: string = Date.now().toString()) => + createPage.current = (pageId: string = 'lp-' + uuidv4IdGenerator()) => new Promise(resolve => { const { currentWorkspace } = state; if (!currentWorkspace) {