From fb74875cdee5df1e19d98d78b79eb92737d80665 Mon Sep 17 00:00:00 2001 From: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Date: Fri, 3 May 2024 23:12:44 +0530 Subject: [PATCH] [WEB-1181] chore: added a loader for page description (#4358) * chore: add loader for page description * chore: added skeleton loader * fix: title loader margin * chore: increased laoder width --- web/components/pages/editor/editor-body.tsx | 10 ++++--- web/components/pages/loaders/index.ts | 1 + .../pages/loaders/page-content-loader.tsx | 28 +++++++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 web/components/pages/loaders/page-content-loader.tsx diff --git a/web/components/pages/editor/editor-body.tsx b/web/components/pages/editor/editor-body.tsx index f1e38348b2..0ea7e6052c 100644 --- a/web/components/pages/editor/editor-body.tsx +++ b/web/components/pages/editor/editor-body.tsx @@ -13,7 +13,7 @@ import { // types import { IUserLite, TPage } from "@plane/types"; // components -import { PageContentBrowser, PageEditorTitle } from "@/components/pages"; +import { PageContentBrowser, PageContentLoader, PageEditorTitle } from "@/components/pages"; // helpers import { cn } from "@/helpers/common.helper"; // hooks @@ -68,7 +68,7 @@ export const PageEditorBody: React.FC = observer((props) => { // derived values const workspaceId = workspaceSlug ? getWorkspaceBySlug(workspaceSlug.toString())?.id ?? "" : ""; const pageTitle = pageStore?.name ?? ""; - const pageDescription = pageStore?.description_html ?? "

"; + const pageDescription = pageStore?.description_html; const { description_html, isContentEditable, updateTitle, isSubmitting, setIsSubmitting } = pageStore; const projectMemberIds = projectId ? getProjectMemberIds(projectId.toString()) : []; const projectMemberDetails = projectMemberIds?.map((id) => getUserDetails(id) as IUserLite); @@ -88,6 +88,8 @@ export const PageEditorBody: React.FC = observer((props) => { updateMarkings(description_html ?? "

"); }, [description_html, updateMarkings]); + if (pageDescription === undefined) return ; + return (
= observer((props) => { upload: fileService.getUploadFileFunction(workspaceSlug as string, setIsSubmitting), }} handleEditorReady={handleEditorReady} - initialValue={pageDescription} + initialValue={pageDescription ?? "

"} value={swrPageDetails?.description_html ?? "

"} ref={editorRef} containerClassName="p-0 pb-64" @@ -153,7 +155,7 @@ export const PageEditorBody: React.FC = observer((props) => { ) : (

"} handleEditorReady={handleReadOnlyEditorReady} containerClassName="p-0 pb-64 border-none" editorClassName="lg:px-10 pl-8" diff --git a/web/components/pages/loaders/index.ts b/web/components/pages/loaders/index.ts index f278fa3823..8760eede6c 100644 --- a/web/components/pages/loaders/index.ts +++ b/web/components/pages/loaders/index.ts @@ -1 +1,2 @@ +export * from "./page-content-loader"; export * from "./page-loader"; diff --git a/web/components/pages/loaders/page-content-loader.tsx b/web/components/pages/loaders/page-content-loader.tsx new file mode 100644 index 0000000000..ec38c1bbe7 --- /dev/null +++ b/web/components/pages/loaders/page-content-loader.tsx @@ -0,0 +1,28 @@ +// ui +import { Loader } from "@plane/ui"; + +export const PageContentLoader = () => ( +
+
+ +
+ + + +
+
+ {Array.from(Array(4)).map((i) => ( +
+ +
+ + + +
+
+ ))} +
+
+
+
+);