Some more modal changes (look at those doc comments :o)

How did this work the first time i tested it???
This commit is contained in:
mProjectsCode 2022-10-08 22:04:03 +02:00
parent db4a6c98a3
commit a3905daf5b
8 changed files with 374 additions and 160 deletions

View file

@ -1,31 +1,34 @@
import {MediaTypeModel} from '../models/MediaTypeModel';
import MediaDbPlugin from '../main';
import {SelectModal} from './SelectModal';
import {SELECT_MODAL_OPTIONS_DEFAULT, SelectModalData, SelectModalOptions} from '../utils/ModalHelper';
export class MediaDbSearchResultModal extends SelectModal<MediaTypeModel> {
plugin: MediaDbPlugin;
heading: string;
busy: boolean;
submitCallback: (res: MediaTypeModel[]) => void;
sendCallback: boolean;
submitCallback: (res: SelectModalData) => void;
closeCallback: (err?: Error) => void;
skipCallback: () => void;
sendCallback: boolean;
constructor(plugin: MediaDbPlugin, elements: MediaTypeModel[], skipButton: boolean, allowMultiSelect: boolean = true) {
super(plugin.app, elements, allowMultiSelect);
constructor(plugin: MediaDbPlugin, selectModalOptions: SelectModalOptions) {
selectModalOptions = Object.assign({}, SELECT_MODAL_OPTIONS_DEFAULT, selectModalOptions);
super(plugin.app, selectModalOptions.elements, selectModalOptions.multiSelect);
this.plugin = plugin;
this.title = 'Search Results';
this.title = selectModalOptions.modalTitle;
this.description = 'Select one or multiple search results.';
this.addSkipButton = skipButton;
this.addSkipButton = selectModalOptions.skipButton;
this.busy = false;
this.sendCallback = false;
}
setSubmitCallback(submitCallback: (res: MediaTypeModel[]) => void): void {
setSubmitCallback(submitCallback: (res: SelectModalData) => void): void {
this.submitCallback = submitCallback;
}
@ -49,7 +52,7 @@ export class MediaDbSearchResultModal extends SelectModal<MediaTypeModel> {
if (!this.busy) {
this.busy = true;
this.submitButton.setButtonText('Creating entry...');
this.submitCallback(this.selectModalElements.filter(x => x.isActive()).map(x => x.value));
this.submitCallback({selected: this.selectModalElements.filter(x => x.isActive()).map(x => x.value)});
}
}