diff --git a/web/ce/components/pages/version/editor.tsx b/web/ce/components/pages/version/editor.tsx index 973cb2b459..d176022bc5 100644 --- a/web/ce/components/pages/version/editor.tsx +++ b/web/ce/components/pages/version/editor.tsx @@ -15,20 +15,21 @@ import { useIssueEmbed } from "@/plane-web/hooks/use-issue-embed"; type Props = { activeVersion: string | null; isCurrentVersionActive: boolean; + pageId: string; versionDetails: TPageVersion | undefined; }; export const PagesVersionEditor: React.FC = observer((props) => { - const { activeVersion, isCurrentVersionActive, versionDetails } = props; + const { activeVersion, isCurrentVersionActive, pageId, versionDetails } = props; // params - const { workspaceSlug, projectId, pageId } = useParams(); + const { workspaceSlug, projectId } = useParams(); // store hooks const { data: currentUser } = useUser(); const { getUserDetails, project: { getProjectMemberIds }, } = useMember(); - const { description_html } = usePage(pageId.toString() ?? ""); + const currentPageDetails = usePage(pageId); // derived values const projectMemberIds = projectId ? getProjectMemberIds(projectId.toString()) : []; const projectMemberDetails = projectMemberIds?.map((id) => getUserDetails(id) as IUserLite); @@ -94,7 +95,9 @@ export const PagesVersionEditor: React.FC = observer((props) => { return (

"} + initialValue={ + (isCurrentVersionActive ? currentPageDetails.description_html : versionDetails?.description_html) ?? "

" + } containerClassName="p-0 pb-64 border-none" displayConfig={displayConfig} editorClassName="pl-10" diff --git a/web/core/components/pages/editor/page-root.tsx b/web/core/components/pages/editor/page-root.tsx index bbb5acf819..45ca62e3df 100644 --- a/web/core/components/pages/editor/page-root.tsx +++ b/web/core/components/pages/editor/page-root.tsx @@ -43,7 +43,7 @@ export const PageRoot = observer((props: TPageRootProps) => { // store hooks const { createPage } = useProjectPages(); // derived values - const { access, description_html, name } = page; + const { access, description_html, name, isContentEditable } = page; // editor markings hook const { markings, updateMarkings } = useEditorMarkings(); // project-description @@ -123,6 +123,7 @@ export const PageRoot = observer((props: TPageRootProps) => { isOpen={isVersionsOverlayOpen} onClose={handleCloseVersionsOverlay} pageId={page.id ?? ""} + restoreEnabled={isContentEditable} /> void; handleRestore: (descriptionHTML: string) => Promise; pageId: string; + restoreEnabled: boolean; }; export const PageVersionsMainContent: React.FC = observer((props) => { - const { activeVersion, fetchVersionDetails, handleClose, handleRestore, pageId } = props; + const { activeVersion, fetchVersionDetails, handleClose, handleRestore, pageId, restoreEnabled } = props; // states const [isRestoring, setIsRestoring] = useState(false); const [isRetrying, setIsRetrying] = useState(false); @@ -37,6 +38,7 @@ export const PageVersionsMainContent: React.FC = observer((props) => { const isCurrentVersionActive = activeVersion === "current"; const handleRestoreVersion = async () => { + if (!restoreEnabled) return; setIsRestoring(true); await handleRestore(versionDetails?.description_html ?? "

") .then(() => { @@ -88,7 +90,7 @@ export const PageVersionsMainContent: React.FC = observer((props) => { ? `${renderFormattedDate(versionDetails.last_saved_at)} ${renderFormattedTime(versionDetails.last_saved_at)}` : "Loading version details"} - {!isCurrentVersionActive && ( + {!isCurrentVersionActive && restoreEnabled && (