diff --git a/apps/client/src/components/app_context.ts b/apps/client/src/components/app_context.ts index 88222a497..68343b864 100644 --- a/apps/client/src/components/app_context.ts +++ b/apps/client/src/components/app_context.ts @@ -34,6 +34,7 @@ import { ChooseNoteTypeCallback } from "../widgets/dialogs/note_type_chooser.jsx import type RootContainer from "../widgets/containers/root_container.js"; import { SqlExecuteResults } from "@triliumnext/commons"; import { AddLinkOpts } from "../widgets/dialogs/add_link.jsx"; +import { IncludeNoteOpts } from "../widgets/dialogs/include_note.jsx"; interface Layout { getRootWidget: (appContext: AppContext) => RootContainer; @@ -223,7 +224,7 @@ export type CommandMappings = { showPasswordNotSet: CommandData; showProtectedSessionPasswordDialog: CommandData; showUploadAttachmentsDialog: CommandData & { noteId: string }; - showIncludeNoteDialog: CommandData & { textTypeWidget: EditableTextTypeWidget }; + showIncludeNoteDialog: CommandData & IncludeNoteOpts; showAddLinkDialog: CommandData & AddLinkOpts; closeProtectedSessionPasswordDialog: CommandData; copyImageReferenceToClipboard: CommandData; diff --git a/apps/client/src/widgets/dialogs/include_note.tsx b/apps/client/src/widgets/dialogs/include_note.tsx index dc3498430..530699660 100644 --- a/apps/client/src/widgets/dialogs/include_note.tsx +++ b/apps/client/src/widgets/dialogs/include_note.tsx @@ -10,15 +10,20 @@ import tree from "../../services/tree"; import froca from "../../services/froca"; import EditableTextTypeWidget, { type BoxSize } from "../type_widgets_old/editable_text"; import { useTriliumEvent } from "../react/hooks"; +import { CKEditorApi } from "../type_widgets/text/CKEditorWithWatchdog"; + +export interface IncludeNoteOpts { + editorApi: CKEditorApi; +} export default function IncludeNoteDialog() { - const [textTypeWidget, setTextTypeWidget] = useState(); + const editorApiRef = useRef(null); const [suggestion, setSuggestion] = useState(null); const [boxSize, setBoxSize] = useState("medium"); const [shown, setShown] = useState(false); - useTriliumEvent("showIncludeNoteDialog", ({ textTypeWidget }) => { - setTextTypeWidget(textTypeWidget); + useTriliumEvent("showIncludeNoteDialog", ({ editorApi }) => { + editorApiRef.current = editorApi; setShown(true); }); @@ -32,12 +37,9 @@ export default function IncludeNoteDialog() { onShown={() => triggerRecentNotes(autoCompleteRef.current)} onHidden={() => setShown(false)} onSubmit={() => { - if (!suggestion?.notePath || !textTypeWidget) { - return; - } - + if (!suggestion?.notePath || !editorApiRef.current) return; setShown(false); - includeNote(suggestion.notePath, textTypeWidget, boxSize as BoxSize); + includeNote(suggestion.notePath, editorApiRef.current, boxSize as BoxSize); }} footer={