Files
inji-wallet/screens/AppLayout.tsx

42 lines
1.3 KiB
TypeScript

import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import {
NativeStackNavigationOptions,
createNativeStackNavigator,
} from '@react-navigation/native-stack';
import { LanguageSelector } from '../components/LanguageSelector';
import { authRoutes, baseRoutes } from '../routes';
import { useAppLayout } from './AppLayoutController';
import { Icon } from 'react-native-elements';
import { Theme } from '../components/ui/styleUtils';
const { Navigator, Screen } = createNativeStackNavigator();
export const AppLayout: React.FC = () => {
const controller = useAppLayout();
const options: NativeStackNavigationOptions = {
title: '',
headerTitleAlign: 'center',
headerShadowVisible: false,
headerRight: () => (
<LanguageSelector
triggerComponent={<Icon name="language" color={Theme.Colors.Icon} />}
/>
),
headerBackVisible: false,
};
return (
<NavigationContainer>
<Navigator initialRouteName={baseRoutes[0].name} screenOptions={options}>
{baseRoutes.map((route) => (
<Screen key={route.name} {...route} />
))}
{controller.isAuthorized &&
authRoutes.map((route) => <Screen key={route.name} {...route} />)}
</Navigator>
</NavigationContainer>
);
};