import React, { Component } from "react"; import PropTypes from "prop-types"; import { action } from "mobx"; import { observer } from "mobx-react"; import ReactSelect from "react-select"; import { Settings } from "Stores/Settings"; import { ReactSelectStyles } from "Components/MultiSelect"; import { SortLabelName } from "./SortLabelName"; const AlertGroupSortConfiguration = observer( class AlertGroupSortConfiguration extends Component { static propTypes = { settingsStore: PropTypes.instanceOf(Settings).isRequired }; constructor(props) { super(props); this.validateConfig(); } onSortOrderChange = action((newValue, actionMeta) => { const { settingsStore } = this.props; settingsStore.gridConfig.config.sortOrder = newValue.value; }); onSortReverseChange = action(event => { const { settingsStore } = this.props; settingsStore.gridConfig.config.reverseSort = event.target.checked; }); valueToOption = val => { const { settingsStore } = this.props; return { label: settingsStore.gridConfig.options[val].label, value: val }; }; validateConfig = action(() => { const { settingsStore } = this.props; if ( !Object.values(settingsStore.gridConfig.options) .map(o => o.value) .includes(settingsStore.gridConfig.config.sortOrder) ) { settingsStore.gridConfig.config.sortOrder = settingsStore.gridConfig.options.default.value; } }); render() { const { settingsStore } = this.props; const hideReverse = settingsStore.gridConfig.config.sortOrder === settingsStore.gridConfig.options.default.value || settingsStore.gridConfig.config.sortOrder === settingsStore.gridConfig.options.disabled.value; return (