import React from 'react';
import { Button, ScrollView, StyleSheet, View } from 'react-native';
import {
ThemeColors,
useTheme,
Themed,
SafeAreaView,
NavigationRoute,
} from 'react-navigation';
import {
createDrawerNavigator,
NavigationDrawerOptions,
NavigationDrawerScreenProps,
NavigationDrawerProp,
NavigationDrawerScreenComponent,
} from 'react-navigation-drawer';
import { MaterialIcons } from '@expo/vector-icons';
const SampleText = ({ children }: { children: React.ReactNode }) => (
{children}
);
type Params = { drawerLockMode: 'unlocked' | 'locked-open' | 'locked-closed' };
const MyNavScreen = ({
navigation,
banner,
}: {
navigation: NavigationDrawerProp;
banner: string;
}) => {
let theme = useTheme();
return (
{banner}
);
};
const InboxScreen: NavigationDrawerScreenComponent = ({
navigation,
}) => ;
const EmailScreen: NavigationDrawerScreenComponent = ({
navigation,
}) => ;
const DraftsScreen: NavigationDrawerScreenComponent = ({
navigation,
}) => ;
function createDrawerExample(options = {}) {
let DrawerExample = createDrawerNavigator(
{
Inbox: {
path: '/',
screen: InboxScreen,
navigationOptions: ({ navigation }: NavigationDrawerScreenProps) => {
const options: NavigationDrawerOptions = {
drawerLabel: 'Inbox',
drawerLockMode: navigation.state.params?.drawerLockMode,
drawerIcon: ({ tintColor }) => (
),
};
return options;
},
},
Drafts: {
path: '/sent',
screen: DraftsScreen,
navigationOptions: ({ navigation }: NavigationDrawerScreenProps) => {
const options: NavigationDrawerOptions = {
drawerLabel: 'Drafts',
drawerLockMode: navigation.state.params?.drawerLockMode,
drawerIcon: ({ tintColor }) => (
),
};
return options;
},
},
Email: {
screen: EmailScreen,
},
},
{
initialRouteName: 'Drafts',
drawerWidth: 210,
navigationOptions: {
headerShown: false,
},
contentOptions: {
activeTintColor: '#e91e63',
},
...options,
}
);
return DrawerExample;
}
export const SimpleDrawer = createDrawerExample();
export const SimpleDrawerUnmountInactive = createDrawerExample({
unmountInactiveRoutes: true,
});