1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import ReactSlider from 'react-slider'
- import cn from '@/utils/classnames'
- import './style.css'
- type ISliderProps = {
- className?: string
- thumbClassName?: string
- trackClassName?: string
- value: number
- max?: number
- min?: number
- step?: number
- disabled?: boolean
- onChange: (value: number) => void
- }
- const Slider: React.FC<ISliderProps> = ({
- className,
- thumbClassName,
- trackClassName,
- max,
- min,
- step,
- value,
- disabled,
- onChange,
- }) => {
- return <ReactSlider
- disabled={disabled}
- value={isNaN(value) ? 0 : value}
- min={min || 0}
- max={max || 100}
- step={step || 1}
- className={cn('relative slider', className)}
- thumbClassName={cn('absolute top-[-9px] w-2 h-5 border-[0.5px] border-components-slider-knob-border rounded-[3px] bg-components-slider-knob shadow-sm focus:outline-none', !disabled && 'cursor-pointer', thumbClassName)}
- trackClassName={cn('h-0.5 rounded-full slider-track', trackClassName)}
- onChange={onChange}
- />
- }
- export default Slider
|