Tiny, purely TS, modal component for viewing images 🏙 https://exp.host/@antonkalinin/react-native-image-viewing
Go to file
Anton Kalinin 96578c9be2
Add onImageIndexChange callback prop (#20)
2020-02-04 19:38:06 +01:00
example Add description to expo app 2020-01-03 14:08:51 +01:00
src Add onImageIndexChange callback prop (#20) 2020-02-04 19:38:06 +01:00
.gitignore Initial commit 2019-11-28 15:03:46 +01:00
LICENSE Initial commit 2019-11-28 15:03:46 +01:00
README.md Add onImageIndexChange callback prop (#20) 2020-02-04 19:38:06 +01:00
demo.gif Update demo.gif 2020-01-02 14:53:30 +01:00
package.json 0.1.5 2020-02-04 08:19:58 +01:00
tsconfig.json Use build target es2019, rename booleans props (#1) 2019-11-29 11:30:37 +01:00
yarn.lock Update deps 2019-12-02 10:13:16 +01:00

README.md

react-native-image-viewing

React Native modal component for viewing images as a sliding gallery.

npm version styled with prettier

  • 🔥Pinch zoom for both iOS and Android
  • 🔥Double tap to zoom for both iOS and Android
  • 🔥Supports swipe-to-close animation
  • 🔥Custom header and footer components
  • 🔥Uses VirtualizedList to optimize image loading and rendering

Try with Expo: https://expo.io/@antonkalinin/react-native-image-viewing

Installation

yarn add react-native-image-viewing

or

npm install --save react-native-image-viewing

Usage

import ImageView from "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)}
/>;

See Example

Props

Prop name Description Type Required
images Array of images to display ImageSource[] true
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
animationType Animation modal presented with: default fade none, fade, slide false
backgroundColor Background color of the modal in HEX (#000000EE) string false
swipeToCloseEnabled Close modal with swipe up or down: default true 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
  • ImageSource is an object like { uri: '<http location || file path>' }

Contributing

To start contributing clone this repo and then run inside 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.

License

MIT