native-base
Version:
Essential cross-platform UI components for React Native
102 lines (101 loc) • 3.27 kB
TypeScript
import type { IBoxProps, InterfaceBoxProps } from '../../primitives/Box';
import type { IIconButtonProps } from '../IconButton';
import type { MutableRefObject } from 'react';
import type { IFadeProps, ISlideProps } from '../Transitions';
import type { CustomProps, ThemeComponentSizeType } from '../../../components/types/utils';
export interface InterfaceAlertDialogProps extends InterfaceBoxProps<IAlertDialogProps> {
/**
* If true, the AlertDialog will open. Useful for controllable state behaviour
*/
isOpen?: boolean;
/**
* Callback invoked when the AlertDialog is closed
*/
onClose?: () => any;
/**
* If true, the AlertDialog will be opened by default
*/
defaultIsOpen?: boolean;
/**
* The size of the AlertDialog
*/
size?: ThemeComponentSizeType<'AlertDialog'>;
/**
* The ref of element that is least destructive child of the AlertDialog.
*/
leastDestructiveRef: React.RefObject<any>;
/**
* The ref of element to receive focus when the AlertDialog opens.
*/
initialFocusRef?: React.RefObject<any> | any;
/**
* The ref of element to receive focus when the AlertDialog closes.
*/
finalFocusRef?: React.RefObject<any> | any;
/**
* If true and the keyboard is opened, the AlertDialog will move up equvivalent to the keyboard height.
* @default false
*/
avoidKeyboard?: boolean;
/**
* If true, the AlertDialog will close when the overlay is clicked
* @default true
*/
closeOnOverlayClick?: boolean;
/**
* If true, the AlertDialog will close when Escape key is pressed
* @default true
*/
isKeyboardDismissable?: boolean;
/**
* If true, a backdrop element is visible
* @default true
*/
overlayVisible?: boolean;
/**
* If true, a backdrop element is visible
* @default true
*/
backdropVisible?: boolean;
/**
* Props applied on Overlay.
*/
_backdrop?: any;
/**
* Props applied on Overlay Animation.
*/
_backdropFade?: Partial<IFadeProps>;
/**
* Props applied on Child Fade Animation.
*/
_fade?: Partial<IFadeProps>;
/**
* Props applied on Child Slide Animation.
*/
_slide?: Partial<ISlideProps>;
/**
* Sets the animation type
* @default "fade"
*/
animationPreset?: 'slide' | 'fade';
}
export declare type IAlertDialogComponentType = ((props: IAlertDialogProps & {
ref?: MutableRefObject<any>;
}) => JSX.Element) & {
Body: React.MemoExoticComponent<(props: IBoxProps & {
ref?: MutableRefObject<any>;
}) => JSX.Element>;
CloseButton: React.MemoExoticComponent<(props: IIconButtonProps & {
ref?: MutableRefObject<any>;
}) => JSX.Element>;
Content: React.MemoExoticComponent<(props: IBoxProps & {
ref?: MutableRefObject<any>;
}) => JSX.Element>;
Footer: React.MemoExoticComponent<(props: IBoxProps & {
ref?: MutableRefObject<any>;
}) => JSX.Element>;
Header: React.MemoExoticComponent<(props: IBoxProps & {
ref?: MutableRefObject<any>;
}) => JSX.Element>;
};
export declare type IAlertDialogProps = InterfaceAlertDialogProps & CustomProps<'AlertDialog'>;