Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions web/ce/components/pages/version/editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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<Props> = 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);
Expand Down Expand Up @@ -94,7 +95,9 @@ export const PagesVersionEditor: React.FC<Props> = observer((props) => {
return (
<DocumentReadOnlyEditorWithRef
id={activeVersion ?? ""}
initialValue={(isCurrentVersionActive ? description_html : versionDetails?.description_html) ?? "<p></p>"}
initialValue={
(isCurrentVersionActive ? currentPageDetails.description_html : versionDetails?.description_html) ?? "<p></p>"
}
containerClassName="p-0 pb-64 border-none"
displayConfig={displayConfig}
editorClassName="pl-10"
Expand Down
3 changes: 2 additions & 1 deletion web/core/components/pages/editor/page-root.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -123,6 +123,7 @@ export const PageRoot = observer((props: TPageRootProps) => {
isOpen={isVersionsOverlayOpen}
onClose={handleCloseVersionsOverlay}
pageId={page.id ?? ""}
restoreEnabled={isContentEditable}
/>
<PageEditorHeaderRoot
editorRef={editorRef}
Expand Down
7 changes: 5 additions & 2 deletions web/core/components/pages/version/main-content.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ type Props = {
handleClose: () => void;
handleRestore: (descriptionHTML: string) => Promise<void>;
pageId: string;
restoreEnabled: boolean;
};

export const PageVersionsMainContent: React.FC<Props> = 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);
Expand All @@ -37,6 +38,7 @@ export const PageVersionsMainContent: React.FC<Props> = observer((props) => {
const isCurrentVersionActive = activeVersion === "current";

const handleRestoreVersion = async () => {
if (!restoreEnabled) return;
setIsRestoring(true);
await handleRestore(versionDetails?.description_html ?? "<p></p>")
.then(() => {
Expand Down Expand Up @@ -88,7 +90,7 @@ export const PageVersionsMainContent: React.FC<Props> = observer((props) => {
? `${renderFormattedDate(versionDetails.last_saved_at)} ${renderFormattedTime(versionDetails.last_saved_at)}`
: "Loading version details"}
</h6>
{!isCurrentVersionActive && (
{!isCurrentVersionActive && restoreEnabled && (
<Button
variant="primary"
size="sm"
Expand All @@ -104,6 +106,7 @@ export const PageVersionsMainContent: React.FC<Props> = observer((props) => {
<PagesVersionEditor
activeVersion={activeVersion}
isCurrentVersionActive={isCurrentVersionActive}
pageId={pageId}
versionDetails={versionDetails}
/>
</div>
Expand Down
18 changes: 15 additions & 3 deletions web/core/components/pages/version/root.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { observer } from "mobx-react";
// plane types
import { TPageVersion } from "@plane/types";
// components
Expand All @@ -13,10 +14,20 @@ type Props = {
isOpen: boolean;
onClose: () => void;
pageId: string;
restoreEnabled: boolean;
};

export const PageVersionsOverlay: React.FC<Props> = (props) => {
const { activeVersion, fetchAllVersions, fetchVersionDetails, handleRestore, isOpen, onClose, pageId } = props;
export const PageVersionsOverlay: React.FC<Props> = observer((props) => {
const {
activeVersion,
fetchAllVersions,
fetchVersionDetails,
handleRestore,
isOpen,
onClose,
pageId,
restoreEnabled,
} = props;

const handleClose = () => {
onClose();
Expand All @@ -37,6 +48,7 @@ export const PageVersionsOverlay: React.FC<Props> = (props) => {
handleClose={handleClose}
handleRestore={handleRestore}
pageId={pageId}
restoreEnabled={restoreEnabled}
/>
<PageVersionsSidebarRoot
activeVersion={activeVersion}
Expand All @@ -47,4 +59,4 @@ export const PageVersionsOverlay: React.FC<Props> = (props) => {
/>
</div>
);
};
});