1.1.0 • Published 3 months ago

react-native-story-carousel v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

📱 react-native-story-carousel

A React Native library for creating interactive and engaging screen stories.

Preview GIF

Peer Dependencies

The react-native-story-carousel library relies on certain peer dependencies to ensure proper functionality. Please make sure to install the following dependencies in your project:

Make sure to check for the latest version of each peer dependency and install it accordingly.

Installation

To install the Story Carousel library, use the following commands:

npm install react-native-story-carousel 

Usage

Props

The StoryCarousel component takes an array of screens as a prop, each component (Screen) have access to these props by default:

PropTypeDescription
onSkip() => voidFunction to be called when the user wants to skip the current screen.
onPrevious() => voidFunction to be called when the user wants to go back to the previous screen.
onSkipIndex(index: number) => voidFunction to be called when the user wants to skip directly to a specific screen.
isFirstStepbooleanBoolean indicating if the current screen is the first in the sequence.
isLastStepbooleanBoolean indicating if the current screen is the last in the sequence.
numberOfStepsnumberTotal number of screens in the sequence.
currentIndexnumberIndex of the current screen.

Style Props

The style prop, represented by the IScreenStyle interface, allows you to customize the appearance of the Story Carousel:

PropTypeDescription
fillColorstringColor of the filled portion of the progress bar.
unfillColorstringColor of the unfilled portion of the progress bar.
backgroundColorstringBackground color of the Story Carousel component.

Screen Structure

The screens prop for the StoryCarousel component should be an array of objects, each representing a screen in the sequence. The structure of each object should adhere to the IScreen interface:

KeyTypeDescription
ScreenReact.ComponentType<IScreenProps>The React component representing the content of the screen.
durationnumber(Optional) Display time for the screen in sec. If not defined, the screen will wait for user action before transitioning to the next screen.
propsany(Optional) Custom props to be passed to the Screen component.

Example

import StoryCarousel from 'react-native-story-carousel';

const screens = [
  {
    Screen: FirstScreen,
    duration: 2, // Display time in sec
    props: {/* Custom props for FirstScreen */}
  },
  {
    Screen: SecondScreen,
    // If duration not defined then no progress bar, wait for user action
    props: {/* Custom props for SecondScreen */}
  },
  // ... more screens
];

const style = {
  fillColor: '#3498db',
  unfillColor: '#ecf0f1',
  backgroundColor: '#2c3e50',
};

const App = () => {
  return (
    <StoryCarousel style={style} screens={screens} />
  );
};

export default App;

In this example, each screen component can access and utilize the provided props.

License

MIT