♻️(frontend) reduce props drilling

- Reduce proprs drilling
- Improve state rerendering with useIsCollaborativeEditable
This commit is contained in:
Anthony LC
2025-04-02 15:25:31 +02:00
parent 6ece3264d6
commit adb15dedb8
3 changed files with 8 additions and 18 deletions

View File

@@ -54,11 +54,7 @@ export const DocEditor = ({ doc, versionId }: DocEditorProps) => {
$padding={{ horizontal: isDesktop ? '54px' : 'base' }}
className="--docs--doc-editor-header"
>
{isVersion ? (
<DocVersionHeader title={doc.title} />
) : (
<DocHeader doc={doc} />
)}
{isVersion ? <DocVersionHeader /> : <DocHeader doc={doc} />}
</Box>
<Box

View File

@@ -13,6 +13,7 @@ import {
KEY_DOC,
KEY_LIST_DOC,
KEY_SUB_PAGE,
useDocStore,
useTrans,
useUpdateDoc,
} from '@/docs/doc-management';
@@ -24,18 +25,15 @@ interface DocTitleProps {
export const DocTitle = ({ doc }: DocTitleProps) => {
if (!doc.abilities.partial_update) {
return <DocTitleText title={doc.title} />;
return <DocTitleText />;
}
return <DocTitleInput doc={doc} />;
};
interface DocTitleTextProps {
title?: string;
}
export const DocTitleText = ({ title }: DocTitleTextProps) => {
export const DocTitleText = () => {
const { isMobile } = useResponsiveStore();
const { currentDoc } = useDocStore();
const { untitledDocument } = useTrans();
return (
@@ -45,7 +43,7 @@ export const DocTitleText = ({ title }: DocTitleTextProps) => {
$size={isMobile ? 'h4' : 'h2'}
$variation="1000"
>
{title || untitledDocument}
{currentDoc?.title || untitledDocument}
</Text>
);
};

View File

@@ -5,11 +5,7 @@ import { useCunninghamTheme } from '@/cunningham';
import { DocTitleText } from './DocTitle';
interface DocVersionHeaderProps {
title?: string;
}
export const DocVersionHeader = ({ title }: DocVersionHeaderProps) => {
export const DocVersionHeader = () => {
const { spacingsTokens } = useCunninghamTheme();
const { t } = useTranslation();
@@ -23,7 +19,7 @@ export const DocVersionHeader = ({ title }: DocVersionHeaderProps) => {
aria-label={t('It is the document title')}
className="--docs--doc-version-header"
>
<DocTitleText title={title} />
<DocTitleText />
<HorizontalSeparator />
</Box>
</>