diff --git a/apps/client/src/widgets/ribbon/NoteActions.tsx b/apps/client/src/widgets/ribbon/NoteActions.tsx index f780eab8b..361dd2c16 100644 --- a/apps/client/src/widgets/ribbon/NoteActions.tsx +++ b/apps/client/src/widgets/ribbon/NoteActions.tsx @@ -45,13 +45,13 @@ function RevisionsButton({ note }: { note: FNote }) { function NoteContextMenu({ note, noteContext }: { note: FNote, noteContext?: NoteContext }) { const parentComponent = useContext(ParentComponent); const canBeConvertedToAttachment = note?.isEligibleForConversionToAttachment(); - const isSearchable = ["text", "code", "book", "mindMap", "doc"].includes(note.type); + const isSearchable = ["text", "code", "book", "mindMap", "doc", "render"].includes(note.type); const isInOptions = note.noteId.startsWith("_options"); const isPrintable = ["text", "code"].includes(note.type); const isElectron = getIsElectron(); const isMac = getIsMac(); const hasSource = ["text", "code", "relationMap", "mermaid", "canvas", "mindMap"].includes(note.type); - const isSearchOrBook = ["search", "book"].includes(note.type); + const isSearchOrBook = ["search", "book"].includes(note.type); return ( noteContext?.notePath && parentComponent?.triggerCommand("showExportDialog", { - notePath: noteContext.notePath, + notePath: noteContext.notePath, defaultType: "single" })} /> @@ -133,4 +133,4 @@ function ConvertToAttachment({ note }: { note: FNote }) { }} >{t("note_actions.convert_into_attachment")} ) -} \ No newline at end of file +} diff --git a/apps/client/src/widgets/type_widgets/Render.tsx b/apps/client/src/widgets/type_widgets/Render.tsx index f07d730a5..60b8e91a5 100644 --- a/apps/client/src/widgets/type_widgets/Render.tsx +++ b/apps/client/src/widgets/type_widgets/Render.tsx @@ -18,15 +18,25 @@ export default function Render({ note, noteContext, ntxId }: TypeWidgetProps) { } useEffect(refresh, [ note ]); + + // Keyboard shortcut. useTriliumEvent("renderActiveNote", () => { if (noteContext?.isActive()) return; refresh(); }); + + // Refresh on floating buttons. useTriliumEvent("refreshData", ({ ntxId: eventNtxId }) => { if (eventNtxId !== ntxId) return; refresh(); }); + // Integration with search. + useTriliumEvent("executeWithContentElement", ({ resolve, ntxId: eventNtxId }) => { + if (eventNtxId !== ntxId) return; + resolve(refToJQuerySelector(contentRef)); + }); + return (
{!renderNotesFound && ( diff --git a/apps/client/src/widgets/type_widgets_old/render.ts b/apps/client/src/widgets/type_widgets_old/render.ts deleted file mode 100644 index 12c4053b6..000000000 --- a/apps/client/src/widgets/type_widgets_old/render.ts +++ /dev/null @@ -1,44 +0,0 @@ -import renderService from "../../services/render.js"; -import TypeWidget from "./type_widget.js"; -import type FNote from "../../entities/fnote.js"; -import type { EventData } from "../../components/app_context.js"; - - -export default class RenderTypeWidget extends TypeWidget { - - private $noteDetailRenderHelp!: JQuery; - private $noteDetailRenderContent!: JQuery; - - static getType() { - return "render"; - } - - doRender() { - this.$widget = $(TPL); - this.$noteDetailRenderHelp = this.$widget.find(".note-detail-render-help"); - this.$noteDetailRenderContent = this.$widget.find(".note-detail-render-content"); - - super.doRender(); - } - - async doRefresh(note: FNote) { - this.$widget.show(); - this.$noteDetailRenderHelp.hide(); - - const renderNotesFound = await renderService.render(note, this.$noteDetailRenderContent); - } - - cleanup() { - this.$noteDetailRenderContent.empty(); - } - - async executeWithContentElementEvent({ resolve, ntxId }: EventData<"executeWithContentElement">) { - if (!this.isNoteContext(ntxId)) { - return; - } - - await this.initialized; - - resolve(this.$noteDetailRenderContent); - } -}