UNPKG

box-ui-elements-mlh

Version:
119 lines (103 loc) 3.64 kB
import * as React from 'react'; import { FormattedMessage } from 'react-intl'; import isNaN from 'lodash/isNaN'; import DatePicker from '../../../../components/date-picker'; import SingleSelectField from '../../../../components/select-field/SingleSelectField'; import MultiSelectField from '../../../../components/select-field/MultiSelectField'; import TextInput from '../../../../components/text-input'; import { DATE, ENUM, FLOAT, MULTI_SELECT, NUMBER, STRING, VALUE } from '../../constants'; import messages from '../../messages'; import '../../styles/Condition.scss'; var getDateValue = function getDateValue(selectedValues) { if (selectedValues.length === 0 || selectedValues[0] === null) { return undefined; } var value = selectedValues[0]; var date = new Date(value); if (!isNaN(date.valueOf())) { return date; } throw new Error('Expected Date'); }; var getStringValue = function getStringValue(selectedValues) { if (selectedValues.length === 0) { return undefined; } var value = selectedValues[0]; if (typeof value === 'string') { return value !== '' ? value : null; } throw new Error('Expected string'); }; var ValueField = function ValueField(_ref) { var error = _ref.error, _onChange = _ref.onChange, selectedValues = _ref.selectedValues, valueOptions = _ref.valueOptions, valueType = _ref.valueType; var value = selectedValues.length > 0 ? selectedValues[0] : ''; var onInputChange = function onInputChange(e) { return e.target.value !== '' ? _onChange([e.target.value]) : _onChange([]); }; switch (valueType) { case STRING: case NUMBER: case FLOAT: return /*#__PURE__*/React.createElement("div", { className: "filter-dropdown-text-field-container" }, /*#__PURE__*/React.createElement(TextInput, { error: error, errorPosition: "middle-left", hideLabel: true, label: "Text Input", name: "text", onChange: onInputChange, placeholder: "Enter ".concat(valueType === STRING ? 'value' : 'a number'), value: value })); case DATE: return /*#__PURE__*/React.createElement("div", { className: "filter-dropdown-date-field-container" }, /*#__PURE__*/React.createElement(DatePicker, { displayFormat: { day: 'numeric', month: 'long', year: 'numeric' }, hideLabel: true, label: "Date", name: "datepicker", onChange: function onChange(date) { return _onChange([date]); }, placeholder: "Date", value: getDateValue(selectedValues) })); case ENUM: return /*#__PURE__*/React.createElement(SingleSelectField, { fieldType: VALUE, onChange: function onChange(e) { return _onChange([e.value]); }, options: valueOptions, placeholder: /*#__PURE__*/React.createElement(FormattedMessage, messages.selectValuePlaceholderText), selectedValue: getStringValue(selectedValues) }); case MULTI_SELECT: return /*#__PURE__*/React.createElement(MultiSelectField, { fieldType: VALUE, onChange: function onChange(e) { return _onChange(e.map(function (option) { return option.value; })); }, options: valueOptions, placeholder: /*#__PURE__*/React.createElement(FormattedMessage, messages.selectValuePlaceholderText), selectedValues: selectedValues }); default: return null; } }; export default ValueField; //# sourceMappingURL=ValueField.js.map