ts/features/messages/navigation/MessagesNavigator.tsx
import React from "react";
import { createStackNavigator } from "@react-navigation/stack";
import { EUCovidCertStackNavigator } from "../../euCovidCert/navigation/navigator";
import EUCOVIDCERT_ROUTES from "../../euCovidCert/navigation/routes";
import { MessageDetailsScreen } from "../screens/MessageDetailsScreen";
import { MessageCalendarScreen } from "../screens/MessageCalendarScreen";
import { MessageRouterScreen } from "../screens/MessageRouterScreen";
import { PnStackNavigator } from "../../pn/navigation/navigator";
import PN_ROUTES from "../../pn/navigation/routes";
import { useIOSelector } from "../../../store/hooks";
import { isPnEnabledSelector } from "../../../store/reducers/backendStatus";
import { MessageAttachmentScreen } from "../screens/MessageAttachmentScreen";
import { MessagesParamsList } from "./params";
import { MESSAGES_ROUTES } from "./routes";
const Stack = createStackNavigator<MessagesParamsList>();
export const MessagesStackNavigator = () => {
const isPnEnabled = useIOSelector(isPnEnabledSelector);
return (
<Stack.Navigator
initialRouteName={MESSAGES_ROUTES.MESSAGE_ROUTER}
screenOptions={{
gestureEnabled: false,
headerMode: "screen"
}}
>
<Stack.Group>
<Stack.Screen
name={MESSAGES_ROUTES.MESSAGE_ROUTER}
component={MessageRouterScreen}
/>
<Stack.Screen
name={MESSAGES_ROUTES.MESSAGE_DETAIL}
component={MessageDetailsScreen}
/>
<Stack.Screen
name={MESSAGES_ROUTES.MESSAGE_DETAIL_ATTACHMENT}
component={MessageAttachmentScreen}
/>
<Stack.Screen
name={EUCOVIDCERT_ROUTES.MAIN}
component={EUCovidCertStackNavigator}
options={{
gestureEnabled: false,
headerShown: false
}}
/>
{isPnEnabled && (
<Stack.Screen
name={PN_ROUTES.MAIN}
component={PnStackNavigator}
options={{
gestureEnabled: false,
headerShown: false
}}
/>
)}
</Stack.Group>
<Stack.Group screenOptions={{ presentation: "modal" }}>
<Stack.Screen
name={MESSAGES_ROUTES.MESSAGE_DETAIL_CALENDAR}
component={MessageCalendarScreen}
options={{
gestureEnabled: false,
headerShown: false
}}
/>
</Stack.Group>
</Stack.Navigator>
);
};