@nish1896/rhf-mui-components
Version:
A suite of 20+ reusable Material UI components for React Hook Form to minimize your time and effort in creating and styling forms
18 lines (17 loc) • 1.48 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { Fragment } from 'react';
import { Controller } from 'react-hook-form';
import MuiSlider from '@mui/material/Slider';
import { FormLabel, FormHelperText } from '../../mui/common';
import { fieldNameToLabel } from '../../utils';
const RHFSlider = ({ fieldName, control, registerOptions, required, onValueChange, label, showLabelAboveFormField, formLabelProps, helperText, errorMessage, hideErrorMessage, formHelperTextProps, ...rest }) => {
const fieldLabel = label ?? fieldNameToLabel(fieldName);
const isError = Boolean(errorMessage);
return (_jsxs(Fragment, { children: [_jsx(FormLabel, { label: fieldLabel, isVisible: showLabelAboveFormField ?? true, required: required, error: isError, formLabelProps: formLabelProps }), _jsx(Controller, { name: fieldName, control: control, rules: registerOptions, render: ({ field: { onChange, value, ...otherFieldProps } }) => (_jsx(MuiSlider, { ...otherFieldProps, ...rest, value: value ?? 0, onChange: (event, value, activeThumb) => {
onChange(value);
if (onValueChange) {
onValueChange(value, activeThumb, event);
}
} })) }), _jsx(FormHelperText, { error: isError, errorMessage: errorMessage, hideErrorMessage: hideErrorMessage, helperText: helperText, formHelperTextProps: formHelperTextProps })] }));
};
export default RHFSlider;