import { CSSProperties } from "react"; import classNames from "classnames"; import { useC, Text, ThemeColor } from "../common"; import "./Menu.css"; import Icon from "../Icon"; export type MenuItem = | { type: "divider"; } | { type: "button"; text: Text; icon?: string; color?: ThemeColor; onClick: () => void; }; export type MenuItems = MenuItem[]; export type MenuProps = { items: MenuItems; onItemClicked?: () => void; className?: string; style?: CSSProperties; }; export default function Menu({ items, onItemClicked, className, style, }: MenuProps) { const c = useC(); return (
{items.map((item, index) => { if (item.type === "divider") { return
; } else { const { text, color, icon, onClick } = item; return (
{ onClick(); onItemClicked?.(); }} > {icon != null && } {c(text)}
); } })}
); }