UNPKG

@ericedouard/react-native-gallery-swiper

Version:

An easy and simple to use React Native component to render a high performant and easily customizable image gallery with common gestures like pan, pinch and double tap. Supporting both iOS and Android. Free and made possible along with costly maintenance

80 lines (74 loc) 3.12 kB
declare module '@ericedouard/react-native-gallery-swiper' { import { Component } from "react"; import { FlatListProps, ImageProps, ImageURISource, ViewStyle, ImageResizeMode } from "react-native"; import PageList from 'react-native-page-list'; export type PageState = "idle" | "settling" | "dragging" export type GestureState = { moveX, moveY, x0, y0, dx, dy, vx, vy: number numberActiveTouches: number _accountsForMovesUpTo: number previousMoveX, previousMoveY: number pinch?: number previousPinch?: number singleTapUp: boolean doubleTapUp: boolean _singleTabFailed: boolean } export type Transform = { scale: number, translateX: number, translateY: number } export type ImageObj = { source?: string | ImageURISource uri?: string url?: string URI?: string URL?: string dimensions?: { width: number, height: number } } type GallerySwiperProps = { images: ImageObj[], style?: ViewStyle, initialPage?: number, resizeMode?: ImageResizeMode, initialNumToRender?: number, scrollViewStyle?: ViewStyle, pageMargin?: number, sensitiveScroll?: boolean, backgroundColor?: string, renderOverlay?: () => void, onPageSelected?: (page: number) => void, onPageScrollStateChanged?: (state: PageState) => void, onPageScroll?: (event: { position: number, offset: number, fraction: number }) => void, onPinchTransforming?: (transform: Transform, pageId: number) => void, onPinchStartReached?: (transform: Transform, pageId: number) => void, onPinchEndReached?: (transform: Transform, pageId: number) => void, onDoubleTapStartReached?: (transform: Transform, pageId: number) => void, onDoubleTapEndReached?: (transform: Transform, pageId: number) => void, onDoubleTapConfirmed?: (currentPage: number) => void, onSingleTapConfirmed?: (currentPage: number) => void, onGalleryStateChanged?: (idle: boolean) => void, onLongPress?: (gestureState: GestureState, currentPage: number) => void, onViewTransformed?: (transform: Transform, pageId: number) => void, onTransformGestureReleased?: (transform: Transform, pageId: number) => void, onSwipeUpReleased?: (transform: Transform, pageId: number) => void, onSwipeDownReleased?: (transform: Transform, pageId: number) => void, onEndReached?: () => void, onEndReachedThreshold?: number, enableScale?: boolean, maxScale?: number, enableTranslate?: boolean, enableResistance?: boolean, resistantStrHorizontal?: ((dx: number) => number | string) | number | string, resistantStrVertical?: ((dy: number) => number | string) | number | string, maxOverScrollDistance?: number, removeClippedSubviews?: boolean, imageComponent?: (imageProps: ImageProps, imageDimensions: {width: number, height: number}, index: number) => JSX.Element, errorComponent?: () => JSX.Element, flatListProps?: FlatListProps<any>, refPage?: (galleryViewPager: PageList) => void }; export default class GallerySwiper extends Component<GallerySwiperProps> { } }