1.0.0 • Published 5 years ago

@fnzc/react-native-pages v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

react-native-pages

npm

A component to handle transition between pages based on a list of ordered statuses

Using:

Installation

npm install --save @fnzc/react-native-pages

or

yarn add @fnzc/react-native-pages

Demo

Here is how it can look like with a login/register flow example:

pages

Usage

Basic usage requires you to provide:

  • a currentStatus representing the current page
  • pages, an array of page
  • an array of statuses ordered

The pages will use the statuses ordered in the provided array to transition from left to right or right to left

NOTE: A page contains:

{
  associatedStatus: string,
  component: JSX.Element,
  style?: StypeProp<ViewStyle>
}

Example usage:

import Pages from '@fnzc/react-native-pages'

const orderedStatuses = ['email', 'login', 'password', 'finished', 'confirmed', 'loading']

createPages = (): Page[] => {
  return [
    {
      component: this.createPage(...),
      associatedStatus: 'email'
    },
    {
      component: this.createPage(...),
      associatedStatus: 'password' 
    },
    ...
  ]
}

<PagesComponent
  currentStatus={this.props.status}
  orderedStatuses={orderedStatuses}
  pages={this.createPages()}/>

Options

KeyDescriptionDefaultRequiredType
currentStatusName of the status associated to the current pageNonetruestring
pagesThe array of pages that have to be displayedPageNonetruePage[]
orderedStatusesThe array of ordered statuses use to transition the pagesNonetrueany[]
translateEnterDurationThe duration of the enter transition400falsenumber
translateEnterFunctionThe easing function of the enter transitioneaseQuadInOutfalse(normalizedTime: number) => number
translateEnterPositionThe position of the page on the enter transition0falsenumber
translateEndForwardPositionThe position of the page at the end of a forward transition-Dimensions.get('window').widthfalsenumber
translateEndBackwardPositionThe position of the page at the end of a backward transitionDimensions.get('window').widthfalsenumber
translateLeaveDurationThe duration of the enter transition400falsenumber
translateLeaveFunctionThe easing function of the enter transitioneaseQuadInOutfalse(normalizedTime: number) => number
translateStartForwardPositionThe position of the page at the start of a forward transitionDimensions.get('window').widthfalsenumber
translateStartBackwardPositionThe position of the page at the start of a backward transition-Dimensions.get('window').widthfalsenumber

Contributing

Pull requests are welcome.