From 3639b943624114f435248083f4b6bc0105b6558a Mon Sep 17 00:00:00 2001 From: David Wheatley Date: Sat, 31 Jul 2021 22:39:32 +0100 Subject: [PATCH] Export more interfaces and types --- js/src/admin/components/AdminPage.tsx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/js/src/admin/components/AdminPage.tsx b/js/src/admin/components/AdminPage.tsx index 2f4dc859f..844f386c5 100644 --- a/js/src/admin/components/AdminPage.tsx +++ b/js/src/admin/components/AdminPage.tsx @@ -51,18 +51,27 @@ interface CommonSettingsItemOptions extends Mithril.Attributes { className?: string; } -interface HTMLInputSettingsComponentOptions extends CommonSettingsItemOptions { +/** + * Valid options for the setting component builder to generate an HTML input element. + */ +export interface HTMLInputSettingsComponentOptions extends CommonSettingsItemOptions { /** * Any valid HTML input `type` value. */ type: HTMLInputTypes; } -interface SwitchSettingComponentOptions extends CommonSettingsItemOptions { +/** + * Valid options for the setting component builder to generate a Switch. + */ +export interface SwitchSettingComponentOptions extends CommonSettingsItemOptions { type: 'bool' | 'checkbox' | 'switch' | 'boolean'; } -interface SelectSettingComponentOptions extends CommonSettingsItemOptions { +/** + * Valid options for the setting component builder to generate a Select dropdown. + */ +export interface SelectSettingComponentOptions extends CommonSettingsItemOptions { type: 'select' | 'dropdown' | 'selectdropdown'; /** * Map of values to their labels @@ -71,8 +80,14 @@ interface SelectSettingComponentOptions extends CommonSettingsItemOptions { default: string; } +/** + * All valid options for the setting component builder. + */ export type SettingsComponentOptions = HTMLInputSettingsComponentOptions | SwitchSettingComponentOptions | SelectSettingComponentOptions; +/** + * Valid attrs that can be returned by the `headerInfo` function + */ export type AdminHeaderAttrs = AdminHeaderOptions & Partial>; export default class AdminPage extends Page {