Files
my-links/components/SideMenu/SideMenu.tsx
Sonny 45f5455f94 feat/fix/chore: refactor project structure + add favicon
- Changement de structure de fichier
- Ajout des favicons des sites
- Suppression et mise à jour de dépendances
- Ajout React-Icons pour gérer les icons
- Amélioration du l'UI
2023-04-20 18:18:03 +02:00

63 lines
1.6 KiB
TypeScript

import { Session } from "next-auth";
import LinkTag from "next/link";
import BlockWrapper from "../BlockWrapper/BlockWrapper";
import Categories from "./Categories/Categories";
import Favorites from "./Favorites/Favorites";
import UserCard from "./UserCard/UserCard";
import { Category, Link } from "../../types";
import styles from "./sidemenu.module.scss";
interface SideMenuProps {
categories: Category[];
favorites: Link[];
handleSelectCategory: (category: Category) => void;
categoryActive: Category;
session: Session;
}
export default function SideMenu({
categories,
favorites,
handleSelectCategory,
categoryActive,
session,
}: SideMenuProps) {
return (
<div className={styles["side-menu"]}>
<BlockWrapper>
<Favorites favorites={favorites} />
</BlockWrapper>
<BlockWrapper style={{ minHeight: "0" }}>
<Categories
categories={categories}
categoryActive={categoryActive}
handleSelectCategory={handleSelectCategory}
/>
</BlockWrapper>
<BlockWrapper>
<MenuControls categoryActive={categoryActive} />
</BlockWrapper>
<BlockWrapper>
<UserCard session={session} />
</BlockWrapper>
</div>
);
}
function MenuControls({
categoryActive,
}: {
categoryActive: SideMenuProps["categoryActive"];
}) {
return (
<div className={styles["menu-controls"]}>
<LinkTag href={"/category/create"}>Créer categorie</LinkTag>
<LinkTag href={`/link/create?categoryId=${categoryActive.id}`}>
Créer lien
</LinkTag>
</div>
);
}