Gathering detailed insights and metrics for @ericedouard/react-native-gallery-swiper
Gathering detailed insights and metrics for @ericedouard/react-native-gallery-swiper
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 and updates by [Lue Hang](https://www.facebook.com/lue.hang) (the author).
npm install @ericedouard/react-native-gallery-swiper
Typescript
Module System
Node Version
NPM Version
39.4
Supply Chain
54.8
Quality
66.2
Maintenance
50
Vulnerability
94.1
License
JavaScript (86.13%)
Objective-C (5.63%)
Ruby (3.87%)
Java (3.57%)
Starlark (0.8%)
Total Downloads
2,592
Last Day
1
Last Week
5
Last Month
42
Last Year
392
4 Stars
229 Commits
2 Forks
1 Branches
2 Contributors
Latest Version
1.28.9
Package Id
@ericedouard/react-native-gallery-swiper@1.28.9
Unpacked Size
49.03 kB
Size
10.67 kB
File Count
7
NPM Version
6.12.0
Node Version
12.13.0
Cumulative downloads
Total Downloads
Last day
0%
1
Compared to previous day
Last week
-54.5%
5
Compared to previous week
Last month
13.5%
42
Compared to previous month
Last year
-6%
392
Compared to previous year
4
2
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 and updates by Lue Hang (the author).
Learn more about the installation and how to use this package in the updated documentation page.
onEndReached
.Type in the following to the command line to install the dependency.
1$ npm install --save react-native-gallery-swiper
or
1$ yarn add react-native-gallery-swiper
Add an import
to the top of the file. At minimal, declare the GallerySwiper
component in the render()
method providing an array of data for the images
prop.
dimensions
field with width
and height
or just height
and width
.If you like
react-native-gallery-swiper
, please be sure to give it a star at GitHub. Thanks.
1import GallerySwiper from "react-native-gallery-swiper"; 2 3//... 4render() { 5 return ( 6 <GallerySwiper 7 images={[ 8 // Version *1.1.0 update (or greater versions): 9 // Can be used with different image object fieldnames. 10 // Ex. source, source.uri, uri, URI, url, URL 11 { uri: "https://luehangs.site/pic-chat-app-images/beautiful-blond-blonde-hair-478544.jpg" }, 12 { source: require("yourApp/image.png"), 13 // IMPORTANT: It is REQUIRED for LOCAL IMAGES 14 // to include a dimensions field with the 15 // actual width and height of the image or 16 // it will throw an error. 17 dimensions: { width: 1080, height: 1920 } }, 18 { source: require("yourApp/image.png"), 19 // Version *1.5.0 update (or greater versions): 20 // An alternative to the dimensions field. 21 // This will also be acceptable. 22 width: 1080, 23 height: 1920 }, 24 { source: { uri: "https://luehangs.site/pic-chat-app-images/beautiful-beautiful-women-beauty-40901.jpg" } }, 25 { uri: "https://luehangs.site/pic-chat-app-images/animals-avian-beach-760984.jpg" }, 26 { URI: "https://luehangs.site/pic-chat-app-images/beautiful-blond-fishnet-stockings-48134.jpg" }, 27 { url: "https://luehangs.site/pic-chat-app-images/beautiful-beautiful-woman-beauty-9763.jpg" }, 28 { URL: "https://luehangs.site/pic-chat-app-images/attractive-balance-beautiful-186263.jpg" }, 29 ]} 30 // Version *1.15.0 update 31 // onEndReached={() => { 32 // // add more images when scroll reaches end 33 // }} 34 /> 35 ); 36} 37//...
If you like
react-native-gallery-swiper
, please be sure to give it a star at GitHub. Thanks.
1import GallerySwiper from "react-native-gallery-swiper"; 2 3//... 4render() { 5 return ( 6 <GallerySwiper 7 images={[ 8 { uri: "https://luehangs.site/pic-chat-app-images/beautiful-blond-blonde-hair-478544.jpg", 9 // Optional: Adding a dimensions or height and 10 // width field with the actual width and height 11 // for REMOTE IMAGES will help improve performance. 12 dimensions: { width: 1080, height: 1920 } }, 13 { uri: "https://luehangs.site/pic-chat-app-images/beautiful-beautiful-women-beauty-40901.jpg", 14 dimensions: { width: 1080, height: 1920 } }, 15 { uri: "https://luehangs.site/pic-chat-app-images/animals-avian-beach-760984.jpg", 16 dimensions: { width: 1080, height: 1920 } }, 17 { uri: "https://luehangs.site/pic-chat-app-images/beautiful-blond-fishnet-stockings-48134.jpg", 18 dimensions: { width: 1080, height: 1920 } }, 19 { uri: "https://luehangs.site/pic-chat-app-images/beautiful-beautiful-woman-beauty-9763.jpg", 20 dimensions: { width: 1080, height: 1920 } }, 21 { uri: "https://luehangs.site/pic-chat-app-images/attractive-balance-beautiful-186263.jpg", 22 dimensions: { width: 1920, height: 1080 } }, 23 // ... 24 // ... 25 // ... 26 ]} 27 // Version *1.15.0 update 28 // onEndReached={() => { 29 // // add more images when scroll reaches end 30 // }} 31 // Change this to render how many items before it. 32 initialNumToRender={2} 33 // Turning this off will make it feel faster 34 // and prevent the scroller to slow down 35 // on fast swipes. 36 sensitiveScroll={false} 37 /> 38 ); 39} 40//...
<GallerySwiper />
component accepts the following props...
If you like
react-native-gallery-swiper
, please be sure to give it a star at GitHub. Thanks.
Props | Description | Type | Default |
---|---|---|---|
images | An array of objects. source , source.uri , uri , URI , url or URL is a required field (if multiple similar fields in an image object, priority will go from start source to last URL ). EX. [{ source: require("yourApp/image.png"), dimensions: { width: 1080, height: 1920 } }, { uri: "https://luehangs.site/pic-chat-app-images/animals-avian-beach-760984.jpg", dimensions: { width: 1080, height: 1920 } }, { uri: "https://luehangs.site/pic-chat-app-images/beautiful-blond-blonde-hair-478544.jpg"}] | Array | Required |
style | Styling the gallery. | object , Array | {flex: 1, backgroundColor: "#000"} |
initialPage | Index of image to be displayed first. | number | 0 |
resizeMode | The mechanism that should be used to resize the image when the image's dimensions differ from the image view's dimensions. Expecting one of "contain" , "cover" , "stretch" , "repeat" , "center" . Version *1.12.0 update. | string | "contain" |
imageComponent | Custom function to render your images. (imageProps: { imageLoaded: boolean, source: object, image: object, style: Array<object>, resizeMode: string, capInsets: object, onLoadStart: Function, onLoad: Function, ...extras }, imageDimensions: {width: number, height: number}, index: number) => React.Element index params included in Version *1.3.1 update | Function | <Image/> component |
errorComponent | Custom function to render the page of an image that couldn't be displayed. | Function | A <View/> with a stylized error |
initialNumToRender | How many items to render in the initial batch. Version *1.3.0 update. | number | 7 |
flatListProps | Props to be passed to the underlying FlatList . | object | {windowSize: 3} |
pageMargin | Blank margin space to show between images. | number | 0 |
sensitiveScroll | Detect rough and fast swiping gestures in order to "cushion" or slow down a swipe at the end. Version *1.4.0 update. | boolean | true |
onPageSelected | Executed with the index of page that has been selected. (index: number) => void | Function | |
onPageScrollStateChanged | Called when page scrolling state has changed, see scroll state and events. (state: string) => void | Function | |
onPageScroll | Scroll event, see scroll state and events. (event: { position: number, offset: number, fraction: number }) => void | Function | |
scrollViewStyle | Custom style for the FlatList component. | object | {} |
onDoubleTapConfirmed | Executed after a double tap. (index: number) => void Version *1.8.0 update | Function | |
onSingleTapConfirmed | Executed after a single tap. (index: number) => void | Function | |
onLongPress | Executed after a long press. (gestureState: object, index: number) => void index params in Version *1.10.0 update. | Function | |
onViewTransformed | Executed while being transformed in anyway (view transformer). (transform: { scale: number, translateX: number, translateY: number }, index: number) => void Version *1.16.0 update. | Function | |
onPinchTransforming | Executed while pinching to transform view or zoom (view transformer). (transform: { scale: number, translateX: number, translateY: number }, index: number) => void Version *1.17.0 update. | Function | |
onPinchStartReached | Executed after scaling out or zooming out to initial size using the pinch gesture. (transform: { scale: number, translateX: number, translateY: number }, index: number) => void Version *1.18.0 update. | Function | |
onPinchEndReached | Executed after scaling in or zooming in to maxScale threshold using the pinch gesture. (transform: { scale: number, translateX: number, translateY: number }, index: number) => void Version *1.18.0 update. | Function | |
onTransformGestureReleased | Executed after a transform guesture released (view transformer). (transform: { scale: number, translateX: number, translateY: number }, index: number) => void Version *1.16.0 update. | Function | |
onSwipeUpReleased | Executed after releasing an upward swipe at a specific y translate threshold while not in zoom mode. (transform: { scale: number, translateX: number, translateY: number }, index: number) => void For custom precision swiping gestures, refer to the onTransformGestureReleased . Version *1.25.0 update. | Function | |
onSwipeDownReleased | Executed after releasing a downward swipe at a specific y translate threshold while not in zoom mode. (transform: { scale: number, translateX: number, translateY: number }, index: number) => void For custom precision swiping gestures, refer to the onTransformGestureReleased . Version *1.25.0 update. | Function | |
onDoubleTapStartReached | Executed after scaling out or zooming out using double tap. (transform: { scale: number, translateX: number, translateY: number }, index: number) => void Version *1.17.0 update. | Function | |
onDoubleTapEndReached | Executed after scaling in or zooming in using double tap. (transform: { scale: number, translateX: number, translateY: number }, index: number) => void Version *1.17.0 update. | Function | |
onEndReached | Called once when the page index gets within the onEndReachedThreshold of the images content. () => void Version *1.15.0 update. | Function | |
onEndReachedThreshold | How far from the end (in units of visible length of the list) of the list of images must be from the end of the content to trigger the onEndReached callback. Thus a value of 0.5 will trigger onEndReached when the end of the content is within half the visible length of the images. Version *1.15.0 update. | number | 0.5 |
enableScale | Enable or disable zoom and double tap zoom (view transformer). Version *1.9.0 update. | boolean | true |
maxScale | Max zoom (view transformer). Number greater than 1 will create a zoom. Default will only zoom for large images as tiny images will be pixelated if scaling occurs. Version *1.17.0 update. | number | Math.max(imageWidth / viewWidth, imageHeight / viewHeight) |
enableTranslate | Enable or disable moving while in zoom (view transformer). Version *1.11.0 update. | boolean | true |
enableResistance | Enable or disable resistance over panning (view transformer). Version *1.14.0 update. | boolean | true |
resistantStrHorizontal | Resistant value for left and right panning (view transformer). (dx: number) => number Version *1.14.0 update. | Function , number or string | (dx) => (dx /= 3) |
resistantStrVertical | Resistant value for top and bottom panning (view transformer). (dy: number) => number Version *1.14.0 update. | Function , number or string | (dy) => (dy /= 3) |
maxOverScrollDistance | A number used to determine final scroll position triggered by fling (view transformer). Version *1.16.0 update. | number | 20 |
removeClippedSubviews | To improve scroll performance for large lists. Version *1.4.1 update. | boolean | true |
refPage | The ref for the inner View page. Version *1.2.0 update. Learn more about this at the helpful hints section | Function |
flingToPage(params)
Scrolls to the following index with input velocity.
Name | Type | Required | Description |
---|---|---|---|
params | object | YES | See below. |
Valid params keys are:
scrollToPage(params)
Scrolls to the following index with or without animation.
Name | Type | Required | Description |
---|---|---|---|
params | object | YES | See below. |
Valid params keys are:
false
.Perform steps 1-2 to run locally:
Clone react-native-gallery-swiper
locally. In a terminal, run:
1$ git clone https://github.com/Luehang/react-native-gallery-swiper.git react-native-gallery-swiper
1$ cd react-native-gallery-swiper/example/
1. check out the code
2. npm install
3. npm run ios
1. check out the code
2. npm install
3. emulator running in separate terminal
4. npm run android
Free and made possible along with costly maintenance and updates by Lue Hang (the author).
Pull requests are welcomed.
Contributors will be posted here.
Not sure where to start, or a beginner? Take a look at the issues page.
MIT © Lue Hang, as found in the LICENSE file.
No vulnerabilities found.
Reason
license file detected
Details
Reason
0 existing vulnerabilities detected
Reason
binaries present in source code
Details
Reason
Found 0/30 approved changesets -- score normalized to 0
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no SAST tool detected
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Score
Last Scanned on 2025-01-27
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More