From 1e7acd08a9420a3dfcdda15cc06bb17e8b8061d3 Mon Sep 17 00:00:00 2001 From: yousefed Date: Tue, 30 May 2023 13:48:49 +0200 Subject: [PATCH] use defaults nicely for react uifactories --- packages/react/src/hooks/useBlockNote.ts | 47 +++++++++++------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/packages/react/src/hooks/useBlockNote.ts b/packages/react/src/hooks/useBlockNote.ts index 49bf92c01b..4cd9f6fbad 100644 --- a/packages/react/src/hooks/useBlockNote.ts +++ b/packages/react/src/hooks/useBlockNote.ts @@ -1,12 +1,12 @@ import { BlockNoteEditor, BlockNoteEditorOptions } from "@blocknote/core"; import { DependencyList, FC, useEffect, useState } from "react"; +import { getBlockNoteTheme } from "../BlockNoteTheme"; import { createReactBlockSideMenuFactory } from "../BlockSideMenu/BlockSideMenuFactory"; +import { DragHandleMenuProps } from "../BlockSideMenu/components/DragHandleMenu"; import { createReactFormattingToolbarFactory } from "../FormattingToolbar/FormattingToolbarFactory"; import { createReactHyperlinkToolbarFactory } from "../HyperlinkToolbar/HyperlinkToolbarFactory"; -import { createReactSlashMenuFactory } from "../SlashMenu/SlashMenuFactory"; import { defaultReactSlashMenuItems } from "../SlashMenu/defaultReactSlashMenuItems"; -import { getBlockNoteTheme } from "../BlockNoteTheme"; -import { DragHandleMenuProps } from "../BlockSideMenu/components/DragHandleMenu"; +import { createReactSlashMenuFactory } from "../SlashMenu/SlashMenuFactory"; //based on https://github.com/ueberdosis/tiptap/blob/main/packages/react/src/useEditor.ts @@ -45,38 +45,33 @@ export const useBlockNote = ( ...options, }; - let uiFactories: any; - if (newOptions.customElements && newOptions.uiFactories) { console.warn( "BlockNote editor initialized with both `customElements` and `uiFactories` options, prioritizing `uiFactories`." ); } - if (newOptions.uiFactories) { - uiFactories = newOptions.uiFactories; - } else { - uiFactories = { - formattingToolbarFactory: createReactFormattingToolbarFactory( - getBlockNoteTheme(newOptions.theme === "dark"), - newOptions.customElements?.formattingToolbar - ), - hyperlinkToolbarFactory: createReactHyperlinkToolbarFactory( - getBlockNoteTheme(newOptions.theme === "dark") - ), - slashMenuFactory: createReactSlashMenuFactory( - getBlockNoteTheme(newOptions.theme === "dark") - ), - blockSideMenuFactory: createReactBlockSideMenuFactory( - getBlockNoteTheme(newOptions.theme === "dark"), - newOptions.customElements?.dragHandleMenu - ), - }; - } + let uiFactories = { + formattingToolbarFactory: createReactFormattingToolbarFactory( + getBlockNoteTheme(newOptions.theme === "dark"), + newOptions.customElements?.formattingToolbar + ), + hyperlinkToolbarFactory: createReactHyperlinkToolbarFactory( + getBlockNoteTheme(newOptions.theme === "dark") + ), + slashMenuFactory: createReactSlashMenuFactory( + getBlockNoteTheme(newOptions.theme === "dark") + ), + blockSideMenuFactory: createReactBlockSideMenuFactory( + getBlockNoteTheme(newOptions.theme === "dark"), + newOptions.customElements?.dragHandleMenu + ), + ...newOptions.uiFactories, + }; newOptions = { ...newOptions, - uiFactories: uiFactories, + uiFactories, }; console.log("create new blocknote instance");