mirror of
https://github.com/zadam/trilium.git
synced 2025-11-03 11:56:01 +01:00
feat(render): integrate with search
This commit is contained in:
@@ -45,7 +45,7 @@ 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();
|
||||
|
||||
@@ -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 (
|
||||
<div className="note-detail-render note-detail-printable">
|
||||
{!renderNotesFound && (
|
||||
|
||||
@@ -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<HTMLElement>;
|
||||
private $noteDetailRenderContent!: JQuery<HTMLElement>;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user