From e84eb900ffe2ad1e59b4b04d0b87dbac1f37584b Mon Sep 17 00:00:00 2001 From: Ujwal Kumar Date: Tue, 27 Jun 2023 10:21:26 +0530 Subject: [PATCH] MM-52834 : Migrate "components/admin_console/dropdown_setting.jsx" and tests to Typescript (#23533) --- ...opdown_setting.jsx => dropdown_setting.tsx} | 18 +++++++++++++++--- .../admin_console/message_export_settings.jsx | 2 +- .../components/admin_console/push_settings.tsx | 4 ++-- .../admin_console/schema_admin_settings.jsx | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) rename webapp/channels/src/components/admin_console/{dropdown_setting.jsx => dropdown_setting.tsx} (73%) diff --git a/webapp/channels/src/components/admin_console/dropdown_setting.jsx b/webapp/channels/src/components/admin_console/dropdown_setting.tsx similarity index 73% rename from webapp/channels/src/components/admin_console/dropdown_setting.jsx rename to webapp/channels/src/components/admin_console/dropdown_setting.tsx index 0f43681563..b8c0ac6850 100644 --- a/webapp/channels/src/components/admin_console/dropdown_setting.jsx +++ b/webapp/channels/src/components/admin_console/dropdown_setting.tsx @@ -2,11 +2,23 @@ // See LICENSE.txt for license information. import PropTypes from 'prop-types'; -import React from 'react'; +import React, {PureComponent, ReactNode, ChangeEvent} from 'react'; import Setting from './setting'; +import {EmailSettings} from '@mattermost/types/config'; -export default class DropdownSetting extends React.PureComponent { +type Props = { + id: string; + values: Array<{text: string; value: string}>; + label: ReactNode; + value: string; + onChange: (id: string, value: string | EmailSettings['PushNotificationServerType'] | EmailSettings['PushNotificationServerLocation']) => void; + disabled?: boolean; + setByEnv: boolean; + helpText?: ReactNode; +} + +export default class DropdownSetting extends PureComponent { static propTypes = { id: PropTypes.string.isRequired, values: PropTypes.array.isRequired, @@ -22,7 +34,7 @@ export default class DropdownSetting extends React.PureComponent { isDisabled: false, }; - handleChange = (e) => { + handleChange = (e: ChangeEvent) => { this.props.onChange(this.props.id, e.target.value); }; diff --git a/webapp/channels/src/components/admin_console/message_export_settings.jsx b/webapp/channels/src/components/admin_console/message_export_settings.jsx index cf84f04f7d..15b89f4cea 100644 --- a/webapp/channels/src/components/admin_console/message_export_settings.jsx +++ b/webapp/channels/src/components/admin_console/message_export_settings.jsx @@ -14,7 +14,7 @@ import ExternalLink from 'components/external_link'; import AdminSettings from './admin_settings'; import BooleanSetting from './boolean_setting'; -import DropdownSetting from './dropdown_setting.jsx'; +import DropdownSetting from './dropdown_setting'; import JobsTable from './jobs'; import SettingsGroup from './settings_group'; import TextSetting from './text_setting'; diff --git a/webapp/channels/src/components/admin_console/push_settings.tsx b/webapp/channels/src/components/admin_console/push_settings.tsx index dc30873e24..02cc1cfada 100644 --- a/webapp/channels/src/components/admin_console/push_settings.tsx +++ b/webapp/channels/src/components/admin_console/push_settings.tsx @@ -10,7 +10,7 @@ import {Constants, DocLinks} from 'utils/constants'; import * as Utils from 'utils/utils'; import AdminSettings, {BaseProps, BaseState} from './admin_settings'; -import DropdownSetting from './dropdown_setting.jsx'; +import DropdownSetting from './dropdown_setting'; import SettingsGroup from './settings_group'; import TextSetting from './text_setting'; import {AdminConfig, ClientLicense, EmailSettings} from '@mattermost/types/config'; @@ -54,7 +54,7 @@ export default class PushSettings extends AdminSettings { }); }; - handleDropdownChange = (id: string, value: EmailSettings['PushNotificationServerType'] | EmailSettings['PushNotificationServerLocation']) => { + handleDropdownChange = (id: string, value: string) => { if (id === DROPDOWN_ID_SERVER_TYPE) { this.setState({ agree: false, diff --git a/webapp/channels/src/components/admin_console/schema_admin_settings.jsx b/webapp/channels/src/components/admin_console/schema_admin_settings.jsx index 203f1d548d..7bbd973f63 100644 --- a/webapp/channels/src/components/admin_console/schema_admin_settings.jsx +++ b/webapp/channels/src/components/admin_console/schema_admin_settings.jsx @@ -16,7 +16,7 @@ import * as Utils from 'utils/utils'; import RequestButton from 'components/admin_console/request_button/request_button'; import BooleanSetting from 'components/admin_console/boolean_setting'; import TextSetting from 'components/admin_console/text_setting'; -import DropdownSetting from 'components/admin_console/dropdown_setting.jsx'; +import DropdownSetting from 'components/admin_console/dropdown_setting'; import MultiSelectSetting from 'components/admin_console/multiselect_settings'; import RadioSetting from 'components/admin_console/radio_setting'; import ColorSetting from 'components/admin_console/color_setting';