From 172b6418bac12c84db1b26d6510c58bee4d931fe Mon Sep 17 00:00:00 2001 From: windingwind <33902321+windingwind@users.noreply.github.com> Date: Sun, 4 Aug 2024 12:51:47 +0800 Subject: [PATCH] fix: do not render sections outside workspace --- src/modules/workspace/link.ts | 3 ++- src/modules/workspace/preview.ts | 3 ++- src/modules/workspace/relation.ts | 13 ++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/workspace/link.ts b/src/modules/workspace/link.ts index 9e9c66e..76f370c 100644 --- a/src/modules/workspace/link.ts +++ b/src/modules/workspace/link.ts @@ -68,7 +68,8 @@ export function registerNoteLinkSection(type: "inbound" | "outbound") { setEnabled(false); }, onRender: () => {}, - onAsyncRender: async ({ body, item, setL10nArgs }) => { + onAsyncRender: async ({ body, item, setL10nArgs, tabType }) => { + if (!item?.isNote()) return; await renderSection(type, { body, item, diff --git a/src/modules/workspace/preview.ts b/src/modules/workspace/preview.ts index f40b9f8..42bb7be 100644 --- a/src/modules/workspace/preview.ts +++ b/src/modules/workspace/preview.ts @@ -85,7 +85,8 @@ export function openNotePreview( onRender: ({ setSectionSummary }) => { setSectionSummary(noteItem.getNoteTitle()); }, - onAsyncRender: async ({ body }) => { + onAsyncRender: async ({ body, item }) => { + if (!item?.isNote()) return; const editorElement = body.querySelector("note-editor")! as EditorElement; await waitUtilAsync(() => Boolean(editorElement._initialized)); if (!editorElement._initialized) { diff --git a/src/modules/workspace/relation.ts b/src/modules/workspace/relation.ts index 17f0171..f90bce8 100644 --- a/src/modules/workspace/relation.ts +++ b/src/modules/workspace/relation.ts @@ -20,11 +20,7 @@ export function registerNoteRelation() { rel="stylesheet" href="chrome://${config.addonRef}/content/styles/workspace/relation.css" > - -`, +`, sectionButtons: [ { type: "refreshGraph", @@ -83,6 +79,13 @@ export function registerNoteRelation() { }, onRender: () => {}, onAsyncRender: async ({ body, item }) => { + if (!item?.isNote()) return; + if (!body.querySelector("#bn-relation-graph")) { + const iframe = body.ownerDocument.createXULElement("iframe") as HTMLIFrameElement; + iframe.src = `chrome://${config.addonRef}/content/relationGraph.html`; + iframe.id = "bn-relation-graph"; + body.appendChild(iframe); + } await renderGraph(body, item); }, });