add switch corporate & fix table & fix policy

This commit is contained in:
Muhammad Fajar
2022-12-08 08:51:25 +07:00
parent df34c3919d
commit 0c9362334c
17 changed files with 227 additions and 174 deletions

View File

@@ -0,0 +1,48 @@
import { FormControl, InputLabel, MenuItem, Select, SelectChangeEvent } from '@mui/material';
import { useContext, useEffect, useState } from 'react';
import { UserCurrentCorporateContext } from '../../../contexts/UserCurrentCorporate';
import axios from '../../../utils/axios';
/* ---------------------------------- types --------------------------------- */
type CorporateDataProps = {
id: number;
name: string;
};
/* -------------------------------------------------------------------------- */
export default function CorporatePopover() {
const { corporateValue, setCorporateValue } = useContext(UserCurrentCorporateContext);
const [corporateData, setCorporateData] = useState([]);
const handleCorporateChange = (event: SelectChangeEvent) => {
setCorporateValue(event.target.value as string);
};
useEffect(() => {
(async () => {
// @ts-ignore
const corporateManages = await axios.get(`/corporate-manage`);
setCorporateData(corporateManages.data);
})();
}, []);
return (
<FormControl>
<InputLabel id="simple-corporate-select-lable">Corporate</InputLabel>
<Select
labelId="simple-corporate-select-lable"
id="corporate-select-lable"
value={corporateValue}
label="Corporate"
defaultValue={corporateValue}
onChange={handleCorporateChange}
>
{corporateData.map((row: CorporateDataProps, index) => (
<MenuItem key={index} value={row.id}>
{row.name}
</MenuItem>
))}
</Select>
</FormControl>
);
}

View File

@@ -18,6 +18,7 @@ import AccountPopover from './AccountPopover';
import LanguagePopover from './LanguagePopover';
import ContactsPopover from './ContactsPopover';
import NotificationsPopover from './NotificationsPopover';
import CorporatePopover from './CorporatePopover';
// ----------------------------------------------------------------------
@@ -92,6 +93,7 @@ export default function DashboardHeader({
<Box sx={{ flexGrow: 1 }} />
<Stack direction="row" alignItems="center" spacing={{ xs: 0.5, sm: 1.5 }}>
<CorporatePopover />
<LanguagePopover />
<NotificationsPopover />
<ContactsPopover />

View File

@@ -13,6 +13,9 @@ import { HEADER, NAVBAR } from '../../config';
import DashboardHeader from './header';
import NavbarVertical from './navbar/NavbarVertical';
import NavbarHorizontal from './navbar/NavbarHorizontal';
import useLocalStorage from '../../hooks/useLocalStorage';
import { UserCurrentCorporateContext } from '../../contexts/UserCurrentCorporate';
import useAuth from '../../hooks/useAuth';
// ----------------------------------------------------------------------
@@ -47,6 +50,7 @@ export default function DashboardLayout() {
const { collapseClick, isCollapse } = useCollapseDrawer();
const { themeLayout } = useSettings();
const { user } = useAuth();
const isDesktop = useResponsive('up', 'lg');
@@ -54,6 +58,12 @@ export default function DashboardLayout() {
const verticalLayout = themeLayout === 'vertical';
const [corporateValue, setCorporateValue] = useLocalStorage(
'corporateValue',
`${user.corporate.id}`
);
const value = { corporateValue, setCorporateValue };
if (verticalLayout) {
return (
<>
@@ -86,19 +96,21 @@ export default function DashboardLayout() {
}
return (
<Box
sx={{
display: { lg: 'flex' },
minHeight: { lg: 1 },
}}
>
<DashboardHeader isCollapse={isCollapse} onOpenSidebar={() => setOpen(true)} />
<UserCurrentCorporateContext.Provider value={value}>
<Box
sx={{
display: { lg: 'flex' },
minHeight: { lg: 1 },
}}
>
<DashboardHeader isCollapse={isCollapse} onOpenSidebar={() => setOpen(true)} />
<NavbarVertical isOpenSidebar={open} onCloseSidebar={() => setOpen(false)} />
<NavbarVertical isOpenSidebar={open} onCloseSidebar={() => setOpen(false)} />
<MainStyle collapseClick={collapseClick}>
<Outlet />
</MainStyle>
</Box>
<MainStyle collapseClick={collapseClick}>
<Outlet />
</MainStyle>
</Box>
</UserCurrentCorporateContext.Provider>
);
}