replace createMenuItem by MenuItem component

This commit is contained in:
memeriau 2022-05-02 21:00:45 +02:00
parent 42586c7fde
commit 6d5680780a

View File

@ -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>