mirror of
https://github.com/docmost/docmost.git
synced 2026-05-08 15:23:07 +08:00
48 lines
1.2 KiB
TypeScript
48 lines
1.2 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/index";
|
|
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;
|
|
spaceSlug: string;
|
|
editable: boolean;
|
|
}
|
|
|
|
export function FullEditor({
|
|
pageId,
|
|
title,
|
|
slugId,
|
|
spaceSlug,
|
|
editable,
|
|
}: FullEditorProps) {
|
|
const [user] = useAtom(userAtom);
|
|
const fullPageWidth = user.settings?.preferences?.fullPageWidth;
|
|
|
|
return (
|
|
<Container
|
|
fluid={fullPageWidth}
|
|
{...(fullPageWidth && { mx: 80 })}
|
|
size={850}
|
|
className={classes.editor}
|
|
>
|
|
<MemoizedTitleEditor
|
|
pageId={pageId}
|
|
slugId={slugId}
|
|
title={title}
|
|
spaceSlug={spaceSlug}
|
|
editable={editable}
|
|
/>
|
|
<MemoizedPageEditor pageId={pageId} editable={editable} />
|
|
</Container>
|
|
);
|
|
}
|