/* Copyright (C) Click & Push Accessibility, Inc - All Rights Reserved
 * Unauthorized copying of this file, via any medium is strictly prohibited
 * Proprietary and confidential
 * Written and maintained by the Click & Push Development team 
 * <dev@clicknpush.ca>, January 2022
 */

import { createStackNavigator, StackNavigationProp } from '@react-navigation/stack';
import React from "react";
import { RegisterMain } from '../components/Profile/Registration/RegisterMain';
import MainTabsNavigator from './MainTabsNavigator';
;

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

export type BaseStackNavigationProp = StackNavigationProp<BaseStackParamList>;

const AuthStack = createStackNavigator<BaseStackParamList>();

/**
 * 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 (
        <AuthStack.Navigator screenOptions={{
            headerTransparent: true,
            headerTintColor: 'white',
            headerTitle: ""}}>
            <AuthStack.Screen name="MainTabs" >
                {({navigation}) => <MainTabsNavigator navigation={navigation} />}
            </AuthStack.Screen>
            <AuthStack.Screen name="Register" component={RegisterMain} />
        </AuthStack.Navigator>
    );
}

export default UnauthorizedNavigator;