import { Show } from "solid-js"; import { User } from "stoat.js"; import { styled } from "styled-system/jsx"; import { useTime } from "@revolt/i18n"; import { Avatar, CategoryButton, IconButton, iconSize } from "@revolt/ui"; import MdCakeFill from "@material-design-icons/svg/filled/cake.svg?component-solid"; import MdEdit from "@material-design-icons/svg/outlined/edit.svg?component-solid"; export function UserSummary(props: { user: User; showBadges?: boolean; bannerUrl?: string; onEdit?: () => void; }) { const dayjs = useTime(); const bannerStyle = () => props.bannerUrl ? { "background-image": `linear-gradient(color-mix(in srgb, var(--md-sys-color-surface-container-low) 70%, transparent), color-mix(in srgb, var(--md-sys-color-surface-container-low) 70%, transparent)), url("${props.bannerUrl}")`, color: "black", } : { background: `var(--md-sys-color-primary-container)`, color: "var(--md-sys-color-on-primary)", }; return ( {props.user.displayName} {props.user.username}#{props.user.discriminator} {/* */} ); } const AccountBox = styled("div", { base: { display: "flex", padding: "var(--gap-lg)", flexDirection: "column", backgroundSize: "cover", backgroundPosition: "center", }, }); const ProfileDetails = styled("div", { base: { display: "flex", gap: "var(--gap-lg)", alignItems: "center", }, }); const Username = styled("div", { base: { flexGrow: 1, display: "flex", flexDirection: "column", color: "var(--md-sys-color-on-secondary-container)", // Display Name "& :nth-child(1)": { fontSize: "18px", fontWeight: 600, }, // Username#Discrim "& :nth-child(2)": { fontSize: "14px", fontWeight: 400, }, }, }); const BottomBar = styled("div", { base: { display: "flex", }, }); const DummyPadding = styled("div", { base: { flexShrink: 0, // Matches with avatar size width: "58px", // Matches with ProfileDetails marginInlineEnd: "var(--gap-lg)", }, }); const ProfileBadges = styled("div", { base: { display: "flex", gap: "var(--gap-sm)", width: "fit-content", padding: "var(--gap-md)", borderRadius: "var(--borderRadius-md)", fill: "var(--md-sys-color-on-secondary)", background: "var(--md-sys-color-secondary)", }, });