From 0ae5063567fab96f9e94dcef647ecdea65fbbf54 Mon Sep 17 00:00:00 2001 From: AB1908 <14124383+AB1908@users.noreply.github.com> Date: Sun, 9 Oct 2022 15:57:45 +0530 Subject: [PATCH] feat: add retry logic if preview not satisfactory --- src/main.ts | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/src/main.ts b/src/main.ts index 511e083..6d93b9c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -58,7 +58,7 @@ export default class MediaDbPlugin extends Plugin { menu.addItem(item => { item.setTitle('Import folder as Media DB entries') .setIcon('database') - .onClick(() => this.createEntriesFromFolder(file as TFolder)); + .onClick(() => this.createEntriesFromFolder(file)); }); } })); @@ -165,33 +165,44 @@ export default class MediaDbPlugin extends Plugin { }); if (!apiSearchResults) { + // TODO: add new notice saying no results found? return; } - const selectResults: MediaTypeModel[] = await this.modalHelper.openSelectModal(apiSearchResults, async (selectedMediaTypeModels) => { - return await this.queryDetails(selectedMediaTypeModels); - }); + let selectResults: MediaTypeModel[]; + let proceed: boolean; - if (!selectResults) { - return; + while (!proceed) { + selectResults = await this.modalHelper.openSelectModal(apiSearchResults, async (selectedMediaTypeModels) => { + return await this.queryDetails(selectedMediaTypeModels); + }); + if (!selectResults) { + return; + } + + proceed = await this.modalHelper.openPreviewModal(selectResults, async () => { + return true; + }) } - const proceed: boolean = await this.modalHelper.openPreviewModal(selectResults, async (result) => { - return true; - }) - if (!proceed) - return; - await this.createMediaDbNotes(selectResults); } - async createEntryWithIdSearchModal() { - const idSearchResult: MediaTypeModel = await this.modalHelper.openIdSearchModal(async (idSearchOptions) => { - return await this.apiManager.queryDetailedInfoById(idSearchOptions.query, idSearchOptions.api); - }) + async createEntryWithIdSearchModal(): Promise { + let idSearchResult: MediaTypeModel; + let proceed: boolean; - if (!idSearchResult) { - return; + while (!proceed) { + idSearchResult = await this.modalHelper.openIdSearchModal(async (idSearchOptions) => { + return await this.apiManager.queryDetailedInfoById(idSearchOptions.query, idSearchOptions.api); + }) + if (!idSearchResult) { + return; + } + + proceed = await this.modalHelper.openPreviewModal([idSearchResult], async () => { + return true; + }) } await this.createMediaDbNoteFromModel(idSearchResult, {attachTemplate: true, openNote: true});