@ant-design/react-native
Version:
基于蚂蚁金服移动设计规范的 React Native 组件库
41 lines (40 loc) • 1.29 kB
TypeScript
import type { ReactNode } from 'react';
import React from 'react';
import { StyleProp, ViewStyle } from 'react-native';
import { SliderStyle } from './style';
export type SliderMarks = {
[key: number]: React.ReactNode;
};
export type SliderValueType = number | [number, number];
export interface SliderRef {
onSlide: (changeX: number) => void;
}
export type BaseSliderProps<SliderValue> = {
min?: number;
max?: number;
value?: SliderValue;
defaultValue?: SliderValue;
step?: number;
marks?: SliderMarks;
ticks?: boolean;
disabled?: boolean;
disabledStep?: boolean;
icon?: ReactNode;
popover?: boolean | ((value: number) => ReactNode);
residentPopover?: boolean;
tapToSeek?: boolean;
onChange?: (value: SliderValue) => void;
onAfterChange?: (value: SliderValue, index: number) => void;
onSlidingStart?: (value: SliderValue, index: number) => void;
onSlidingComplete?: (value: SliderValue, index: number) => void;
style?: StyleProp<ViewStyle>;
styles?: Partial<SliderStyle>;
};
type NumberSliderProps = BaseSliderProps<number> & {
range?: false;
};
type RangeSliderProps = BaseSliderProps<[number, number]> & {
range: true;
};
export type SliderProps = NumberSliderProps | RangeSliderProps;
export {};