import classnames from 'classnames'; import { noop } from 'lodash'; import { observer } from 'mobx-react'; import { type ChangeEvent, Component, type ReactElement } from 'react'; interface IProps { field: any; className?: string; showLabel?: boolean; disabled?: boolean; type?: 'range' | 'number'; onSliderChange?: (e: ChangeEvent) => void; } // TODO: [TS DEBT] Should this file be converted into the coding style similar to './toggle/index.tsx'? @observer class Slider extends Component { onChange(e: ChangeEvent): void { const { field, onSliderChange = noop } = this.props; field.onChange(e); onSliderChange(e); } render(): ReactElement { const { field, className = '', showLabel = true, disabled = false, type = 'range', } = this.props; if (field.value === '' && field.default !== '') { field.value = field.default; } return (
(disabled ? null : this.onChange(e))} />
{field.error &&
{field.error}
} {field.label && showLabel && ( )}
); } } export default Slider;