import Sheet from "@/components/sheet/sheet"; import { useAuth } from "@/contexts/auth-context"; import { Flex, Title, ActionIcon, Stack, Button, Box } from "@mantine/core"; import { PencilIcon, FootballHelmetIcon } from "@phosphor-icons/react"; import { useMemo } from "react"; import NameUpdateForm from "./name-form"; import PlayerAvatar from "@/components/player-avatar"; import { useSheet } from "@/hooks/use-sheet"; import { Player } from "../../types"; import PlayerHeadToHeadSheet from "../player-head-to-head-sheet"; interface HeaderProps { player: Player; } const Header = ({ player }: HeaderProps) => { const nameSheet = useSheet(); const h2hSheet = useSheet(); const { user: authUser } = useAuth(); const owner = useMemo(() => authUser?.id === player.id, [authUser?.id, player.id]); const name = useMemo(() => `${player.first_name} ${player.last_name}`, [player.first_name, player.last_name]); const authUserName = useMemo(() => { if (!authUser) return ""; return `${authUser.first_name} ${authUser.last_name}`; }, [authUser]); const fontSize = useMemo(() => { const baseSize = 28; const maxLength = 24; if (name.length <= maxLength) { return `${baseSize}px`; } const scaleFactor = Math.max(0.6, maxLength / name.length); return `${Math.floor(baseSize * scaleFactor)}px`; }, [name]); return ( <> {name} {!owner && authUser && ( )} ) }; export default Header;