From b5443676c1d92e5e8f9389f5c7b66a8bbe1ee787 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Wed, 17 Jul 2024 09:34:36 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(frontend)=20replace=20setEdi?= =?UTF-8?q?tor=20per=20setStore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit setStore is more generic and can be used to set any store. --- .../doc-editor/components/BlockNoteEditor.tsx | 6 ++-- .../docs/doc-editor/stores/useDocStore.tsx | 31 +++++++------------ 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx b/src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx index 322b9bb6..da092f09 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/components/BlockNoteEditor.tsx @@ -38,7 +38,7 @@ interface BlockNoteContentProps { export const BlockNoteContent = ({ doc, provider }: BlockNoteContentProps) => { const { userData } = useAuthStore(); - const { setEditor, docsStore } = useDocStore(); + const { setStore, docsStore } = useDocStore(); useSaveDoc(doc.id, provider.doc, doc.abilities.partial_update); const storedEditor = docsStore?.[doc.id]?.editor; @@ -60,8 +60,8 @@ export const BlockNoteContent = ({ doc, provider }: BlockNoteContentProps) => { }, [provider, storedEditor, userData?.email]); useEffect(() => { - setEditor(doc.id, editor); - }, [setEditor, doc.id, editor]); + setStore(doc.id, { editor }); + }, [setStore, doc.id, editor]); return ( WebrtcProvider; - setEditor: (docId: Doc['id'], editor: BlockNoteEditor) => void; + setStore: (docId: Doc['id'], props: Partial) => void; } const initialState = { docsStore: {}, }; -export const useDocStore = create((set) => ({ +export const useDocStore = create((set, get) => ({ docsStore: initialState.docsStore, createProvider: (docId: string, initialDoc: Base64) => { const doc = new Y.Doc({ @@ -37,27 +39,18 @@ export const useDocStore = create((set) => ({ maxConns: 5, }); - set(({ docsStore }) => { - return { - docsStore: { - ...docsStore, - [docId]: { - provider, - }, - }, - }; - }); + get().setStore(docId, { provider }); return provider; }, - setEditor: (docId, editor) => { + setStore: (docId, props) => { set(({ docsStore }) => { return { docsStore: { ...docsStore, [docId]: { ...docsStore[docId], - editor, + ...props, }, }, };