react-native-reanimated-viewer
Version:
A high performance image viewer in react-native used by react-native-reanimated
62 lines (58 loc) • 1.91 kB
TypeScript
import React, { ReactElement, RefObject, MutableRefObject } from 'react';
import { ImageURISource, ImageResizeMode, View, TouchableOpacityProps, StyleProp, ViewStyle } from 'react-native';
declare enum GestureEnum {
TAP = "TAP",
MODAL = "MODAL"
}
type ImageViewerItemData = {
key: string;
source: ImageURISource;
};
type ImageViewerProps = {
data: ImageViewerItemData[];
onLongPress?: (_: {
item: ImageViewerItemData;
index: number;
}) => void;
renderCustomComponent?: (_: {
item: ImageViewerItemData;
index: number;
}) => ReactElement;
imageResizeMode?: ImageResizeMode;
onChange?: (currentIndex: number) => void;
dragUpToCloseEnabled?: boolean;
maxScale?: number;
doubleTapScale?: number;
shouldCloseViewer?: (props: {
gesture: GestureEnum;
index: number;
imageData: ImageViewerItemData;
loaded: boolean;
}) => boolean;
originalLayoutOffset?: {
pageX?: number;
pageY?: number;
};
};
type ImageViewerRef = {
show: (_: {
index: number;
source?: ImageURISource;
}) => void;
init: (_: {
index: number;
itemRef: RefObject<View>;
}) => void;
};
declare const _default$1: React.MemoExoticComponent<React.ForwardRefExoticComponent<ImageViewerProps & React.RefAttributes<ImageViewerRef>>>;
type ImageWrapperType = {
viewerRef: MutableRefObject<ImageViewerRef | null>;
index: number;
source?: ImageURISource;
onPress?: () => boolean | void;
wrapperProps?: TouchableOpacityProps;
children?: React.ReactNode;
style?: StyleProp<ViewStyle>;
};
declare const _default: React.MemoExoticComponent<(props: ImageWrapperType) => React.JSX.Element>;
export { GestureEnum, _default$1 as ImageViewer, ImageViewerItemData, ImageViewerProps, ImageViewerRef, _default as ImageWrapper, ImageWrapperType };