webapp/patches/solid-tiptap+0.7.0.patch

63 lines
1.8 KiB
Diff
Raw Permalink Normal View History

2024-02-16 14:56:56 +00:00
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<T extends HTMLElement>(
): () => Editor | undefined {
const [signal, setSignal] = createSignal<Editor>();
- 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<V extends Editor | undefined>(
export function useEditorJSON<
V extends Editor | undefined,
- R extends Record<string, any>,
+ // biome-ignore lint/suspicious/noExplicitAny: TODO: <explanation>
+R extends Record<string, any>,
>(editor: () => V): () => R | undefined {
return createEditorTransaction(editor, instance => instance?.getJSON() as R);
}
export function useEditorIsActive<
V extends Editor | undefined,
- R extends Record<string, any>,
+ // biome-ignore lint/suspicious/noExplicitAny: TODO: <explanation>
+R extends Record<string, any>,
>(
editor: () => V,
...args: [name: () => string, options?: R] | [options: R]