mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-06-08 08:34:20 +02:00
replace createMenuItem by MenuItem component
This commit is contained in:
parent
42586c7fde
commit
6d5680780a
@ -4,10 +4,23 @@ import classnames from "classnames"
|
||||
import { isUserConnected, routerSelector } from "../../store/auth"
|
||||
import styles from "./styles.module.scss"
|
||||
|
||||
const MainMenu: FC = (): JSX.Element | null => {
|
||||
const connected = useSelector(isUserConnected)
|
||||
const router = useSelector(routerSelector)
|
||||
interface MenuItemProps {
|
||||
name: string
|
||||
pathname: string
|
||||
}
|
||||
|
||||
const MenuItem: FC<MenuItemProps> = ({ name, pathname }): JSX.Element => {
|
||||
const router = useSelector(routerSelector)
|
||||
const isActive = (router as any)?.location?.pathname === pathname
|
||||
return (
|
||||
<li className={classnames(styles.mainMenuItem, isActive ? styles.active : null)}>
|
||||
<a href={pathname}>{name}</a>
|
||||
</li>
|
||||
)
|
||||
}
|
||||
|
||||
const MainMenu: FC = (): JSX.Element => {
|
||||
const connected = useSelector(isUserConnected)
|
||||
const [opened, setOpened] = useState(false)
|
||||
|
||||
const onOpen = useCallback(() => {
|
||||
@ -18,16 +31,7 @@ const MainMenu: FC = (): JSX.Element | null => {
|
||||
setOpened(false)
|
||||
}, [setOpened])
|
||||
|
||||
if (!connected) return null
|
||||
|
||||
function createMenuItem(name: string, pathname: string): JSX.Element {
|
||||
const isActive = (router as any)?.location?.pathname === pathname
|
||||
return (
|
||||
<li className={classnames(styles.mainMenuItem, isActive ? styles.active : null)}>
|
||||
<a href={pathname}>{name}</a>
|
||||
</li>
|
||||
)
|
||||
}
|
||||
if (!connected) return <div />
|
||||
|
||||
return (
|
||||
<nav>
|
||||
@ -35,9 +39,9 @@ const MainMenu: FC = (): JSX.Element | null => {
|
||||
☰
|
||||
</button>
|
||||
<ul className={classnames(styles.mainMenu, opened && styles.opened)}>
|
||||
{createMenuItem("Questions", "/")}
|
||||
{createMenuItem("Annonces", "/annonces")}
|
||||
{createMenuItem("Mon profil", "/profil")}
|
||||
<MenuItem name="Questions" pathname="/" />
|
||||
<MenuItem name="Annonces" pathname="/annonces" />
|
||||
<MenuItem name="Mon profil" pathname="/profil" />
|
||||
<button type="button" className={styles.close} onClick={onClose}>
|
||||
×
|
||||
</button>
|
||||
|
Loading…
x
Reference in New Issue
Block a user