UNPKG

native-base

Version:

Essential cross-platform UI components for React Native

124 lines (123 loc) 4.38 kB
import type { MutableRefObject } from 'react'; import type { CustomProps } from '../../../components/types'; import type { InterfaceBoxProps } from '../Box'; import type { ColorSchemeType } from '../../../components/types'; import type { ResponsiveValue } from '../../types'; import type { ISizes } from '../../../theme/base/sizes'; export interface InterfaceSliderProps extends InterfaceBoxProps<ISliderProps> { /** The current value of the Slider */ value?: number; /** The default value (uncontrolled). */ defaultValue?: number; /** Handler that is called when the value changes. */ onChange?: (value: number) => void; /** * Color scheme of the slider */ colorScheme?: ColorSchemeType; /** * Text description of slider. This will be announced by screen reader/ */ accessibilityLabel?: string; /** * If true, the value will be incremented or decremented in reverse. */ isReversed?: boolean; /** * The orientation of the Slider. * @default 'horizontal' */ orientation?: 'horizontal' | 'vertical'; /** Whether the whole Slider is disabled. */ isDisabled?: boolean; /** Fired when the slider stops moving, due to being let go. */ onChangeEnd?: (value: number) => void; /** * The slider's minimum value. * @default 0 */ minValue?: number; /** * The slider's maximum value. * @default 100 */ maxValue?: number; /** * The slider's step value. * @default 1 */ step?: number; /** Whether the whole Slider is readonly. */ isReadOnly?: boolean; /** Props applied if isDisabled is true. */ _disabled?: any; /** Props applied if isReadOnly is true. */ _readOnly?: any; /** Prop applied to change slider track height */ sliderTrackHeight?: ResponsiveValue<ISizes | (string & {}) | number>; /**Prop applied to change size of slider thumb */ thumbSize?: ResponsiveValue<ISizes | (string & {}) | number>; /** * You can style interaction box around the checkbox using this. */ _interactionBox?: Omit<Partial<ISliderThumbProps>, '_interactionBox'>; } export interface ISliderTrackProps extends InterfaceBoxProps<ISliderTrackProps> { /** Whether the whole Slider is readonly. */ isReadOnly?: boolean; /** Props applied if isDisabled is true. */ _disabled?: any; /** Props applied if isReadOnly is true. */ _readOnly?: any; /** Wrapper style for SliderTrack */ _pressable?: {}; } export interface ISliderTrackFilledProps extends InterfaceBoxProps<ISliderTrackFilledProps> { /** Whether the whole Slider is readonly. */ isReadOnly?: boolean; /** Props applied if isDisabled is true. */ _disabled?: any; /** Props applied if isReadOnly is true. */ _readOnly?: any; } export interface ISliderThumbProps extends InterfaceBoxProps<ISliderThumbProps> { /** * The orientation of the Slider. * @default 'horizontal' */ orientation?: 'horizontal' | 'vertical'; /** Whether the Thumb is disabled. */ isDisabled?: boolean; /** Whether the whole Slider is readonly. */ isReadOnly?: boolean; /** Props applied if isDisabled is true. */ _disabled?: any; /** Props applied if isReadOnly is true. */ _readOnly?: any; /** * Props to be passed to the slider thumb when button is hovered. */ _hover?: Omit<Partial<ISliderThumbProps>, '_hover'>; /** * Props to be passed to the slider thumb when button is pressed. */ _pressed?: Omit<Partial<ISliderThumbProps>, '_pressed'>; /** * Props to be passed to the slider thumb when button is focused. */ _focus?: Omit<Partial<ISliderThumbProps>, '_focus'>; } export declare type ISliderComponentType = ((props: ISliderProps & { ref?: MutableRefObject<any>; }) => JSX.Element) & { Thumb: React.MemoExoticComponent<(props: ISliderThumbProps & { ref?: MutableRefObject<any>; }) => JSX.Element>; Track: React.MemoExoticComponent<(props: ISliderTrackProps & { ref?: MutableRefObject<any>; }) => JSX.Element>; FilledTrack: React.MemoExoticComponent<(props: ISliderTrackFilledProps & { ref?: MutableRefObject<any>; }) => JSX.Element>; }; export declare type ISliderProps = InterfaceSliderProps & CustomProps<'Slider'>;