feat: add page loading for public workspace page view

This commit is contained in:
tzhangchi
2023-01-13 23:43:09 +08:00
parent 2870972b49
commit cd2495e4e0

View File

@@ -5,6 +5,10 @@ import { styled } from '@/styles';
import dynamic from 'next/dynamic'; import dynamic from 'next/dynamic';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import { Page as PageStore, Workspace } from '@blocksuite/store'; import { Page as PageStore, Workspace } from '@blocksuite/store';
import { PageLoading } from '@/components/loading';
import { useTranslation } from '@affine/i18n';
const DynamicBlocksuite = dynamic(() => import('@/components/editor'), { const DynamicBlocksuite = dynamic(() => import('@/components/editor'), {
ssr: false, ssr: false,
}); });
@@ -13,6 +17,8 @@ const Page: NextPageWithLayout = () => {
const [page, setPage] = useState<PageStore>(); const [page, setPage] = useState<PageStore>();
const { dataCenter } = useAppState(); const { dataCenter } = useAppState();
const router = useRouter(); const router = useRouter();
const [loaded, setLoaded] = useState(false);
const { t } = useTranslation();
useEffect(() => { useEffect(() => {
dataCenter dataCenter
.loadPublicWorkspace(router.query.workspaceId as string) .loadPublicWorkspace(router.query.workspaceId as string)
@@ -39,17 +45,21 @@ const Page: NextPageWithLayout = () => {
}); });
}, [router, dataCenter]); }, [router, dataCenter]);
return ( return (
<PageContainer> <>
{workspace && page && ( {!loaded && <PageLoading />}
<DynamicBlocksuite <PageContainer>
page={page} {workspace && page && (
workspace={workspace} <DynamicBlocksuite
setEditor={editor => { page={page}
editor.readonly = true; workspace={workspace}
}} setEditor={editor => {
/> editor.readonly = true;
)} setLoaded(true);
</PageContainer> }}
/>
)}
</PageContainer>
</>
); );
}; };