mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-09-10 21:46:27 +02:00
create RestrictMenuItem and add team assign link
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
import { FC, useCallback, useState } from "react"
|
import { FC, useCallback, useState } from "react"
|
||||||
import { useSelector } from "react-redux"
|
import { useSelector } from "react-redux"
|
||||||
import classnames from "classnames"
|
import classnames from "classnames"
|
||||||
import { isUserConnected, routerSelector } from "../../store/auth"
|
import { isUserConnected, routerSelector, selectUserRoles } from "../../store/auth"
|
||||||
import styles from "./styles.module.scss"
|
import styles from "./styles.module.scss"
|
||||||
|
import ROLES from "../../utils/roles.constants"
|
||||||
|
|
||||||
interface MenuItemProps {
|
interface MenuItemProps {
|
||||||
name: string
|
name: string
|
||||||
@@ -19,6 +20,15 @@ const MenuItem: FC<MenuItemProps> = ({ name, pathname }): JSX.Element => {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface RestrictMenuItemProps extends MenuItemProps {
|
||||||
|
role: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const RestrictMenuItem: FC<RestrictMenuItemProps> = ({ name, pathname, role }): JSX.Element => {
|
||||||
|
const roles = useSelector(selectUserRoles)
|
||||||
|
return roles.includes(role) ? <MenuItem name={name} pathname={pathname} /> : <div />
|
||||||
|
}
|
||||||
|
|
||||||
const MainMenu: FC = (): JSX.Element => {
|
const MainMenu: FC = (): JSX.Element => {
|
||||||
const connected = useSelector(isUserConnected)
|
const connected = useSelector(isUserConnected)
|
||||||
const [opened, setOpened] = useState(false)
|
const [opened, setOpened] = useState(false)
|
||||||
@@ -42,6 +52,11 @@ const MainMenu: FC = (): JSX.Element => {
|
|||||||
<MenuItem name="Questions" pathname="/" />
|
<MenuItem name="Questions" pathname="/" />
|
||||||
<MenuItem name="Annonces" pathname="/annonces" />
|
<MenuItem name="Annonces" pathname="/annonces" />
|
||||||
<MenuItem name="Mon profil" pathname="/profil" />
|
<MenuItem name="Mon profil" pathname="/profil" />
|
||||||
|
<RestrictMenuItem
|
||||||
|
role={ROLES.ASSIGNER}
|
||||||
|
name="Gestion équipes"
|
||||||
|
pathname="/team-assign"
|
||||||
|
/>
|
||||||
<button type="button" className={styles.close} onClick={onClose}>
|
<button type="button" className={styles.close} onClick={onClose}>
|
||||||
×
|
×
|
||||||
</button>
|
</button>
|
||||||
|
Reference in New Issue
Block a user