0.1.10 ā€¢ Published 11 months ago

react-native-step-navigation v0.1.10

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

React Native Step Navigation

npm version License Runs with Expo

šŸ“š React Native Step Navigation is a package that allows you to handle step-by-step navigation in React Native applications. It is designed to work seamlessly with Expo and Bare ReactNative, making it easy to integrate into your projects. šŸš€

Example GIF

For a complete example and more advanced usage, please refer to the example folder in this repository. šŸ“‚

Installation

You can install this package using npm or yarn. Make sure you have Expo installed in your project. šŸ“¦

npm install react-native-step-navigation

or

yarn add react-native-step-navigation

Usage

To get started, import the StepNavigationProvider component from the package and use it to wrap your application. āš™ļø

Important: the StepNavigationProvider must be wrapping your NavigationContainer

import { StepNavigationProvider } from './react-native-step-navigation'
import AppRoutes from './src/routes/app.routes'

export default function App() {
  return (
      <StepNavigationProvider>
        <AppRoutes/>
      </StepNavigationProvider>
  )
}

Now, where your NavigationContainer is, add the onStateChange function, which is exported by the useStepNavigation() hook

...
import { useStepNavigation } from '../../react-native-step-navigation'

const AppRoutes = () => {
  const { onStateChange } = useStepNavigation()

  return (
    <NavigationContainer onStateChange={onStateChange}>
        [ ... your routes ... ]
    </NavigationContainer>
  )
}

export default AppRoutes

Now to use the Step Navigation, is very similar to the Stack navgation usage, you just have to create your step navigation object, lets name it "Step", wrap your screens with Step.Navigator, and then create your screens with Step.Screen.

...
import { createStepNavigation } from 'react-native-step-navigation'

const Step = createStepNavigation()

const StepRoutes = () => {
  return (
    <Step.Navigator>
        <Step.Screen name='Step1' component={StepScreen}/>
        <Step.Screen name='Step2' component={StepScreen2}/>
        <Step.Screen name='Step3' component={StepScreen3}/>
        <Step.Screen name='Step4' component={StepScreen4}/>
    </Step.Navigator>
  )
}

export default StepRoutes

Props

StepNavigator Props

PropTypeDescriptionRequired
closeRoutestringRoute to navigate when the close button is pressed.No
titlestringTitle to display in the header.No
headerbooleanFlag to show/hide the header.No
progressBarStyleIProgressBarStyleStyle object for customizing the progress bar appearance.No
headerStyleViewStyleStyle object for customizing the header container.No
titleStyleTextStyleStyle object for customizing the title text.No
iconCloseColorstringColor of the close button icon.No
iconBackColorstringColor of the back button icon.No

Step.Screen Props

PropTypeDescriptionRequired
namestringName of the screen.Yes
componentanyComponent to render for the step.Yes
headerbooleanFlag to show/hide the header for the step.No
progressBarbooleanFlag to show/hide the progress bar for the step.No
styleViewStyleStyle object for customizing the step container.No
backRoutestringRoute to navigate when the back button is pressed for the step.No

Dependencies

Contributing

Contributions are welcome! If you have any bug reports, feature requests, or suggestions, please create an issue on GitHub.

If you want to contribute code, please follow the contribution guidelines in this repository.

License

This project is licensed under the MIT License. šŸ“œ