
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
better-react-native-image-viewing
Advanced tools
React Native modal component for viewing images as a sliding gallery with the android scale issue fix
React Native modal component for viewing images as a sliding gallery. With the android Scale Fix!
Try with Expo: https://expo.io/@antonkalinin/react-native-image-viewing
yarn add better-react-native-image-viewing
or
npm install --save better-react-native-image-viewing
import ImageView from "better-react-native-image-viewing";
const images = [
{
uri: "https://images.unsplash.com/photo-1571501679680-de32f1e7aad4",
},
{
uri: "https://images.unsplash.com/photo-1573273787173-0eb81a833b34",
},
{
uri: "https://images.unsplash.com/photo-1569569970363-df7b6160d111",
},
];
const [visible, setIsVisible] = useState(false);
<ImageView
images={images}
imageIndex={0}
visible={visible}
onRequestClose={() => setIsVisible(false)}
/>
| Prop name | Description | Type | Required |
|---|---|---|---|
images | Array of images to display | ImageSource[] | true |
keyExtractor | Uniqely identifying each image | (imageSrc: ImageSource, index: number) => string | false |
imageIndex | Current index of image to display | number | true |
visible | Is modal shown or not | boolean | true |
onRequestClose | Function called to close the modal | function | true |
onImageIndexChange | Function called when image index has been changed | function | false |
onLongPress | Function called when image long pressed | function (event: GestureResponderEvent, image: ImageSource) | false |
delayLongPress | Delay in ms, before onLongPress is called: default 800 | number | false |
animationType | Animation modal presented with: default fade | none, fade, slide | false |
presentationStyle | Modal presentation style: default: fullScreen Android: Use overFullScreen to hide StatusBar | fullScreen, pageSheet, formSheet, overFullScreen | false |
backgroundColor | Background color of the modal in HEX (#000000EE) | string | false |
swipeToCloseEnabled | Close modal with swipe up or down: default false | boolean | false |
doubleTapToZoomEnabled | Zoom image by double tap on it: default true | boolean | false |
HeaderComponent | Header component, gets current imageIndex as a prop | component, function | false |
FooterComponent | Footer component, gets current imageIndex as a prop | component, function | false |
To start contributing clone this repo and then run inside better-react-native-image-viewing folder:
yarn
Then go inside example folder and run:
yarn & yarn start
This will start packager for expo so you can change /src/ImageViewing and see changes in expo example app.
FAQs
React Native modal component for viewing images as a sliding gallery with the android scale issue fix
The npm package better-react-native-image-viewing receives a total of 110 weekly downloads. As such, better-react-native-image-viewing popularity was classified as not popular.
We found that better-react-native-image-viewing demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.