import React, { FC } from 'react'; import { createStackNavigator } from '@react-navigation/stack'; import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import { Icon } from 'react-native-elements'; import * as ROUTES from 'constants/routes'; import { screenOptions } from 'app/styles'; import { styles, tabBarOptions } from './styles'; import ClientRecommendation from 'scenes/recommendation/ClientRecommendation'; import WeeklyReport from 'scenes/report/WeeklyReport'; import ComingSoonPage from 'scenes/common/ComingSoonPage'; import ExtendedQuestionnaire from 'scenes/questionnaire/ExtendedQuestionnaire'; import { ConsentForm, Questionnaire1, Questionnaire2, Questionnaire3, Questionnaire4, Questionnaire5, } from 'scenes/questionnaire/ExtendedQuestionnaire/components'; import ReadOnlyWeeklyReport from 'scenes/report/ReadOnlyWeeklyReport'; import ChooseWeekForClient from 'scenes/report/ChooseWeekForClient'; interface NavRoute { name: string; component: FC; header?: string; } const profileClientNavigation: NavRoute[] = [ { name: ROUTES.extendedQuestionnaire, component: ExtendedQuestionnaire, }, ...[ { component: ConsentForm, }, { component: Questionnaire1, }, { component: Questionnaire2, }, { component: Questionnaire3, }, { component: Questionnaire4, }, { component: Questionnaire5, }, ].map((nav, id) => ({ ...nav, name: ROUTES.extendedQuestionnaireById(id), })), ]; const ExtQuestionnaireStack = createStackNavigator(); export const ExtQuestionnaireStackScreen: FC = () => ( {profileClientNavigation.map((nav, i) => ( ))} ); const reportClientNavigation: NavRoute[] = [ { name: ROUTES.weeklyReportChooseWeek, component: ChooseWeekForClient, }, { name: ROUTES.weeklyReportForm, component: WeeklyReport, }, { name: ROUTES.weeklyReportReadOnly, component: ReadOnlyWeeklyReport, }, ]; const WeeklyReportStack = createStackNavigator(); export const WeeklyReportStackScreen: FC = () => ( {reportClientNavigation.map((nav, i) => ( ))} ); const ClientTab = createBottomTabNavigator(); const ClientNavigation: FC = () => { return ( ( ), }} /> ( ), }} /> ( ), }} /> ( ), }} /> ); }; export default ClientNavigation;