cancel shows in error report

This commit is contained in:
mProjectsCode 2022-06-10 20:54:21 +02:00
parent bbc4b57092
commit 038d473a4f
3 changed files with 24 additions and 7 deletions

View file

@ -215,13 +215,22 @@ export default class MediaDbPlugin extends Plugin {
let selectedResults: MediaTypeModel[] = await new Promise((resolve, reject) => { let selectedResults: MediaTypeModel[] = await new Promise((resolve, reject) => {
const searchResultModal = new MediaDbSearchResultModal(this.app, this, results, (err, res) => { const searchResultModal = new MediaDbSearchResultModal(this.app, this, results, (err, res) => {
if (err) return reject(err); if (err) {
return reject(err);
}
resolve(res); resolve(res);
}, () => {
resolve([]);
}); });
searchResultModal.title = `Results for \'${title}\'`; searchResultModal.title = `Results for \'${title}\'`;
searchResultModal.open(); searchResultModal.open();
}); });
if (selectedResults.length === 0) {
erroredFiles.push({filePath: file.path, error: `no search results selected`});
}
await this.createMediaDbNote(async () => selectedResults); await this.createMediaDbNote(async () => selectedResults);
} }
} }
@ -249,7 +258,7 @@ export default class MediaDbPlugin extends Plugin {
return reject(err2); return reject(err2);
} }
resolve(res); resolve(res);
}).open(); }, () => resolve([])).open();
}).open(); }).open();
})); }));
} }
@ -257,7 +266,9 @@ export default class MediaDbPlugin extends Plugin {
async openMediaDbIdSearchModal(): Promise<MediaTypeModel> { async openMediaDbIdSearchModal(): Promise<MediaTypeModel> {
return new Promise(((resolve, reject) => { return new Promise(((resolve, reject) => {
new MediaDbIdSearchModal(this.app, this, (err, res) => { new MediaDbIdSearchModal(this.app, this, (err, res) => {
if (err) return reject(err); if (err) {
return reject(err);
}
resolve(res); resolve(res);
}).open(); }).open();
})); }));

View file

@ -7,11 +7,13 @@ export class MediaDbSearchResultModal extends SelectModal<MediaTypeModel> {
plugin: MediaDbPlugin; plugin: MediaDbPlugin;
heading: string; heading: string;
onChoose: (error: Error, result: MediaTypeModel[]) => void; onChoose: (error: Error, result: MediaTypeModel[]) => void;
onCancel: () => void;
constructor(app: App, plugin: MediaDbPlugin, elements: MediaTypeModel[], onChoose: (error: Error, result: MediaTypeModel[]) => void) { constructor(app: App, plugin: MediaDbPlugin, elements: MediaTypeModel[], onChoose: (error: Error, result: MediaTypeModel[]) => void, onCancel: () => void) {
super(app, elements); super(app, elements);
this.plugin = plugin; this.plugin = plugin;
this.onChoose = onChoose; this.onChoose = onChoose;
this.onCancel = onCancel;
this.title = 'Search Results'; this.title = 'Search Results';
this.description = 'Select one or multiple search results.'; this.description = 'Select one or multiple search results.';
@ -25,8 +27,12 @@ export class MediaDbSearchResultModal extends SelectModal<MediaTypeModel> {
} }
// Perform action on the selected suggestion. // Perform action on the selected suggestion.
submit() { onSubmit() {
this.onChoose(null, this.selectModalElements.filter(x => x.isActive()).map(x => x.value)); this.onChoose(null, this.selectModalElements.filter(x => x.isActive()).map(x => x.value));
this.close(); this.close();
} }
onClose() {
this.onCancel();
}
} }

View file

@ -22,7 +22,7 @@ export abstract class SelectModal<T> extends Modal {
abstract renderElement(value: T, el: HTMLElement): any; abstract renderElement(value: T, el: HTMLElement): any;
abstract submit(): void; abstract onSubmit(): void;
disableAllOtherElements(elementId: number) { disableAllOtherElements(elementId: number) {
for (const selectModalElement of this.selectModalElements) { for (const selectModalElement of this.selectModalElements) {
@ -67,6 +67,6 @@ export abstract class SelectModal<T> extends Modal {
new Setting(contentEl) new Setting(contentEl)
.addButton(btn => btn.setButtonText('Cancel').onClick(() => this.close())) .addButton(btn => btn.setButtonText('Cancel').onClick(() => this.close()))
.addButton(btn => btn.setButtonText('Ok').setCta().onClick(() => this.submit())); .addButton(btn => btn.setButtonText('Ok').setCta().onClick(() => this.onSubmit()));
} }
} }