diff --git a/node_modules/solid-tiptap/src/Editor.tsx b/node_modules/solid-tiptap/src/Editor.tsx index 9d1e51a..2cc36b3 100644 --- a/node_modules/solid-tiptap/src/Editor.tsx +++ b/node_modules/solid-tiptap/src/Editor.tsx @@ -1,6 +1,6 @@ import type { EditorOptions } from '@tiptap/core'; import { Editor } from '@tiptap/core'; -import { createEffect, createSignal, onCleanup } from 'solid-js'; +import { createEffect, createSignal, onCleanup, on } from 'solid-js'; export type EditorRef = Editor | ((editor: Editor) => void); @@ -42,17 +42,19 @@ export default function useEditor( ): () => Editor | undefined { const [signal, setSignal] = createSignal(); - createEffect(() => { - const instance = new Editor({ - ...props(), - }); - - onCleanup(() => { - instance.destroy(); - }); - - setSignal(instance); - }); + createEffect( + on( + props, + (properties) => { + if (properties) { + const instance = new Editor({ ...properties }) + onCleanup(instance.destroy) + setSignal(instance) + } + }, + { defer: true } + ) + ) return signal; } @@ -65,14 +67,16 @@ export function useEditorHTML( export function useEditorJSON< V extends Editor | undefined, - R extends Record, + // biome-ignore lint/suspicious/noExplicitAny: TODO: +R extends Record, >(editor: () => V): () => R | undefined { return createEditorTransaction(editor, instance => instance?.getJSON() as R); } export function useEditorIsActive< V extends Editor | undefined, - R extends Record, + // biome-ignore lint/suspicious/noExplicitAny: TODO: +R extends Record, >( editor: () => V, ...args: [name: () => string, options?: R] | [options: R]