"use client"; import clsx from "clsx"; import { type PropsWithChildren, createContext, useContext } from "react"; import ChevronRight from "../../icons/chevron-right"; import styles from "./breadcrumbs.module.css"; interface BreadcrumbsType { type?: "menu"; } const TypeContext = createContext({ type: undefined, }); const useTypeContext = () => useContext(TypeContext); export interface BreadcrumbsProps extends PropsWithChildren, BreadcrumbsType {} /** * @usage * ```tsx * () => { * const [active, setActive] = React.useState(0); * return ( * * setActive(0)}> * Item 1 * * setActive(1)}> * Item 1 * * setActive(2)}> * Item 3 * * * ); * } * ``` */ const Breadcrumbs = ({ type, children }: BreadcrumbsProps) => { if (type === "menu") { return (
{children}
); } return ( ); }; export interface BreadcrumbsItemProps extends PropsWithChildren { active?: boolean; onClick?: () => void; disabled?: boolean; } const Item = ({ active, onClick, children, disabled, }: BreadcrumbsItemProps) => { const { type } = useTypeContext(); if (type === "menu") { return ( ); } return (
  • {children} {}
  • ); }; Breadcrumbs.Item = Item; export default Breadcrumbs;