From 663a04dd5369caded1379e91f4bf3f89111d91d3 Mon Sep 17 00:00:00 2001 From: Alberto Defendi <1369-ahl-berto@users.noreply.gitlab.inf.unibz.it> Date: Tue, 22 Jun 2021 07:29:17 +0200 Subject: [PATCH] Switch page view based on role. --- .../ReservationListSwitcher.tsx | 19 +++++++++++++++++++ .../ReservationPage/ReservationPage.tsx | 12 ++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 src/components/Dashboard/ReservationPage/ReservationList/ReservationListSwitcher.tsx diff --git a/src/components/Dashboard/ReservationPage/ReservationList/ReservationListSwitcher.tsx b/src/components/Dashboard/ReservationPage/ReservationList/ReservationListSwitcher.tsx new file mode 100644 index 0000000..0d2057b --- /dev/null +++ b/src/components/Dashboard/ReservationPage/ReservationList/ReservationListSwitcher.tsx @@ -0,0 +1,19 @@ +import React, { FC } from 'react'; +import { useRole } from 'hooks/useRole'; +import { Roles } from 'roles/userRoles'; +import { ReservationsListByWeek } from 'components/Dashboard/ReservationPage/ReservationList/ReservationsListByWeek'; +import { ReservationList } from 'components/Dashboard/ReservationPage/ReservationList/ReservationList'; + +export const ReservationListSwitcher: FC = () => { + const [role] = useRole(); + + return ( + <> + {role === Roles.operator ? ( + <ReservationsListByWeek /> + ) : ( + <ReservationList /> + )} + </> + ); +}; diff --git a/src/components/Dashboard/ReservationPage/ReservationPage.tsx b/src/components/Dashboard/ReservationPage/ReservationPage.tsx index 1553761..3b1eba2 100644 --- a/src/components/Dashboard/ReservationPage/ReservationPage.tsx +++ b/src/components/Dashboard/ReservationPage/ReservationPage.tsx @@ -1,16 +1,20 @@ import React, { FC } from 'react'; +import { useRole } from 'hooks/useRole'; +import { Roles } from 'roles/userRoles'; import { Grid, Typography } from '@material-ui/core'; import AddIcon from '@material-ui/icons/Add'; import Fab from '@material-ui/core/Fab'; import { NavBar } from 'components/Dashboard/HomePage/NavBar'; -import { reservationPageStyle } from './ReservationPage.style'; -import { ReservationDialog } from './ReservationDialog'; import { ReservationList } from './ReservationList/ReservationList'; -import { ReservationsListByWeek } from './ReservationList/ReservationsListByWeek'; import { ReservationPageHeader } from './ReservationPageHeader'; +import { ReservationDialog } from './ReservationDialog'; +import { ReservationsListByWeek } from './ReservationList/ReservationsListByWeek'; +import { reservationPageStyle } from './ReservationPage.style'; +import { ReservationListSwitcher } from './ReservationList/ReservationListSwitcher'; export const ReservationPage: FC = () => { const classes = reservationPageStyle(); + const [role] = useRole(); const [isOpen, setIsOpen] = React.useState<boolean>(false); @@ -47,7 +51,7 @@ export const ReservationPage: FC = () => { <Grid item xs={1} lg={2} /> <Grid item xs={10} lg={8}> - <ReservationsListByWeek /> + <ReservationListSwitcher /> </Grid> <Grid item xs={1} lg={2} /> </Grid> -- GitLab