@verdant-web/tiptap 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/react.js CHANGED
@@ -13,7 +13,7 @@ export function useSyncedEditor(parent, fieldName, { editorOptions: extraOptions
13
13
  const live = useWatch(parent);
14
14
  const field = live[fieldName];
15
15
  const updatingRef = useRef(false);
16
- const update = useCallback((editor) => {
16
+ const update = useStableCallback((editor) => {
17
17
  if (updatingRef.current) {
18
18
  return;
19
19
  }
@@ -29,13 +29,13 @@ export function useSyncedEditor(parent, fieldName, { editorOptions: extraOptions
29
29
  replaceSubObjects: false,
30
30
  });
31
31
  }
32
- }, [parent]);
32
+ });
33
33
  const cachedInitialContent = useRef(ensureDocShape(getFieldSnapshot(field, nullDocumentDefault, fieldName)));
34
34
  const editor = useEditor(Object.assign(Object.assign({}, extraOptions), { content: cachedInitialContent.current, onUpdate: (ctx) => {
35
35
  var _a;
36
36
  update(ctx.editor);
37
37
  (_a = extraOptions === null || extraOptions === void 0 ? void 0 : extraOptions.onUpdate) === null || _a === void 0 ? void 0 : _a.call(extraOptions, ctx);
38
- } }), [update, ...(editorDependencies !== null && editorDependencies !== void 0 ? editorDependencies : [])]);
38
+ } }), editorDependencies);
39
39
  useEffect(() => {
40
40
  function updateFromField() {
41
41
  if (editor && !editor.isDestroyed) {
@@ -74,4 +74,9 @@ function getFieldSnapshot(field, nullDocumentDefault, fieldName) {
74
74
  }
75
75
  return content;
76
76
  }
77
+ function useStableCallback(callback) {
78
+ const ref = useRef(callback);
79
+ ref.current = callback;
80
+ return useCallback((...args) => ref.current(...args), []);
81
+ }
77
82
  //# sourceMappingURL=react.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdant-web/tiptap",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "access": "public",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",
@@ -60,9 +60,9 @@
60
60
  "react-dom": "19.0.0",
61
61
  "@types/react-dom": "19.0.4",
62
62
  "@verdant-web/cli": "4.8.2",
63
- "@verdant-web/react": "40.2.4",
63
+ "@verdant-web/store": "4.1.6",
64
64
  "@verdant-web/server": "3.3.8",
65
- "@verdant-web/store": "4.1.6"
65
+ "@verdant-web/react": "40.2.4"
66
66
  },
67
67
  "scripts": {
68
68
  "test": "vitest",
package/src/react.ts CHANGED
@@ -47,29 +47,26 @@ export function useSyncedEditor<
47
47
  const live = useWatch(parent);
48
48
  const field = live[fieldName] as ObjectEntity<any, any>;
49
49
  const updatingRef = useRef(false);
50
- const update = useCallback(
51
- (editor: Editor) => {
52
- if (updatingRef.current) {
53
- return;
54
- }
50
+ const update = useStableCallback((editor: Editor) => {
51
+ if (updatingRef.current) {
52
+ return;
53
+ }
55
54
 
56
- const newData = editor.getJSON();
57
- const value = parent.get(cachedOptions.current.fieldName) as ObjectEntity<
58
- any,
59
- any
60
- > | null;
61
- if (!value) {
62
- parent.set(cachedOptions.current.fieldName as any, newData);
63
- } else {
64
- value.update(newData, {
65
- merge: false,
66
- dangerouslyDisableMerge: true,
67
- replaceSubObjects: false,
68
- });
69
- }
70
- },
71
- [parent],
72
- );
55
+ const newData = editor.getJSON();
56
+ const value = parent.get(cachedOptions.current.fieldName) as ObjectEntity<
57
+ any,
58
+ any
59
+ > | null;
60
+ if (!value) {
61
+ parent.set(cachedOptions.current.fieldName as any, newData);
62
+ } else {
63
+ value.update(newData, {
64
+ merge: false,
65
+ dangerouslyDisableMerge: true,
66
+ replaceSubObjects: false,
67
+ });
68
+ }
69
+ });
73
70
 
74
71
  const cachedInitialContent = useRef(
75
72
  ensureDocShape(getFieldSnapshot(field, nullDocumentDefault, fieldName)),
@@ -83,7 +80,7 @@ export function useSyncedEditor<
83
80
  extraOptions?.onUpdate?.(ctx);
84
81
  },
85
82
  },
86
- [update, ...(editorDependencies ?? [])],
83
+ editorDependencies,
87
84
  );
88
85
 
89
86
  useEffect(() => {
@@ -141,3 +138,9 @@ function getFieldSnapshot(
141
138
  }
142
139
  return content;
143
140
  }
141
+
142
+ function useStableCallback<T extends (...args: any[]) => any>(callback: T) {
143
+ const ref = useRef(callback);
144
+ ref.current = callback;
145
+ return useCallback((...args: Parameters<T>) => ref.current(...args), []);
146
+ }