import { INPUT_WIDTH } from '@/constants'; import { InfoCircleOutlined } from '@ant-design/icons'; import { Form, InputNumber, Slider, Tooltip, type SliderSingleProps } from 'antd'; import React from 'react'; import FieldWrapper from './field-wrapper'; import SliderStyles from './styles/slider.less'; interface SealSliderProps extends SliderSingleProps { required?: boolean; label?: React.ReactNode; labelWidth?: number | string; description?: string; isInFormItems?: boolean; inputnumber?: boolean; checkStatus?: 'success' | 'error' | 'warning' | ''; } const SealSlider: React.FC = (props) => { const { label, value, required, description, isInFormItems = true, max, min, step, defaultValue, checkStatus, inputnumber = false, labelWidth, tooltip = { open: false }, ...rest } = props; let status = ''; if (isInFormItems) { const statusData = Form?.Item?.useStatus?.(); status = statusData?.status || ''; } const handleChange = (value: number) => { props.onChange?.(value); }; const handleInput = (value: number | null) => { const newValue = value || 0; props.onChange?.(newValue); }; const renderLabel = React.useMemo(() => { return ( {description ? ( {label} ) : ( {label} )} {inputnumber ? ( ) : ( {value} )} ); }, [label, labelWidth, description, value, max, min, step, defaultValue]); return ( ); }; export default SealSlider;