An open API service indexing awesome lists of open source software.

https://github.com/pspatel5/react-native-app-intro

A fully customizable React Native component aimed to beautify the onboarding experience.
https://github.com/pspatel5/react-native-app-intro

material-intro-screen onboarding react-native react-native-intro react-native-onboard

Last synced: 2 months ago
JSON representation

A fully customizable React Native component aimed to beautify the onboarding experience.

Awesome Lists containing this project

README

          

# React Native App Intro

![React Native App Intro License](https://img.shields.io/github/license/Parth-coditas/react-native-app-intro)
![React Native App Intro Version](https://img.shields.io/badge/version-v1.1.0-blue)
![React Native App Intro Release](https://img.shields.io/badge/release-june-yellow)
![React Native App Intro Top Language](https://img.shields.io/github/languages/top/Parth-coditas/react-native-app-intro)
![React Native App Intro TypeScript](https://img.shields.io/badge/language-ts-blue)

This project is a [React Native](https://facebook.github.io/react-native/) onboarding library that can be used to beautify user onboarding experience.

The library is completely written in typescript and highly customizable.

## Demo

| Expand | Scale Dot | Slide Dot | Slide Border |
| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| Expand Animation | Scale dot Animation | Slide dot Animation | Slide border Animation |

## Library Highlights

Some of the key highlights of this library is as below:

- Beautiful pagination animations.
- Custom pagination component support.
- Custom Next and Skip button component support.
- Completely written in typescript.
- Cross-platform support.
- Highly customizable.

## Properties

##### Interfaces

```typescript
// page indicator animation whlie changing screen.
type animationType =
| "sliding-border"
| "sliding-dot"
| "scaling-dot"
| "expanding";

interface renderSkipButtonProps {
activeIndex: number;
totalSlides: number;
goToSlide: (slideNumber: number) => void;
onSkipPress: () => void; // same function that you sent via BottomProps
}

interface renderNextButtonProps {
activeIndex: number;
totalSlides: number;
goToSlide: (slideNumber: number) => void;
isLastPage: boolean;
onNextPress: (activeIndex: number, nextIndex: number) => void; // same function that you sent via BottomProps
}

// Bottom Button Props
interface BottomProps {
showSkipButton?: boolean;
skipButtonText?: string;
nextButtonText?: string;
skipTextStyle?: StyleProp;
nextTextStyle?: StyleProp;
skipContainerStyle?: StyleProp;
nextContainerStyle?: StyleProp;
bottomContainerStyle?: StyleProp;
onSkipPress?: () => void;
onNextPress?: (activeIndex: number, nextIndex: number) => void;
onDonePress?: () => void;
renderSkipButton?: (props: renderSkipButtonProps) => ReactNode; // To render custom Skip button. Refer RenderSkipButtonProps Interface above for further details.
renderNextButton?: (props: renderNextButtonProps) => ReactNode; // To render custom Next button. Refer RenderNextButtonProps Interface above for further details.
}

// Pagination component props
interface PaginationProps {
activeDotColor?: string;
inactiveDotColor?: string;
dotSize?: number;
dotSpacing?: number;
animationType?: animationType;
dotStyle?: StyleProp;
containerStyle?: StyleProp;
activeDotStyle?: StyleProp;
}

// Page Component Props
interface PageProps {
title: string;
image: ImageSourcePropType;
description?: string;
containerStyle?: StyleProp;
titleStyle?: StyleProp;
imageStyle?: StyleProp;
descriptionStyle?: StyleProp;
}
```

| Property Name | Expected Type | Default Value | Required |
| :--------------: | :------------------------------------------------------------------------------------: | :-----------: | :------: |
| showPagination | boolean | false | - |
| paginationProps | [Pagination Props](https://github.com/Parth-coditas/react-native-app-intro#interfaces) | undefined | - |
| buttonProps | [Bottom Props](https://github.com/Parth-coditas/react-native-app-intro#interfaces) | undefined | - |
| renderPagination | ( activeIndex:number , totalSlides:number ) => ReactNode | undefined | - |
| onSlideChange | (currentIndex: number, prevIndex: number) => void | undefined | - |

## Start

To add this library, simply run :

```bash
$ npm install @pspatel/react-native-app-intro
```

or

```bash
$ yarn add @pspatel/react-native-app-intro
```

## Usage

```javascript
import React from "react";
import { View, Text } from "react-native";
import { IntroSlider } from "@pspatel/react-native-app-intro";

const Screen = ({ title }) => {
return (

{title}

);
};

const App = () => {
return (





);
};
```