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;
|
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