import { Avatar, ButtonBase, Divider, ListItemAvatar, ListItemIcon, ListItemText, MenuItem, } from "@suid/material"; import { Show, createUniqueId, type ParentComponent } from "solid-js"; import { Settings as SettingsIcon, Bookmark as BookmarkIcon, Star as LikeIcon, FeaturedPlayList as ListIcon, } from "@suid/icons-material"; import A from "~platform/A"; import Menu, { createManagedMenuState } from "~material/Menu"; import { createTranslator } from "~platform/i18n"; type StringRes = Record< "nav.bookmarks" | "nav.likes" | "nav.lists" | "nav.settings", string >; const ProfileMenuButton: ParentComponent<{ profile?: { account: { site: string; inf?: { displayName: string; avatar: string; username: string; id: string; }; }; }; }> = (props) => { const menuId = createUniqueId(); const buttonId = createUniqueId(); const [t] = createTranslator( async (code) => (await import(`./i18n/${code}.json`)) as { default: StringRes }, ); const [open, state] = createManagedMenuState(); const onClick = (event: { currentTarget: HTMLElement }) => { open(event.currentTarget.getBoundingClientRect()); }; const inf = () => props.profile?.account.inf; return ( <> {t("nav.bookmarks")} {t("nav.likes")} {t("nav.lists")} {props.children} {t("nav.settings")} ); }; export default ProfileMenuButton;