Skip to content

Commit 0ae5063

Browse files
committed
feat: add retry logic if preview not satisfactory
1 parent 3c8d07e commit 0ae5063

File tree

1 file changed

+29
-18
lines changed

1 file changed

+29
-18
lines changed

src/main.ts

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export default class MediaDbPlugin extends Plugin {
5858
menu.addItem(item => {
5959
item.setTitle('Import folder as Media DB entries')
6060
.setIcon('database')
61-
.onClick(() => this.createEntriesFromFolder(file as TFolder));
61+
.onClick(() => this.createEntriesFromFolder(file));
6262
});
6363
}
6464
}));
@@ -165,33 +165,44 @@ export default class MediaDbPlugin extends Plugin {
165165
});
166166

167167
if (!apiSearchResults) {
168+
// TODO: add new notice saying no results found?
168169
return;
169170
}
170171

171-
const selectResults: MediaTypeModel[] = await this.modalHelper.openSelectModal(apiSearchResults, async (selectedMediaTypeModels) => {
172-
return await this.queryDetails(selectedMediaTypeModels);
173-
});
172+
let selectResults: MediaTypeModel[];
173+
let proceed: boolean;
174174

175-
if (!selectResults) {
176-
return;
177-
}
175+
while (!proceed) {
176+
selectResults = await this.modalHelper.openSelectModal(apiSearchResults, async (selectedMediaTypeModels) => {
177+
return await this.queryDetails(selectedMediaTypeModels);
178+
});
179+
if (!selectResults) {
180+
return;
181+
}
178182

179-
const proceed: boolean = await this.modalHelper.openPreviewModal(selectResults, async (result) => {
180-
return true;
181-
})
182-
if (!proceed)
183-
return;
183+
proceed = await this.modalHelper.openPreviewModal(selectResults, async () => {
184+
return true;
185+
})
186+
}
184187

185188
await this.createMediaDbNotes(selectResults);
186189
}
187190

188-
async createEntryWithIdSearchModal() {
189-
const idSearchResult: MediaTypeModel = await this.modalHelper.openIdSearchModal(async (idSearchOptions) => {
190-
return await this.apiManager.queryDetailedInfoById(idSearchOptions.query, idSearchOptions.api);
191-
})
191+
async createEntryWithIdSearchModal(): Promise<void> {
192+
let idSearchResult: MediaTypeModel;
193+
let proceed: boolean;
192194

193-
if (!idSearchResult) {
194-
return;
195+
while (!proceed) {
196+
idSearchResult = await this.modalHelper.openIdSearchModal(async (idSearchOptions) => {
197+
return await this.apiManager.queryDetailedInfoById(idSearchOptions.query, idSearchOptions.api);
198+
})
199+
if (!idSearchResult) {
200+
return;
201+
}
202+
203+
proceed = await this.modalHelper.openPreviewModal([idSearchResult], async () => {
204+
return true;
205+
})
195206
}
196207

197208
await this.createMediaDbNoteFromModel(idSearchResult, {attachTemplate: true, openNote: true});

0 commit comments

Comments
 (0)