jason.lam 1 year ago
parent
commit
2b6708734f
2 changed files with 61 additions and 45 deletions
  1. +56
    -45
      src/layout/MainLayout/Header/index.js
  2. +5
    -0
      src/utils/Utils.js

+ 56
- 45
src/layout/MainLayout/Header/index.js View File

@@ -41,7 +41,7 @@ import AdminLogo from 'components/AdminLogo';
import MobileLogo from 'components/MobileLogo'; import MobileLogo from 'components/MobileLogo';
import Profile from './HeaderContent/Profile'; import Profile from './HeaderContent/Profile';
import "assets/style/navbarStyles.css"; import "assets/style/navbarStyles.css";
import { isUserLoggedIn, isGLDLoggedIn, isPrimaryLoggedIn } from "utils/Utils";
import { isUserLoggedIn, isGLDLoggedIn, isPrimaryLoggedIn, isCreditorLoggedIn } from "utils/Utils";
import { handleLogoutFunction } from 'auth/index'; import { handleLogoutFunction } from 'auth/index';


// assets // assets
@@ -49,7 +49,7 @@ import { handleLogoutFunction } from 'auth/index';
// import { AppBar } from '../../../../node_modules/@mui/material/index'; // import { AppBar } from '../../../../node_modules/@mui/material/index';
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import LocaleSelector from "./HeaderContent/LocaleSelector"; import LocaleSelector from "./HeaderContent/LocaleSelector";
import {FormattedMessage} from "react-intl";
import { FormattedMessage } from "react-intl";


const drawerWidth = 240; const drawerWidth = 240;


@@ -83,13 +83,13 @@ function Header(props) {
</Link> </Link>
</li> </li>
<li> <li>
<Link className="application" to='/application/search'><Typography style={{ opacity: 0.9 }}variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>Application</Typography></Link>
<Link className="application" to='/application/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>Application</Typography></Link>
</li> </li>
<li> <li>
<Link className="proof" to='/proof/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>Proof</Typography></Link> <Link className="proof" to='/proof/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>Proof</Typography></Link>
</li> </li>
<li> <li>
<Link className="client" ><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>Payment</Typography><KeyboardArrowDownIcon sx={{fontSize: '1.0rem'}} /></Link>
<Link className="client" ><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>Payment</Typography><KeyboardArrowDownIcon sx={{ fontSize: '1.0rem' }} /></Link>
<ul className='dropdown'> <ul className='dropdown'>
<li> <li>
<Link className="payment" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>Payment Record</Typography></Link> <Link className="payment" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>Payment Record</Typography></Link>
@@ -106,22 +106,22 @@ function Header(props) {
</ul> </ul>
</li> </li>
<li> <li>
<Link className="client" ><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>Client</Typography><KeyboardArrowDownIcon sx={{fontSize: '1.0rem'}}/></Link>
<Link className="client" ><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>Client</Typography><KeyboardArrowDownIcon sx={{ fontSize: '1.0rem' }} /></Link>
<ul className='dropdown'> <ul className='dropdown'>
<li> <li>
<Link className="userSearchview" to='/userSearchview'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2,mt: 1, mb: 1}}>Users (GLD)</Typography></Link>
<Link className="userSearchview" to='/userSearchview'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2, mt: 1, mb: 1 }}>Users (GLD)</Typography></Link>
</li> </li>
<li> <li>
<Link className="indUser" to='/indUser'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2,mt: 1, mb: 1}}>Users (Individual)</Typography></Link>
<Link className="indUser" to='/indUser'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2, mt: 1, mb: 1 }}>Users (Individual)</Typography></Link>
</li> </li>
<li> <li>
<Link className="orgUser" to='/orgUser'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2,mt: 1, mb: 1 }}>Users (Organisation)</Typography></Link>
<Link className="orgUser" to='/orgUser'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2, mt: 1, mb: 1 }}>Users (Organisation)</Typography></Link>
</li> </li>
<li> <li>
<Link className="org" to='/org'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2,mt: 1, mb: 1 }}>Organisation</Typography></Link>
<Link className="org" to='/org'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2, mt: 1, mb: 1 }}>Organisation</Typography></Link>
</li> </li>
<li> <li>
<Link className="usergroupSearchview" to='/usergroupSearchview'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2,mt: 1, mb: 1}}>User Group</Typography></Link>
<Link className="usergroupSearchview" to='/usergroupSearchview'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2, mt: 1, mb: 1 }}>User Group</Typography></Link>
</li> </li>


</ul> </ul>
@@ -137,27 +137,30 @@ function Header(props) {
<div id="individualUserContent"> <div id="individualUserContent">
<li> <li>
<Link className="dashboard" to='/dashboard'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> <Link className="dashboard" to='/dashboard'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>
<FormattedMessage id="mainPage"/>
<FormattedMessage id="mainPage" />
</Typography></Link> </Typography></Link>
</li> </li>
<li> <li>
<Link className="myDocumet" to='/publicNotice'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> <Link className="myDocumet" to='/publicNotice'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>
<FormattedMessage id="myPublicNotice"/>
<FormattedMessage id="myPublicNotice" />
</Typography></Link> </Typography></Link>
</li> </li>
<li> <li>
<Link className="documentRecord" to='/proof/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> <Link className="documentRecord" to='/proof/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>
<FormattedMessage id="proofRecord"/>
<FormattedMessage id="proofRecord" />
</Typography></Link> </Typography></Link>
</li> </li>
<li> <li>
{isPrimaryLoggedIn() ?
{isCreditorLoggedIn() ?
<> <>
<Link className="paymentRecord"><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>付款記錄</Typography></Link>
<Link className="paymentRecord">
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>付款記錄</Typography>
<KeyboardArrowDownIcon sx={{ fontSize: '1.0rem' }} />
</Link>
<ul className='dropdown'> <ul className='dropdown'>
<li> <li>
<Link className="manageOrgUser" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> <Link className="manageOrgUser" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>
<FormattedMessage id="onlinePaymentHistory"/>
<FormattedMessage id="onlinePaymentHistory" />
</Typography></Link> </Typography></Link>
</li> </li>
<li> <li>
@@ -167,30 +170,38 @@ function Header(props) {
</> </>
: :
<Link className="manageOrgUser" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}> <Link className="manageOrgUser" to='/paymentPage/search'><Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }}>
<FormattedMessage id="onlinePaymentHistory"/>
<FormattedMessage id="onlinePaymentHistory" />
</Typography></Link> </Typography></Link>
} }
</li> </li>
<li> <li>
<Link className="userSetting" >
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }} onClick={(event) => console.log(event)}>
<FormattedMessage id="setting"/>
</Typography>
<KeyboardArrowDownIcon sx={{fontSize: '1.0rem'}}/>
</Link>
{!isPrimaryLoggedIn() ?
<ul className='dropdown'>


<li>
<Link className="manageOrgUser" to='setting/manageUser'>
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>
<FormattedMessage id="companyOrUserRecord"/>
</Typography>
</Link>
</li>
</ul>
{isPrimaryLoggedIn() ?
<>
<Link className="userSetting" >
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }} onClick={(event) => console.log(event)}>
<FormattedMessage id="setting" />
</Typography>
<KeyboardArrowDownIcon sx={{ fontSize: '1.0rem' }} />
</Link>
<ul className='dropdown'>
<li>
<Link className="manageOrgUser" to='setting/manageUser'>
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>
<FormattedMessage id="companyOrUserRecord" />
</Typography>
</Link>
</li>
</ul>
</>
: :
<></>
<>
<Link className="userSetting" >
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 1 }} onClick={(event) => console.log(event)}>
<FormattedMessage id="setting" />
</Typography>
</Link>
</>
} }
</li> </li>
{/* <li> {/* <li>
@@ -204,14 +215,14 @@ function Header(props) {
<li> <li>
<Link className="login" to='/login'> <Link className="login" to='/login'>
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}> <Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>
<FormattedMessage id="login"/>
<FormattedMessage id="login" />
</Typography> </Typography>
</Link> </Link>
</li> </li>
<li> <li>
<Link className="register" to='/register'> <Link className="register" to='/register'>
<Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}> <Typography style={{ opacity: 0.9 }} variant={"pnspsHeaderTitle"} sx={{ ml: 2 }}>
<FormattedMessage id="register"/>
<FormattedMessage id="register" />
</Typography> </Typography>
</Link> </Link>
</li> </li>
@@ -307,7 +318,7 @@ function Header(props) {
<Stack direction="row" justifyContent="flex-start" alignItems="center"> <Stack direction="row" justifyContent="flex-start" alignItems="center">
<MobileLogo /> <MobileLogo />
<span id="mobileTitle" > <span id="mobileTitle" >
<FormattedMessage id="PNSPS"/>
<FormattedMessage id="PNSPS" />
</span> </span>
</Stack> </Stack>
</Box> </Box>
@@ -328,10 +339,10 @@ function Header(props) {
<Grid item> <Grid item>
<Grid container direction="row" > <Grid container direction="row" >
{ {
isGLDLoggedIn()?
<Grid item/>
:
<LocaleSelector />
isGLDLoggedIn() ?
<Grid item />
:
<LocaleSelector />
} }
<Profile /> <Profile />
</Grid> </Grid>
@@ -350,7 +361,7 @@ function Header(props) {
keepMounted: true, // Better open performance on mobile. keepMounted: true, // Better open performance on mobile.
}} }}
sx={{ sx={{
display: {sm: 'block', md: 'none' },
display: { sm: 'block', md: 'none' },
'& .MuiDrawer-paper': { boxSizing: 'border-box', width: drawerWidth }, '& .MuiDrawer-paper': { boxSizing: 'border-box', width: drawerWidth },
}} }}
> >
@@ -372,7 +383,7 @@ function Header(props) {
<Logo /> <Logo />
<Stack justifyContent="flex-start" alignItems="center"> <Stack justifyContent="flex-start" alignItems="center">
<span id="systemTitle"> <span id="systemTitle">
<FormattedMessage id="PNSPS"/>
<FormattedMessage id="PNSPS" />
</span> </span>
</Stack> </Stack>
</Stack> </Stack>
@@ -392,7 +403,7 @@ function Header(props) {
<MobileLogo /> <MobileLogo />
<Stack justifyContent="flex-start" alignItems="center"> <Stack justifyContent="flex-start" alignItems="center">
<span id="mobileTitle"> <span id="mobileTitle">
<FormattedMessage id="PNSPS"/>
<FormattedMessage id="PNSPS" />
</span> </span>
</Stack> </Stack>


@@ -412,7 +423,7 @@ function Header(props) {
<ul id="navbar" width="100%" > <ul id="navbar" width="100%" >
{logoutContent} {logoutContent}
</ul> </ul>
<LocaleSelector/>
<LocaleSelector />


{/* <Profile /> */} {/* <Profile /> */}
</Stack> </Stack>


+ 5
- 0
src/utils/Utils.js View File

@@ -83,6 +83,11 @@ export const isPrimaryLoggedIn = () =>{
return JSON.parse(localStorage.getItem('userData')).role === 'primary' return JSON.parse(localStorage.getItem('userData')).role === 'primary'
} }
} }
export const isCreditorLoggedIn = () =>{
if (localStorage.getItem('userData') != null){
return JSON.parse(localStorage.getItem('userData')).creditor
}
}
/** /**
** This function is used for demo purpose route navigation ** This function is used for demo purpose route navigation
** In real app you won't need this function because your app will navigate to same route for each users regardless of ability ** In real app you won't need this function because your app will navigate to same route for each users regardless of ability


Loading…
Cancel
Save