feat: add previewModal handler to ModalHelper
This commit is contained in:
parent
7c926f00af
commit
3ceeb3c51c
1 changed files with 37 additions and 0 deletions
|
|
@ -131,5 +131,42 @@ export class ModalHelper {
|
|||
return;
|
||||
}
|
||||
}
|
||||
|
||||
async createPreviewModal(mediaTypeModel: MediaTypeModel[]): Promise<{ result: boolean, previewModal: MediaDbPreviewModal }> {
|
||||
//todo: handle attachFile for existing files
|
||||
const modal = new MediaDbPreviewModal(this.plugin, mediaTypeModel, { attachTemplate: true, attachFile: false });
|
||||
const booleanResult: boolean = await new Promise((resolve, reject) => {
|
||||
modal.setSubmitCallback(res => resolve(res));
|
||||
modal.setCloseCallback(err => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
resolve(undefined);
|
||||
});
|
||||
|
||||
modal.open();
|
||||
});
|
||||
return { result: booleanResult, previewModal: modal };
|
||||
}
|
||||
|
||||
async openPreviewModal(mediaModels: MediaTypeModel[], submitCallback: (result: boolean) => Promise<boolean>): Promise<boolean> {
|
||||
const { result, previewModal } = await this.createPreviewModal(mediaModels);
|
||||
if (!result) {
|
||||
previewModal.close();
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
let callbackRes: boolean;
|
||||
callbackRes = await submitCallback(result);
|
||||
previewModal.close();
|
||||
return callbackRes;
|
||||
} catch (e) {
|
||||
console.warn(e);
|
||||
new Notice(e.toString());
|
||||
previewModal.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue