diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-table-content.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-table-content.spec.ts index cf1670fd..acb0dc6c 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-table-content.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-table-content.spec.ts @@ -19,6 +19,8 @@ test.describe('Doc Table Content', () => { await page.locator('.ProseMirror').click(); + await expect(page.getByRole('button', { name: 'Summary' })).toBeHidden(); + await page.keyboard.type('# Level 1\n## Level 2\n### Level 3'); const summaryContainer = page.locator('#summaryContainer'); diff --git a/src/frontend/apps/impress/src/features/docs/doc-table-content/components/TableContent.tsx b/src/frontend/apps/impress/src/features/docs/doc-table-content/components/TableContent.tsx index febdf0ab..309ebc30 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-table-content/components/TableContent.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-table-content/components/TableContent.tsx @@ -4,7 +4,12 @@ import { css } from 'styled-components'; import { Box, BoxButton, Icon, Text } from '@/components'; import { useCunninghamTheme } from '@/cunningham'; -import { useEditorStore, useHeadingStore } from '@/docs/doc-editor'; +import { + DocsBlockNoteEditor, + HeadingBlock, + useEditorStore, + useHeadingStore, +} from '@/docs/doc-editor'; import { MAIN_LAYOUT_ID } from '@/layouts/conf'; import { Heading } from './Heading'; @@ -12,6 +17,8 @@ import { Heading } from './Heading'; export const TableContent = () => { const { spacingsTokens, colorsTokens } = useCunninghamTheme(); const [containerHeight, setContainerHeight] = useState('100vh'); + const { headings } = useHeadingStore(); + const { editor } = useEditorStore(); const { t } = useTranslation(); const [isOpen, setIsOpen] = useState(false); @@ -30,6 +37,15 @@ export const TableContent = () => { setIsOpen(true); }; + if ( + !editor || + !headings || + headings.length === 0 || + (headings.length === 1 && !headings[0].contentText) + ) { + return null; + } + return ( { /> )} - {isOpen && } + {isOpen && ( + + )} ); @@ -104,11 +126,13 @@ export const TableContent = () => { const TableContentOpened = ({ setIsOpen, + headings, + editor, }: { setIsOpen: (isOpen: boolean) => void; + headings: HeadingBlock[]; + editor: DocsBlockNoteEditor; }) => { - const { headings } = useHeadingStore(); - const { editor } = useEditorStore(); const { spacingsTokens, colorsTokens } = useCunninghamTheme(); const [headingIdHighlight, setHeadingIdHighlight] = useState(); const { t } = useTranslation(); @@ -172,15 +196,6 @@ const TableContentOpened = ({ setIsOpen(false); }; - if ( - !editor || - !headings || - headings.length === 0 || - (headings.length === 1 && !headings[0].contentText) - ) { - return null; - } - return (