diff --git a/webapp/channels/src/components/admin_console/multiselect_settings.jsx b/webapp/channels/src/components/admin_console/multiselect_settings.tsx similarity index 63% rename from webapp/channels/src/components/admin_console/multiselect_settings.jsx rename to webapp/channels/src/components/admin_console/multiselect_settings.tsx index e1f0df3513..74d17edffd 100644 --- a/webapp/channels/src/components/admin_console/multiselect_settings.jsx +++ b/webapp/channels/src/components/admin_console/multiselect_settings.tsx @@ -1,39 +1,50 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import PropTypes from 'prop-types'; import React from 'react'; -import ReactSelect from 'react-select'; +import ReactSelect, {ValueType} from 'react-select'; import FormError from 'components/form_error'; import Setting from './setting'; -export default class MultiSelectSetting extends React.PureComponent { - static propTypes = { - id: PropTypes.string.isRequired, - values: PropTypes.array.isRequired, - label: PropTypes.node.isRequired, - selected: PropTypes.array.isRequired, - onChange: PropTypes.func.isRequired, - disabled: PropTypes.bool, - setByEnv: PropTypes.bool.isRequired, - helpText: PropTypes.node, - noResultText: PropTypes.node, - }; +interface Option { + value: string; + text: string; +} - static defaultProps = { +interface Props { + id: string; + values: Option[]; + label: React.ReactNode; + selected: string[]; + onChange: (id: string, values: string[]) => void; + disabled?: boolean; + setByEnv: boolean; + helpText?: React.ReactNode; + noResultText?: React.ReactNode; +} + +interface State { + error: boolean; +} + +export default class MultiSelectSetting extends React.PureComponent< +Props, +State +> { + static defaultProps: Partial = { disabled: false, }; - constructor(props) { + constructor(props: Props) { super(props); this.state = {error: false}; } - handleChange = (newValue) => { - const values = newValue.map((n) => { + handleChange = (newValue: ValueType