import type { InterfaceButtonProps } from '../../primitives/Button/types'; import type { InterfaceBoxProps } from '../../primitives/Box'; import type { MutableRefObject } from 'react'; import type { CustomProps } from '../../../components/types'; export interface InterfaceActionsheetProps extends InterfaceBoxProps { /** * If true, the ActionSheet will open. Useful for controllable state behavior. */ isOpen?: boolean; /** * Callback invoked when the modal is closed. */ onClose?: () => any; /** * If true, disables the overlay. * @default false */ disableOverlay?: boolean; /** * If true, hides the drag indicator. * @default false */ hideDragIndicator?: boolean; /** * Props applied on Overlay. */ _backdrop?: any; /* If true, renders react-native native modal * @default false */ useRNModal?: boolean; } export interface IActionsheetContentProps extends InterfaceBoxProps { /** * Props applied on area above actionsheet content. */ _dragIndicatorWrapperOffSet?: InterfaceBoxProps; /** * Props applied on area around drag indicator. */ _dragIndicatorWrapper?: InterfaceBoxProps; /** * Props applied on drag indicator. */ _dragIndicator?: InterfaceBoxProps; } export interface IActionsheetFooterProps extends InterfaceBoxProps {} export interface IActionsheetHeaderProps extends InterfaceBoxProps {} export interface IActionsheetItemProps extends Omit {} export type IActionsheetComponentType = (( props: IActionsheetProps & { ref?: MutableRefObject } ) => JSX.Element) & { Content: React.MemoExoticComponent< ( props: IActionsheetContentProps & { ref?: MutableRefObject } ) => JSX.Element >; Item: React.MemoExoticComponent< ( props: IActionsheetItemProps & { ref?: MutableRefObject } ) => JSX.Element >; // Header: React.MemoExoticComponent< // ( // props: IActionsheetHeaderProps & { ref?: MutableRefObject } // ) => JSX.Element // >; // Footer: React.MemoExoticComponent< // ( // props: IActionsheetFooterProps & { ref?: MutableRefObject } // ) => JSX.Element // >; }; export type IActionsheetProps = InterfaceActionsheetProps & CustomProps<'Actionsheet'>;