import type { ViewProps } from 'react-native'; export interface SliderBaseProps extends ViewProps { /** * 当前进度百分比,在双滑块模式下为数组格式 */ value?: T; /** * 是否开启双滑块模式 */ range?: boolean; /** * 是否禁用滑块 */ disabled?: boolean; /** * 是否将进度条反转 */ reverse?: boolean; /** * 是否为只读状态,只读状态下无法修改滑块的值 */ readonly?: boolean; /** * 是否垂直展示 */ vertical?: boolean; /** * 进度条高度 */ barHeight?: number; /** * 滑块按钮大小 */ buttonSize?: number; /** * 进度条激活态颜色 */ activeColor?: string; /** * 进度条非激活态颜色 */ inactiveColor?: string; /** * 最小值 * @default 0 */ min?: number; /** * 最大值 * @default 100 */ max?: number; /** * 步长 * @default 1 */ step?: number; /** * 自定义滑块按钮 */ button?: React.ReactNode; /** * 自定义左侧滑块按钮(双滑块模式下) */ leftButton?: React.ReactNode; /** * 自定义右侧滑块按钮 (双滑块模式下) */ rightButton?: React.ReactNode; /** * 进度变化时实时触发 */ onChange?: (value: T) => void; /** * 进度变化且结束拖动后触发 */ onChangeAfter?: (value: T) => void; /** * 开始拖动时触发 */ onDragStart?: (value: T) => void; /** * 结束拖动时触发 */ onDragEnd?: (value: T) => void; } export type SliderSingleProps = SliderBaseProps; export type SliderRangeProps = SliderBaseProps<[number, number]>; export type SliderProps = SliderSingleProps | SliderRangeProps;