From 1731db833dcb1bb33d5223d7046090995276a5d7 Mon Sep 17 00:00:00 2001 From: Himself65 Date: Mon, 20 Feb 2023 23:18:30 -0600 Subject: [PATCH] fix: load page on first render (#1155) --- apps/web/src/pages/workspace/index.tsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/web/src/pages/workspace/index.tsx b/apps/web/src/pages/workspace/index.tsx index b4c6fbf21..b67d2b83b 100644 --- a/apps/web/src/pages/workspace/index.tsx +++ b/apps/web/src/pages/workspace/index.tsx @@ -1,19 +1,31 @@ +import { useGlobalStateApi } from '@affine/store'; import { useRouter } from 'next/router'; -import { useEffect } from 'react'; +import { useEffect, useRef } from 'react'; import { PageLoading } from '@/components/loading'; import { useRouterTargetWorkspace } from '@/hooks/use-router-target-workspace'; export const WorkspaceIndex = () => { const router = useRouter(); + const api = useGlobalStateApi(); const { targetWorkspace, exist } = useRouterTargetWorkspace(); + const onceRef = useRef(true); useEffect(() => { + if (!onceRef.current) { + return; + } + onceRef.current = true; if (!exist) { router.push('/404'); } else if (targetWorkspace) { - router.push(`/workspace/${targetWorkspace.id}`); + api + .getState() + .loadWorkspace(targetWorkspace.id) + .then(() => { + router.push(`/workspace/${targetWorkspace.id}`); + }); } - }, [targetWorkspace, exist, router]); + }, [targetWorkspace, exist, router, api]); return ; };