Skip to content
This repository was archived by the owner on Jan 30, 2026. It is now read-only.

Commit 79d24c7

Browse files
fix: disable comments module + sd update (#22)
Co-authored-by: Caio Pizzol <caiopizzol@icloud.com>
1 parent a8bb31e commit 79d24c7

File tree

5 files changed

+93
-94
lines changed

5 files changed

+93
-94
lines changed

demo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"@superdoc-dev/template-builder": "link:../.",
1212
"react": "^19.2.0",
1313
"react-dom": "^19.2.0",
14-
"superdoc": "^0.31.2"
14+
"superdoc": "^0.35.3"
1515
},
1616
"devDependencies": {
1717
"@types/react": "^19.2.6",

demo/pnpm-lock.yaml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
"peerDependencies": {
5555
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
5656
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
57-
"superdoc": "^0.31.2"
57+
"superdoc": "^0.35.3"
5858
},
5959
"devDependencies": {
6060
"@commitlint/cli": "^20.1.0",

pnpm-lock.yaml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.tsx

Lines changed: 81 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -367,101 +367,100 @@ const SuperDocTemplateBuilder = forwardRef<
367367
const initSuperDoc = async () => {
368368
const { SuperDoc } = await import('superdoc');
369369

370-
const config: Record<string, unknown> = {
371-
selector: containerRef.current!,
372-
document: document?.source,
373-
documentMode: document?.mode || 'editing',
374-
onReady: () => {
375-
if (instance.activeEditor) {
376-
const editor = instance.activeEditor;
377-
378-
editor.on('update', ({ editor: e }: any) => {
379-
const { state } = e;
380-
const { from } = state.selection;
381-
382-
if (from >= trigger.length) {
383-
const triggerStart = from - trigger.length;
384-
const text = state.doc.textBetween(triggerStart, from);
385-
386-
if (text === trigger) {
387-
const coords = e.view.coordsAtPos(from);
388-
const bounds = clampToViewport(new DOMRect(coords.left, coords.top, 0, 0));
389-
390-
const cleanup = () => {
391-
const editor = superdocRef.current?.activeEditor;
392-
if (!editor) return;
393-
const currentPos = editor.state.selection.from;
394-
const tr = editor.state.tr.delete(triggerStart, currentPos);
395-
(editor as any).view.dispatch(tr);
396-
};
397-
398-
triggerCleanupRef.current = cleanup;
399-
menuTriggerFromRef.current = from;
400-
setMenuPosition(bounds);
401-
setMenuVisible(true);
402-
resetMenuFilter();
403-
404-
onTrigger?.({
405-
position: { from: triggerStart, to: from },
406-
bounds,
407-
cleanup,
408-
});
409-
410-
return;
411-
}
412-
}
413-
414-
if (!menuVisibleRef.current) {
415-
return;
416-
}
370+
const modules: Record<string, unknown> = {
371+
comments: false,
372+
...(toolbarSettings && {
373+
toolbar: {
374+
selector: toolbarSettings.selector,
375+
toolbarGroups: toolbarSettings.config.toolbarGroups || ['center'],
376+
excludeItems: toolbarSettings.config.excludeItems || [],
377+
...toolbarSettings.config,
378+
},
379+
}),
380+
};
417381

418-
if (menuTriggerFromRef.current == null) {
419-
setMenuVisible(false);
382+
const handleReady = () => {
383+
if (instance.activeEditor) {
384+
const editor = instance.activeEditor;
385+
386+
editor.on('update', ({ editor: e }: any) => {
387+
const { state } = e;
388+
const { from } = state.selection;
389+
390+
if (from >= trigger.length) {
391+
const triggerStart = from - trigger.length;
392+
const text = state.doc.textBetween(triggerStart, from);
393+
394+
if (text === trigger) {
395+
const coords = e.view.coordsAtPos(from);
396+
const bounds = clampToViewport(new DOMRect(coords.left, coords.top, 0, 0));
397+
398+
const cleanup = () => {
399+
const editor = superdocRef.current?.activeEditor;
400+
if (!editor) return;
401+
const currentPos = editor.state.selection.from;
402+
const tr = editor.state.tr.delete(triggerStart, currentPos);
403+
(editor as any).view.dispatch(tr);
404+
};
405+
406+
triggerCleanupRef.current = cleanup;
407+
menuTriggerFromRef.current = from;
408+
setMenuPosition(bounds);
409+
setMenuVisible(true);
420410
resetMenuFilter();
421-
return;
422-
}
423411

424-
if (from < menuTriggerFromRef.current) {
425-
setMenuVisible(false);
426-
menuTriggerFromRef.current = null;
427-
resetMenuFilter();
412+
onTrigger?.({
413+
position: { from: triggerStart, to: from },
414+
bounds,
415+
cleanup,
416+
});
417+
428418
return;
429419
}
420+
}
421+
422+
if (!menuVisibleRef.current) {
423+
return;
424+
}
425+
426+
if (menuTriggerFromRef.current == null) {
427+
setMenuVisible(false);
428+
resetMenuFilter();
429+
return;
430+
}
431+
432+
if (from < menuTriggerFromRef.current) {
433+
setMenuVisible(false);
434+
menuTriggerFromRef.current = null;
435+
resetMenuFilter();
436+
return;
437+
}
438+
439+
const queryText = state.doc.textBetween(menuTriggerFromRef.current, from);
440+
updateMenuFilter(queryText);
441+
442+
const coords = e.view.coordsAtPos(from);
443+
const bounds = clampToViewport(new DOMRect(coords.left, coords.top, 0, 0));
444+
setMenuPosition(bounds);
445+
});
430446

431-
const queryText = state.doc.textBetween(menuTriggerFromRef.current, from);
432-
updateMenuFilter(queryText);
433-
434-
const coords = e.view.coordsAtPos(from);
435-
const bounds = clampToViewport(new DOMRect(coords.left, coords.top, 0, 0));
436-
setMenuPosition(bounds);
437-
});
438-
439-
editor.on('update', () => {
440-
discoverFields(editor);
441-
});
442-
447+
editor.on('update', () => {
443448
discoverFields(editor);
444-
}
449+
});
450+
451+
discoverFields(editor);
452+
}
445453

446-
onReady?.();
447-
},
454+
onReady?.();
448455
};
449456

450457
const instance = new SuperDoc({
451458
selector: containerRef.current!,
459+
document: document?.source,
452460
documentMode: document?.mode || 'editing',
453-
...config,
454-
...(toolbarSettings && {
455-
toolbar: toolbarSettings.selector,
456-
modules: {
457-
toolbar: {
458-
selector: toolbarSettings.selector,
459-
toolbarGroups: toolbarSettings.config.toolbarGroups || ['center'],
460-
excludeItems: toolbarSettings.config.excludeItems || [],
461-
...toolbarSettings.config,
462-
},
463-
},
464-
}),
461+
modules,
462+
toolbar: toolbarSettings?.selector,
463+
onReady: handleReady,
465464
});
466465

467466
superdocRef.current = instance;

0 commit comments

Comments
 (0)