This commit is contained in:
Untone 2024-02-16 17:56:56 +03:00
parent 2cbc799219
commit a962f6973a
2 changed files with 100 additions and 38 deletions

View File

@ -14,7 +14,7 @@
"fix": "npm run check:code:fix && stylelint **/*.{scss,css} --fix",
"format": "npx @biomejs/biome format src/. --write",
"hygen": "HYGEN_TMPLS=gen hygen",
"postinstall": "npm run codegen",
"postinstall": "npm run codegen && npx patch-package solid-tiptap",
"check:code": "npx @biomejs/biome check src --log-kind=compact --verbose",
"check:code:fix": "npx @biomejs/biome check src --log-kind=compact --verbose --apply-unsafe",
"lint": "npm run lint:code && stylelint **/*.{scss,css}",
@ -55,37 +55,37 @@
"@solid-primitives/upload": "0.0.110",
"@solidjs/meta": "0.29.1",
"@thisbeyond/solid-select": "0.14.0",
"@tiptap/core": "2.2.2",
"@tiptap/extension-blockquote": "2.2.2",
"@tiptap/extension-bold": "2.2.2",
"@tiptap/extension-bubble-menu": "2.2.2",
"@tiptap/extension-bullet-list": "2.2.2",
"@tiptap/extension-character-count": "2.2.2",
"@tiptap/extension-collaboration": "2.2.2",
"@tiptap/extension-collaboration-cursor": "2.2.2",
"@tiptap/extension-document": "2.2.2",
"@tiptap/extension-dropcursor": "2.2.2",
"@tiptap/extension-floating-menu": "2.2.2",
"@tiptap/extension-focus": "2.2.2",
"@tiptap/extension-gapcursor": "2.2.2",
"@tiptap/extension-hard-break": "2.2.2",
"@tiptap/extension-heading": "2.2.2",
"@tiptap/extension-highlight": "2.2.2",
"@tiptap/extension-history": "2.2.2",
"@tiptap/extension-horizontal-rule": "2.2.2",
"@tiptap/extension-image": "2.2.2",
"@tiptap/extension-italic": "2.2.2",
"@tiptap/extension-link": "2.2.2",
"@tiptap/extension-list-item": "2.2.2",
"@tiptap/extension-ordered-list": "2.2.2",
"@tiptap/extension-paragraph": "2.2.2",
"@tiptap/extension-placeholder": "2.2.2",
"@tiptap/extension-strike": "2.2.2",
"@tiptap/extension-text": "2.2.2",
"@tiptap/extension-underline": "2.2.2",
"@tiptap/extension-youtube": "2.2.2",
"@tiptap/core": "2.2.3",
"@tiptap/extension-blockquote": "2.2.3",
"@tiptap/extension-bold": "2.2.3",
"@tiptap/extension-bubble-menu": "2.2.3",
"@tiptap/extension-bullet-list": "2.2.3",
"@tiptap/extension-character-count": "2.2.3",
"@tiptap/extension-collaboration": "2.2.3",
"@tiptap/extension-collaboration-cursor": "2.2.3",
"@tiptap/extension-document": "2.2.3",
"@tiptap/extension-dropcursor": "2.2.3",
"@tiptap/extension-floating-menu": "2.2.3",
"@tiptap/extension-focus": "2.2.3",
"@tiptap/extension-gapcursor": "2.2.3",
"@tiptap/extension-hard-break": "2.2.3",
"@tiptap/extension-heading": "2.2.3",
"@tiptap/extension-highlight": "2.2.3",
"@tiptap/extension-history": "2.2.3",
"@tiptap/extension-horizontal-rule": "2.2.3",
"@tiptap/extension-image": "2.2.3",
"@tiptap/extension-italic": "2.2.3",
"@tiptap/extension-link": "2.2.3",
"@tiptap/extension-list-item": "2.2.3",
"@tiptap/extension-ordered-list": "2.2.3",
"@tiptap/extension-paragraph": "2.2.3",
"@tiptap/extension-placeholder": "2.2.3",
"@tiptap/extension-strike": "2.2.3",
"@tiptap/extension-text": "2.2.3",
"@tiptap/extension-underline": "2.2.3",
"@tiptap/extension-youtube": "2.2.3",
"@types/js-cookie": "3.0.6",
"@types/node": "^20.9.0",
"@types/node": "^20.11.0",
"@urql/core": "4.2.3",
"@urql/devtools": "^2.0.3",
"babel-preset-solid": "1.8.4",
@ -97,7 +97,6 @@
"ga-gtag": "1.2.0",
"graphql": "16.8.1",
"graphql-tag": "2.12.6",
"husky": "8.0.3",
"hygen": "6.2.11",
"i18next": "22.4.15",
"i18next-http-backend": "2.2.0",
@ -109,12 +108,13 @@
"loglevel": "1.8.1",
"loglevel-plugin-prefix": "0.8.4",
"nanostores": "0.9.5",
"prosemirror-history": "1.3.0",
"prosemirror-trailing-node": "2.0.3",
"prosemirror-view": "1.30.2",
"patch-package": "^8.0.0",
"prosemirror-history": "1.3.2",
"prosemirror-trailing-node": "2.0.7",
"prosemirror-view": "1.32.7",
"rollup": "4.11.0",
"sass": "1.69.5",
"solid-js": "1.8.14",
"solid-js": "1.8.15",
"solid-popper": "0.3.0",
"solid-tiptap": "0.7.0",
"solid-transition-group": "0.2.3",
@ -133,10 +133,10 @@
"vite-plugin-sass-dts": "^1.3.17",
"vite-plugin-solid": "2.10.1",
"y-prosemirror": "1.2.2",
"yjs": "13.6.8"
"yjs": "13.6.12"
},
"overrides": {
"y-prosemirror": "1.2.2",
"yjs": "13.6.8"
"yjs": "13.6.12"
}
}

View File

@ -0,0 +1,62 @@
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]