Source

src/navigation/UnauthorizedNavigator.tsx

import React from "react";
import { createStackNavigator, StackNavigationProp } from '@react-navigation/stack';
import Intro from "../components/Auth/Intro";;
import { RegisterMain } from "../components/Auth/Registration/RegisterMain";
import { RegistrationFormProvider } from "../contexts/RegisterContext";

/**
 * Permitted screens for the Auth stack navigator. 
 * @category Navigation
 * @typedef
 */
export type AuthStackParamList = {
    Intro: React.FC,
    Login: React.FC,
    Register: React.FC,
}

export type AuthStackNavigationProp = StackNavigationProp<AuthStackParamList>;

const AuthStack = createStackNavigator<AuthStackParamList>();

/**
 * The root navigator for all unauthorized screens ({@link Intro}, {@link RegisterMain}). It uses a [React Navigation Stack Navigator]{@link https://reactnavigation.org/docs/stack-navigator/} the main navigation mechanism.
 * @category Navigation
 * @component
 */
const UnauthorizedNavigator : React.FC = () => {
    return (
        <RegistrationFormProvider>
            <AuthStack.Navigator screenOptions={{
                headerTransparent: true,
                headerTintColor: 'white',
                headerTitle: ""}}>
                <AuthStack.Screen name="Intro" component={Intro} />
                <AuthStack.Screen name="Register" component={RegisterMain} />
            </AuthStack.Navigator>
        </RegistrationFormProvider>
    );
}

export default UnauthorizedNavigator;