react-native-images-preview
Version:
A React Native animated custom images preview component.
43 lines (42 loc) • 1.77 kB
TypeScript
import type { Dispatch, SetStateAction } from 'react';
import type { ActivityIndicatorProps, ImageProps, ImageSourcePropType, ImageStyle, StyleProp } from 'react-native';
export declare type ModalConfigType = {
x: number;
y: number;
height: number;
width: number;
visible: boolean;
};
export declare type HeaderOpacityAnimationType = {
opacity: number;
};
export declare type ImagePreviewProps = {
imageSource: ImageSourcePropType;
imageStyle: StyleProp<ImageStyle>;
imageProps?: Omit<ImageProps, 'source' | 'defaultSource' | 'style'>;
doubleTapZoomEnabled?: boolean;
pinchZoomEnabled?: boolean;
swipeDownCloseEnabled?: boolean;
errorImageSource?: ImageSourcePropType;
renderHeader?: (close: () => void) => React.ReactElement;
imageLoaderProps?: ActivityIndicatorProps;
} & Pick<ImageLoaderProps, 'renderImageLoader'>;
export declare type ImageModalProps = Omit<ImagePreviewProps, 'imageStyle' | 'imageProps' | 'errorImageSource'> & {
setModalConfig: Dispatch<SetStateAction<ModalConfigType>>;
modalConfig: ModalConfigType;
};
export declare type HeaderProps = Pick<ImagePreviewProps, 'renderHeader'> & {
onPressClose: () => void;
headerOpacityAnimation: HeaderOpacityAnimationType;
};
export declare type ErrorImageProps = Required<Pick<ImagePreviewProps, 'imageStyle' | 'errorImageSource'>>;
export declare type UseImageModalProps = {
modalConfig: ModalConfigType;
setModalConfig: Dispatch<SetStateAction<ModalConfigType>>;
pinchZoomEnabled: boolean | undefined;
doubleTapZoomEnabled: boolean | undefined;
swipeDownCloseEnabled: boolean | undefined;
};
export declare type ImageLoaderProps = ActivityIndicatorProps & {
renderImageLoader?: () => React.ReactElement;
};