diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/stores/useHeadingStore.tsx b/src/frontend/apps/impress/src/features/docs/doc-editor/stores/useHeadingStore.tsx index e67800c6..c77ac3cf 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/stores/useHeadingStore.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/stores/useHeadingStore.tsx @@ -1,3 +1,4 @@ +import _ from 'lodash'; import { create } from 'zustand'; import { DocsBlockNoteEditor, HeadingBlock } from '../types'; @@ -24,7 +25,7 @@ export interface UseHeadingStore { resetHeadings: () => void; } -export const useHeadingStore = create((set) => ({ +export const useHeadingStore = create((set, get) => ({ headings: [], setHeadings: (editor) => { const headingBlocks = editor?.document @@ -36,7 +37,9 @@ export const useHeadingStore = create((set) => ({ ), })) as unknown as HeadingBlock[]; - set(() => ({ headings: headingBlocks })); + if (!_.isEqual(get().headings, headingBlocks)) { + set(() => ({ headings: headingBlocks })); + } }, resetHeadings: () => set(() => ({ headings: [] })), }));