mirror of
https://github.com/docmost/docmost.git
synced 2026-05-07 14:43:06 +08:00
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import classes from "@/features/editor/styles/editor.module.css";
|
|
import React from "react";
|
|
import { TitleEditor } from "@/features/editor/title-editor";
|
|
import PageEditor from "@/features/editor/page-editor";
|
|
import { Container } from "@mantine/core";
|
|
import { useAtom } from "jotai";
|
|
import { userAtom } from "@/features/user/atoms/current-user-atom.ts";
|
|
|
|
const MemoizedTitleEditor = React.memo(TitleEditor);
|
|
const MemoizedPageEditor = React.memo(PageEditor);
|
|
|
|
export interface FullEditorProps {
|
|
pageId: string;
|
|
slugId: string;
|
|
title: string;
|
|
content: string;
|
|
spaceSlug: string;
|
|
editable: boolean;
|
|
canComment?: boolean;
|
|
}
|
|
|
|
export function FullEditor({
|
|
pageId,
|
|
title,
|
|
slugId,
|
|
content,
|
|
spaceSlug,
|
|
editable,
|
|
canComment,
|
|
}: FullEditorProps) {
|
|
const [user] = useAtom(userAtom);
|
|
const fullPageWidth = user.settings?.preferences?.fullPageWidth;
|
|
|
|
return (
|
|
<Container
|
|
fluid={fullPageWidth}
|
|
size={!fullPageWidth && 900}
|
|
className={classes.editor}
|
|
>
|
|
<MemoizedTitleEditor
|
|
pageId={pageId}
|
|
slugId={slugId}
|
|
title={title}
|
|
spaceSlug={spaceSlug}
|
|
editable={editable}
|
|
/>
|
|
<MemoizedPageEditor
|
|
pageId={pageId}
|
|
editable={editable}
|
|
content={content}
|
|
canComment={canComment}
|
|
/>
|
|
</Container>
|
|
);
|
|
}
|