From 6113ecc101fe8408862d6ae2bc1b10bc614a749a Mon Sep 17 00:00:00 2001 From: fantasticit Date: Sun, 3 Apr 2022 10:29:44 +0800 Subject: [PATCH] feat: improve loading state content --- .../components/document/comments/index.tsx | 2 +- .../src/components/document/reader/editor.tsx | 6 +- .../document/reader/index.module.scss | 4 + .../src/components/document/reader/index.tsx | 15 ++-- .../document/reader/public/index.tsx | 6 +- .../client/src/components/wiki/tocs/index.tsx | 18 +--- packages/client/src/pages/index.tsx | 86 ++++++++++--------- packages/client/src/tiptap/skeleton.tsx | 4 +- 8 files changed, 64 insertions(+), 77 deletions(-) diff --git a/packages/client/src/components/document/comments/index.tsx b/packages/client/src/components/document/comments/index.tsx index 03a138cc..92130739 100644 --- a/packages/client/src/components/document/comments/index.tsx +++ b/packages/client/src/components/document/comments/index.tsx @@ -92,7 +92,7 @@ export const CommentEditor: React.FC = ({ documentId }) => { error={error} loadingContent={ <> - {Array.from({ length: 5 }, (_, i) => i).map((i) => ( + {Array.from({ length: 3 }, (_, i) => i).map((i) => ( ))} diff --git a/packages/client/src/components/document/reader/editor.tsx b/packages/client/src/components/document/reader/editor.tsx index e244e74b..3e227300 100644 --- a/packages/client/src/components/document/reader/editor.tsx +++ b/packages/client/src/components/document/reader/editor.tsx @@ -1,4 +1,4 @@ -import React, { useMemo, useEffect, useRef } from 'react'; +import React, { useMemo, useEffect } from 'react'; import { useEditor, EditorContent } from '@tiptap/react'; import { Layout } from '@douyinfe/semi-ui'; import { IDocument, ILoginUser } from '@think/domains'; @@ -10,6 +10,7 @@ import { getCollaborationCursorExtension, getProvider, destoryProvider, + DocumentSkeleton, } from 'tiptap'; import { DataRender } from 'components/data-render'; import { ImageViewer } from 'components/image-viewer'; @@ -26,8 +27,6 @@ interface IProps { } export const Editor: React.FC = ({ user, documentId, document }) => { - if (!user) return null; - const provider = useMemo(() => { return getProvider({ targetId: documentId, @@ -70,6 +69,7 @@ export const Editor: React.FC = ({ user, documentId, document }) => { return ( } error={null} normalContent={() => { return ( diff --git a/packages/client/src/components/document/reader/index.module.scss b/packages/client/src/components/document/reader/index.module.scss index eb24f305..93102032 100644 --- a/packages/client/src/components/document/reader/index.module.scss +++ b/packages/client/src/components/document/reader/index.module.scss @@ -27,6 +27,10 @@ } } + .editorContainer { + min-height: 240px; + } + .commentWrap { padding: 16px 0; border-top: 1px solid var(--semi-color-border); diff --git a/packages/client/src/components/document/reader/index.tsx b/packages/client/src/components/document/reader/index.tsx index 378ae143..0bb32704 100644 --- a/packages/client/src/components/document/reader/index.tsx +++ b/packages/client/src/components/document/reader/index.tsx @@ -28,14 +28,13 @@ interface IProps { export const DocumentReader: React.FC = ({ documentId }) => { if (!documentId) return null; + const { width: windowWidth } = useWindowSize(); const { width, fontSize } = useDocumentStyle(); const editorWrapClassNames = useMemo(() => { return width === 'standardWidth' ? styles.isStandardWidth : styles.isFullWidth; }, [width]); - const { user } = useUser(); - const { data: documentAndAuth, loading: docAuthLoading, error: docAuthError } = useDocumentDetail(documentId); const { document, authority } = documentAndAuth || {}; @@ -53,13 +52,7 @@ export const DocumentReader: React.FC = ({ documentId }) => { } - loading={true} - /> - } + loadingContent={} loading={true} />} normalContent={() => ( {document.title} @@ -101,7 +94,9 @@ export const DocumentReader: React.FC = ({ documentId }) => { return ( <> - +
+ {user && } +
diff --git a/packages/client/src/components/document/reader/public/index.tsx b/packages/client/src/components/document/reader/public/index.tsx index eec226b3..fc48fc70 100644 --- a/packages/client/src/components/document/reader/public/index.tsx +++ b/packages/client/src/components/document/reader/public/index.tsx @@ -23,7 +23,6 @@ import { User } from 'components/user'; import { Theme } from 'components/theme'; import { ImageViewer } from 'components/image-viewer'; import { useDocumentStyle } from 'hooks/use-document-style'; -import { useWindowSize } from 'hooks/use-window-size'; import { usePublicDocument } from 'data/document'; import { DocumentSkeleton } from 'tiptap'; import { DocumentContent } from './content'; @@ -41,7 +40,6 @@ export const DocumentPublicReader: React.FC = ({ documentId, hideLogo = if (!documentId) return null; const { data, loading, error, query } = usePublicDocument(documentId); - const { width: windowWidth } = useWindowSize(); const { width, fontSize } = useDocumentStyle(); const editorWrapClassNames = useMemo(() => { return width === 'standardWidth' ? styles.isStandardWidth : styles.isFullWidth; @@ -100,9 +98,7 @@ export const DocumentPublicReader: React.FC = ({ documentId, hideLogo = } loading={true} /> - } + loadingContent={} loading={true} />} normalContent={() => ( diff --git a/packages/client/src/components/wiki/tocs/index.tsx b/packages/client/src/components/wiki/tocs/index.tsx index 9d873c18..e82e33cf 100644 --- a/packages/client/src/components/wiki/tocs/index.tsx +++ b/packages/client/src/components/wiki/tocs/index.tsx @@ -216,23 +216,7 @@ export const WikiTocs: React.FC = ({
- } - text={} - rightNode={} - /> - } + loadingContent={} />} error={tocsError} normalContent={() => ( { const { data, error, loading, refresh } = useRecentDocuments(); + const columns = useMemo( + () => [ + { + return ( + + {document.title} + + ); + }} + />, + , + } + />, + ( + + )} + />, + ], + [] + ); + return ( <> @@ -38,47 +77,16 @@ const RecentDocs = () => { } + loadingContent={ + + {columns} +
+ } error={error} normalContent={() => data && data.length ? ( - { - return ( - - {document.title} - - ); - }} - /> - - } - /> - ( - - )} - /> + {columns}
) : ( diff --git a/packages/client/src/tiptap/skeleton.tsx b/packages/client/src/tiptap/skeleton.tsx index 3a786771..b35f12eb 100644 --- a/packages/client/src/tiptap/skeleton.tsx +++ b/packages/client/src/tiptap/skeleton.tsx @@ -4,8 +4,8 @@ import { Skeleton } from '@douyinfe/semi-ui'; export const DocumentSkeleton = () => { const placeholder = ( <> - - + + );