import { t } from "../services/i18n.js";
import NoteContextAwareWidget from "./note_context_aware_widget.js";
import NoteListRenderer from "../services/note_list_renderer.js";
import type FNote from "../entities/fnote.js";
import type { EventData } from "../components/app_context.js";
const TPL = /*html*/`
`;
export default class SearchResultWidget extends NoteContextAwareWidget {
    private $content!: JQuery;
    private $noResults!: JQuery;
    private $notExecutedYet!: JQuery;
    isEnabled() {
        return super.isEnabled() && this.note?.type === "search";
    }
    doRender() {
        this.$widget = $(TPL);
        this.contentSized();
        this.$content = this.$widget.find(".search-result-widget-content");
        this.$noResults = this.$widget.find(".search-no-results");
        this.$notExecutedYet = this.$widget.find(".search-not-executed-yet");
    }
    async refreshWithNote(note: FNote) {
        const noResults = note.getChildNoteIds().length === 0 && !!note.searchResultsLoaded;
        this.$content.empty();
        this.$noResults.toggle(noResults);
        this.$notExecutedYet.toggle(!note.searchResultsLoaded);
        if (noResults || !note.searchResultsLoaded) {
            return;
        }
        const noteListRenderer = new NoteListRenderer({
            $parent: this.$content,
            parentNote: note,
            showNotePath: true
        });
        await noteListRenderer.renderList();
    }
    searchRefreshedEvent({ ntxId }: EventData<"searchRefreshed">) {
        if (!this.isNoteContext(ntxId)) {
            return;
        }
        this.refresh();
    }
    notesReloadedEvent({ noteIds }: EventData<"notesReloaded">) {
        if (this.noteId && noteIds.includes(this.noteId)) {
            this.refresh();
        }
    }
}