rn-animated-image-slider
v1.0.1
Published
Welcome to our React Native Animated Image Slider! This library is inspired by the beautiful and intuitive design of Apple's Memories app, bringing a touch of elegance to your React Native applications.Our Animated Image Slider is not just a simple carous
Downloads
16
Maintainers
Readme
React Native Animated Image Slider
Welcome to our React Native Animated Image Slider! This library is inspired by the beautiful and intuitive design of Apple's Memories app, bringing a touch of elegance to your React Native applications.
Our Animated Image Slider is not just a simple carousel of images. It's a dynamic, interactive, and visually appealing component that enhances the user experience. With smooth transitions and subtle animations, users can easily navigate through their favorite photos or any other content.
Table of Content:
How it looks
Installation
npm i rn-animated-image-slider --saveor
yarn add rn-animated-image-sliderExample
Take a look into example folder
To execute the example using Expo run the following command:
yarn run run:exampleHow to use it
Step 1: Import the ImageSlider component:
import { ImageSlider } from "rn-animated-image-slider";Second step: define the slides
const slides = [
{
source: {uri: 'https://picsum.photos/id/16/1000/800'},
},
{
source: {uri: 'https://picsum.photos/id/17/1000/800'},
},
{
source: {uri: 'https://picsum.photos/id/18/1000/800'},
},
];or pass local image
const actions = [
{
source: require('@/assets/image1.png'),
},
{
source: require('@/assets/image2.png'),
},
{
source: require('@/assets/image3.png'),
},
];Third step: use it
<View style={styles.container}>
<Text style={styles.example}>Animated Slider example</Text>
<ImageSlider
slides={slides}
title={'Slider title'}
date={new Date().toLocaleDateString("en-US", { day: 'numeric', month: 'short', year: 'numeric' })}
onGalleryPress={() => console.log('gallery Pressed')}
onControllersVisibleChange={isVisible =>
console.log(`isController visible ${isVisible}`)
}
onMutePress={() => console.log('on mute press')}
onPausePress={() => console.log('on pause press')}
/>
</View>Props
containerStyle: ViewStyle
Default:
undefindOptional styling for the container of the image slider.
slides: Array<{ source: ImageSourcePropType }>
Required
An array of objects representing the images to be displayed in the slider. Each object should contain a source property which is of type ImageSourcePropType.
onGalleryPress: () => void
Default:
undefinedCallback function to be executed when the gallery button is pressed.
onMutePress: (isMute: boolean) => void
Default:
undefinedCallback function to be executed when the mute button is pressed. The function receives a boolean indicating whether the slider is currently muted.
onPausePress: (isPaused: boolean) => void
Default:
undefinedCallback function to be executed when the pause button is pressed. The function receives a boolean indicating whether the slider is currently paused.
onControllersVisibleChange: (isControllersVisible: boolean) => void
Default:
undefinedCallback function to be executed when the visibility of the controllers changes.
@paramisControllersVisible: boolean indicating whether the controllers are currently visible
title: string
Required:
The title to be displayed above the image slider.
titleStyle: TextStyle
Default:
undefinedOptional styling for the title.
date: string
Default:
undefinedThe date to be displayed below the image slider.
dateStyle: TextStyle
Default:
undefinedOptional styling for the date.
controllerComponent: () => JSX.Element
Default:
undefinedOptional custom component to be used as the controller.
slideContainerStyle: ViewStyle
Default:
undefinedOptional styling for the container of each slide.
controllerContainerStyle: ViewStyle
Default:
#undefinedOptional styling for the container of the controller.
controllersStyle: ViewStyle
Default:
undefinedOptional styling for the controllers.
sliderWidth: number
Default:
Dimensions.get('window').widthOptional width for the slider.
sliderHeight: number
Default:
Dimensions.get('window').heightOptional height for the slider.
rotateDegree: number
Default:
Math.PIOptional rotateDegree is a constant that represents the degree of rotation for the slides. It is set to Math.PI radians, which is approximately 3.14159 degrees.
slideDuration: number
Default:
6000Optional duration for each slide transition in ms.
sizeIcon: number
Default:
33Optional size for the icons.
TODO
- [x] first implementation
- [x] example
- [x] migrate to TypeScript
- [ ] Enable swipe functionality for sliding..
