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