Merge pull request #2055 from TriliumNext/mind-map-find

feat(mindMap): support find
This commit is contained in:
Elian Doran 2025-05-30 09:17:48 +03:00 committed by GitHub
commit 74a11b5e66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 16 additions and 5 deletions

View File

@ -186,7 +186,7 @@ export default class NoteActionsWidget extends NoteContextAwareWidget {
this.$convertNoteIntoAttachmentButton.toggle(note.isEligibleForConversionToAttachment()); this.$convertNoteIntoAttachmentButton.toggle(note.isEligibleForConversionToAttachment());
this.toggleDisabled(this.$findInTextButton, ["text", "code", "book"].includes(note.type)); this.toggleDisabled(this.$findInTextButton, ["text", "code", "book", "mindMap"].includes(note.type));
this.toggleDisabled(this.$showAttachmentsButton, !isInOptions); this.toggleDisabled(this.$showAttachmentsButton, !isInOptions);
this.toggleDisabled(this.$showSourceButton, ["text", "code", "relationMap", "mermaid", "canvas", "mindMap", "geoMap"].includes(note.type)); this.toggleDisabled(this.$showSourceButton, ["text", "code", "relationMap", "mermaid", "canvas", "mindMap", "geoMap"].includes(note.type));

View File

@ -188,7 +188,7 @@ export default class FindWidget extends NoteContextAwareWidget {
return; return;
} }
if (!["text", "code", "render"].includes(this.note?.type ?? "")) { if (!["text", "code", "render", "mindMap"].includes(this.note?.type ?? "")) {
return; return;
} }
@ -250,6 +250,8 @@ export default class FindWidget extends NoteContextAwareWidget {
case "text": case "text":
const readOnly = await this.noteContext?.isReadOnly(); const readOnly = await this.noteContext?.isReadOnly();
return readOnly ? this.htmlHandler : this.textHandler; return readOnly ? this.htmlHandler : this.textHandler;
case "mindMap":
return this.htmlHandler;
default: default:
console.warn("FindWidget: Unsupported note type for find widget", this.note?.type); console.warn("FindWidget: Unsupported note type for find widget", this.note?.type);
} }
@ -352,7 +354,7 @@ export default class FindWidget extends NoteContextAwareWidget {
} }
isEnabled() { isEnabled() {
return super.isEnabled() && ["text", "code", "render"].includes(this.note?.type ?? ""); return super.isEnabled() && ["text", "code", "render", "mindMap"].includes(this.note?.type ?? "");
} }
async entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) { async entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) {

View File

@ -85,7 +85,7 @@ export default class FindInHtml {
if (this.$results?.length) { if (this.$results?.length) {
const $current = this.$results.eq(this.currentIndex); const $current = this.$results.eq(this.currentIndex);
this.$results.removeClass(FIND_RESULT_SELECTED_CSS_CLASSNAME); this.$results.removeClass(FIND_RESULT_SELECTED_CSS_CLASSNAME);
$current[0].scrollIntoView(); $current[0].scrollIntoView({ block: 'center', inline: 'center'});
$current.addClass(FIND_RESULT_SELECTED_CSS_CLASSNAME); $current.addClass(FIND_RESULT_SELECTED_CSS_CLASSNAME);
} }
} }

View File

@ -286,4 +286,13 @@ export default class MindMapWidget extends TypeWidget {
utils.downloadSvgAsPng(this.note.title, svg); utils.downloadSvgAsPng(this.note.title, svg);
} }
async executeWithContentElementEvent({ resolve, ntxId }: EventData<"executeWithContentElement">) {
if (!this.isNoteContext(ntxId)) {
return;
}
await this.initialized;
resolve(this.$content.find('.main-node-container'));
}
} }

View File

@ -115,7 +115,7 @@ test("Search works when dismissing a tab", async ({ page, context }) => {
await app.getTab(0).click(); await app.getTab(0).click();
await app.openAndClickNoteActionMenu("Search in note"); await app.openAndClickNoteActionMenu("Search in note");
await expect(app.findAndReplaceWidget).toBeVisible(); await expect(app.findAndReplaceWidget.first()).toBeVisible();
}); });
test("New tab displays workspaces", async ({ page, context }) => { test("New tab displays workspaces", async ({ page, context }) => {