UNPKG

@gluestack-ui/actionsheet

Version:

A universal headless actionsheet component for React Native, Next.js & React

125 lines (119 loc) 3.78 kB
import type { PressableProps } from 'react-native'; export interface InterfaceActionsheetProps { /** * If true, the ActionSheet will open. Useful for controllable state behavior. */ isOpen?: boolean; /** * A callback function that is called when the Actionsheet is closed. */ onClose?: () => any; /** * A callback function that is called when the Actionsheet is opened. */ onOpen?: () => any; /* If true, renders react-native native modal * @default false */ useRNModal?: boolean; /** * The ref of element to receive focus when the Actionsheet opens. */ initialFocusRef?: React.RefObject<any>; /** * The ref of element to receive focus when the Actionsheet closes. */ finalFocusRef?: React.RefObject<any>; defaultIsOpen?: boolean; trapFocus?: boolean; closeOnOverlayClick?: boolean; isKeyboardDismissable?: boolean; children?: any; animationPreset?: 'fade' | 'slide' | 'none'; snapPoints?: Array<number>; /** * if true, prevent scroll when Actionsheet is open * @default true */ preventScroll?: boolean; } export interface InterfaceActionsheetItemProps extends PressableProps { isDisabled?: boolean; isHovered?: boolean; isPressed?: boolean; isFocused?: boolean; isFocusVisible?: boolean; } export interface InterfaceActionsheetContentProps { children?: any; /** * If true, Actionsheet Content focusScope will be applied. * @default true */ focusScope?: boolean; } export type IActionsheetComponentType< ActionsheetProps, BackdropProps, ItemProps, ItemTextProps, DragIndicatorProps, IndicatorWrapperProps, ContentProps, ScrollViewProps, VirtualizedListProps, FlatListProps, SectionListProps, SectionHeaderTextProps, IconProps > = React.ForwardRefExoticComponent< React.RefAttributes<ActionsheetProps> & React.PropsWithoutRef<ActionsheetProps & IActionsheetProps> > & { Content: React.ForwardRefExoticComponent< React.PropsWithoutRef<ContentProps & InterfaceActionsheetContentProps> & React.RefAttributes<ContentProps> >; Item: React.ForwardRefExoticComponent< React.PropsWithoutRef<ItemProps & InterfaceActionsheetItemProps> & React.RefAttributes<ItemProps> >; ItemText: React.ForwardRefExoticComponent< React.RefAttributes<ItemTextProps> & React.PropsWithoutRef<ItemTextProps> >; DragIndicator: React.ForwardRefExoticComponent< React.RefAttributes<DragIndicatorProps> & React.PropsWithoutRef<DragIndicatorProps> >; Backdrop: React.ForwardRefExoticComponent< React.RefAttributes<BackdropProps> & React.PropsWithoutRef<BackdropProps> >; DragIndicatorWrapper: React.ForwardRefExoticComponent< React.RefAttributes<IndicatorWrapperProps> & React.PropsWithoutRef<IndicatorWrapperProps> >; ScrollView: React.ForwardRefExoticComponent< React.RefAttributes<ScrollViewProps> & React.PropsWithoutRef<ScrollViewProps> >; VirtualizedList: React.ForwardRefExoticComponent< React.RefAttributes<VirtualizedListProps> & React.PropsWithoutRef<VirtualizedListProps> >; FlatList: React.ForwardRefExoticComponent< React.RefAttributes<FlatListProps> & React.PropsWithoutRef<FlatListProps> >; SectionList: React.ForwardRefExoticComponent< React.RefAttributes<SectionListProps> & React.PropsWithoutRef<SectionListProps> >; SectionHeaderText: React.ForwardRefExoticComponent< React.RefAttributes<SectionHeaderTextProps> & React.PropsWithoutRef<SectionHeaderTextProps> >; Icon: React.ForwardRefExoticComponent< React.RefAttributes<IconProps> & React.PropsWithoutRef<IconProps> >; }; export type IActionsheetProps = InterfaceActionsheetProps; export type IActionsheetContentProps = InterfaceActionsheetContentProps;