0.5.2 • Published 1 year ago

react-native-image-preview-reanimated v0.5.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

react-native-image-preview-reanimated

React native image previewer made with Reanimated RNGH

Installation

npm install react-native-image-preview-reanimated

or with Yarn

yarn add react-native-image-preview-reanimated

If you have already installed Reanimated and React native Gesture Handler you're already setup, else follow these steps

1- Install the packages

Using npm:

npm install react-native-reanimated react-native-gesture-handler

Using yarn:

yarn add react-native-reanimated react-native-gesture-handler

2- Install the pods in the ios project

cd ios && pod install

3- Make sure to add Reanimated babel plugin to babel.config.js

PS: make sure to put it last

module.exports = {
      ...
      plugins: [
          ...
          'react-native-reanimated/plugin',
      ],
  };

4- Import react-native-gesture-handler in your index.js file

PS: This is necessary as you may have unexpected crashes/weird behaviors on production

import 'react-native-gesture-handler';

Usage

import { PreviewModal } from 'react-native-image-preview-reanimated';

// ...
<PreviewModal onCloseModal={onCloseModal} isModalOpen={isModalOpen} images={[]}/>

Example

import * as React from 'react';
import { useState } from 'react';

import { Button, StyleSheet, View } from 'react-native';
import { PreviewModal } from 'react-native-image-preview-reanimated';

export default function App() {
  const [isModalOpen, setIsModalOpen] = useState<boolean>(false);
  return (
    <View style={styles.container}>
      <Button title={'Open Modal'} onPress={() => setIsModalOpen(true)} />
      <PreviewModal
        onCloseModal={() => {
          setIsModalOpen(false);
        }}
        isModalOpen={isModalOpen}
        images={[
          'https://sample-videos.com/img/Sample-jpg-image-30mb.jpg',
          'https://img.freepik.com/photos-gratuite/peinture-numerique-montagne-arbre-colore-au-premier-plan_1340-25699.jpg?size=626&ext=jpg&ga=GA1.1.1826414947.1699142400&semt=ais',
          'https://dfstudio-d420.kxcdn.com/wordpress/wp-content/uploads/2019/06/digital_camera_photo-1080x675.jpg',
          'https://theintercept.com/wp-content/uploads/2019/01/GettyImages-1077343584-1547140810-e1547141434550.jpg?fit=5000%2C2500',
          'https://google.com',
          'wys',
        ]}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
});

Démo

Pagination Demo

Supported Props (others will be added)

PropsDefaultTypeDescription
images[]ImageSourcePropType[]Array of images to be shown
isModalOpenfalsebooleanA boolean defining if the modal is open or not
isPanGestureEnabledtruebooleanA boolean defining if the pan gesture is enabled or not (PS: setting this to false will disable the next/previous gesture and the drag to dismiss
isPinchGestureEnabledtruebooleanA boolean defining if the pinch gesture is enabled or not
isDoubleTapToZoomEnabledtruebooleanA boolean defining if the double tap gesture is enabled or not
isSwipeToDismissEnabledtruebooleanA boolean defining if the modal should swipe to dismiss
onCloseModal()=> {}Functionexecutes a callback closing the modal
CustomPreviousImageComponentundefined()=> JSX.ElementAllows us to set custom previous image component
CustomNextImageComponentundefined()=> JSX.ElementAllows us to set custom next image component
CustomLoadingComponentundefined()=> JSX.ElementAllows us to set custom image loader component
errorImageUrlundefinedImage (local)Allows us to set custom error image for failed network images
showPaginationComponenttruebooleanAllows us to show/hide the pagination component
modalAnimationIn'fadeIn''fadeIn' 'fadeIn-right' 'fadeIn-left' 'fadeIn-top' 'fadeIn-down' 'slideIn-right' 'slideIn-left' 'slideIn-top' 'slideIn-down'Allows to set the entering animation for The modal
imageAnimationIn'fadeIn''fadeIn' 'fadeIn-right' 'fadeIn-left' 'fadeIn-top' 'fadeIn-down' 'slideIn-right' 'slideIn-left' 'slideIn-top' 'slideIn-down'Allows to set the entering animation for The image
modalAnimationOut'fadeOut''fadeOut' 'fadeOut-right' 'fadeOut-left' 'fadeOut-top' 'fadeOut-down' 'slideOut-right' 'slideOut-left' 'slideOut-top' 'slideOut-down'Allows to set the exiting animation for The modal
imageAnimationOut'fadeOut''fadeOut' 'fadeOut-right' 'fadeOut-left' 'fadeOut-top' 'fadeOut-down' 'slideOut-right' 'slideOut-left' 'slideOut-top' 'slideOut-down'Allows to set the exiting animation for The image

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

GPL-2


Made with create-react-native-library

0.5.2

1 year ago

0.5.0

2 years ago

0.5.1

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago