DrawerNavigation.js 1.86 KB
Newer Older
quynhquang400@gmail.com's avatar
quynhquang400@gmail.com committed
1
import {createDrawerNavigator} from '@react-navigation/drawer';
2 3 4
import * as React from 'react';
import {Image} from 'react-native';

quynhquang400@gmail.com's avatar
quynhquang400@gmail.com committed
5
import HeaderComponent from '../components/header/HeaderComponent';
6
import ConfirmDate from '../screens/confirm_date/ConfirmDateContainer';
quynhquang400@gmail.com's avatar
quynhquang400@gmail.com committed
7 8 9 10 11
import HomeScreen from '../screens/home/homeContainer';
import OnLeave from '../screens/onleave/onLeaveContainer';
import Overtime from '../screens/overtime/OvertimeContainer';
import SalaryScreen from '../screens/salary/SalaryContainer';
import ShiftScreen from '../screens/shift/ShiftContainer';
12 13
import WorkLoad from '../screens/workload/WorkLoadContainer';
import {APP_NAVIGATE_SCREEN} from '../utils/constant';
quynhquang400@gmail.com's avatar
quynhquang400@gmail.com committed
14
import {IconDrawer} from '../values/images';
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
const {
  HOME,
  SHIFT,
  PERSONNEL,
  ON_LEAVE,
  OVERTIME,
  SALARY,
  CONFIRM_DATE,
  WORK_LOAD,
} = APP_NAVIGATE_SCREEN;

const AppScreen = {
  [HOME]: HomeScreen,
  [ON_LEAVE]: OnLeave,
  [OVERTIME]: Overtime,
  [SALARY]: SalaryScreen,
  [CONFIRM_DATE]: ConfirmDate,
  [SHIFT]: ShiftScreen,
  [WORK_LOAD]: WorkLoad,
};
const AppIcon = {
  [HOME]: IconDrawer.IcOverview,
  [ON_LEAVE]: IconDrawer.IcLeave,
  [OVERTIME]: IconDrawer.IcOvertime,
  [SALARY]: IconDrawer.IcSalary,
  [CONFIRM_DATE]: IconDrawer.IcConfirmDay,
  [SHIFT]: IconDrawer.IcShift,
  [WORK_LOAD]: IconDrawer.IcDataSheet,
};
const Drawer = createDrawerNavigator();

export default function App() {
  return (
quynhquang400@gmail.com's avatar
quynhquang400@gmail.com committed
48
    <Drawer.Navigator initialRouteName={HOME}>
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
      {Object.keys(AppScreen).map((item, index) => (
        <Drawer.Screen
          key={index}
          name={item}
          component={AppScreen[item]}
          options={{
            header: props => <HeaderComponent {...props} />,
            drawerIcon: ({focused, size}) => (
              <Image source={AppIcon[item]} style={{width: 24, height: 24}} />
            ),
          }}
        />
      ))}
    </Drawer.Navigator>
  );
}