import { Slider, SliderFilledTrack, SliderProps, SliderThumb, SliderThumbProps, SliderTrack, SliderTrackProps, } from '@chakra-ui/react'; import { useField, useFormikContext } from 'formik'; import React, { FC } from 'react'; import { BaseProps, FormControl } from '../form-control'; export type SliderControlProps = BaseProps & { sliderProps?: SliderProps; sliderTrackProps?: SliderTrackProps; sliderThumbProps?: SliderThumbProps; }; export const SliderControl: FC = ( props: SliderControlProps ) => { const { name, label, sliderProps, sliderTrackProps, sliderThumbProps, ...rest } = props; const [field, , { setValue }] = useField(name); const { isSubmitting } = useFormikContext(); function handleChange(value: number) { setValue(value); } // Does not behave like expected, so we manually handle it. function handleBlur(e: React.FocusEvent) { (e.target as any).name = name; field.onBlur(e); } return ( ); }; export default SliderControl;