From d748d9840e800b9052d180d94502e48d6ce69b1b Mon Sep 17 00:00:00 2001 From: ltctceplrm <14954927+ltctceplrm@users.noreply.github.com> Date: Wed, 14 Jan 2026 20:59:40 +0100 Subject: [PATCH] Added more clarity When searching for seasons the modal specifies that you must select only one series to proceed to the season selection screen --- src/main.ts | 24 ++++++++++++++++++------ src/modals/MediaDbSearchResultModal.ts | 4 ++-- src/modals/SelectModal.ts | 2 +- src/utils/ModalHelper.ts | 7 +++++-- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/main.ts b/src/main.ts index b1c2881..bab4f6a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -221,14 +221,26 @@ export default class MediaDbPlugin extends Plugin { while (!proceed) { if (types.length === 1 && types[0] === 'season') { selectResults = - (await this.modalHelper.openSelectModal({ elements: apiSearchResults }, async selectModalData => { - return selectModalData.selected; - })) ?? []; + (await this.modalHelper.openSelectModal( + { + elements: apiSearchResults, + description: 'Select one search result to proceed.', + submitButtonText: 'Ok', + }, + async selectModalData => { + return selectModalData.selected; + }, + )) ?? []; } else { selectResults = - (await this.modalHelper.openSelectModal({ elements: apiSearchResults }, async selectModalData => { - return await this.queryDetails(selectModalData.selected); - })) ?? []; + (await this.modalHelper.openSelectModal( + { + elements: apiSearchResults, + }, + async selectModalData => { + return await this.queryDetails(selectModalData.selected); + }, + )) ?? []; } if (!selectResults || selectResults.length < 1) { return; diff --git a/src/modals/MediaDbSearchResultModal.ts b/src/modals/MediaDbSearchResultModal.ts index a4cd146..1f34444 100644 --- a/src/modals/MediaDbSearchResultModal.ts +++ b/src/modals/MediaDbSearchResultModal.ts @@ -20,9 +20,9 @@ export class MediaDbSearchResultModal extends SelectModal { super(plugin.app, selectModalOptions.elements ?? [], selectModalOptions.multiSelect); this.plugin = plugin; this.title = selectModalOptions.modalTitle ?? ''; - this.description = 'Select one or multiple search results.'; + this.description = selectModalOptions.description ?? 'Select one or multiple search results.'; this.addSkipButton = selectModalOptions.skipButton ?? false; - this.submitButtonText = 'Ok'; + this.submitButtonText = selectModalOptions.submitButtonText ?? 'Ok'; this.busy = false; this.sendCallback = false; } diff --git a/src/modals/SelectModal.ts b/src/modals/SelectModal.ts index 0057e37..d54b5f9 100644 --- a/src/modals/SelectModal.ts +++ b/src/modals/SelectModal.ts @@ -116,7 +116,7 @@ export abstract class SelectModal extends Modal { this.skipButton = btn; }); } - bottomSettingRow.addButton((btn) => { + bottomSettingRow.addButton(btn => { btn.setButtonText(this.submitButtonText); btn.setCta(); btn.onClick(() => this.submit()); diff --git a/src/utils/ModalHelper.ts b/src/utils/ModalHelper.ts index 4ba7c95..79c7c7f 100644 --- a/src/utils/ModalHelper.ts +++ b/src/utils/ModalHelper.ts @@ -159,12 +159,13 @@ export interface IdSearchModalOptions { * - skipButton: whether to add a skip button to the modal */ export interface SelectModalOptions { - modalTitle?: string; elements?: MediaTypeModel[]; multiSelect?: boolean; + modalTitle?: string; skipButton?: boolean; + description?: string; // Add this + submitButtonText?: string; // Add this too } - /** * Options for the preview modal. * - modalTitle: the title of the modal @@ -210,6 +211,8 @@ export const SELECTMODALOPTIONSDEFAULT: SelectModalOptions = { multiSelect: true, modalTitle: '', skipButton: false, + description: 'Select one or multiple search results.', + submitButtonText: 'Ok', }; /**