import { Avatar as MantineAvatar, AvatarProps as MantineAvatarProps, Paper, Modal, Image, Group, Text, ActionIcon, } from "@mantine/core"; import { useState } from "react"; import { XIcon } from "@phosphor-icons/react"; interface AvatarProps extends Omit { name?: string; size?: number; radius?: string | number; withBorder?: boolean; disableFullscreen?: boolean; contain?: boolean; } const Avatar = ({ name, size = 35, radius = "100%", withBorder = true, disableFullscreen = false, contain = false, ...props }: AvatarProps) => { const [isFullscreenOpen, setIsFullscreenOpen] = useState(false); const hasImage = Boolean(props.src); const handleAvatarClick = () => { if (hasImage && !disableFullscreen) { setIsFullscreenOpen(true); } }; return ( <> { if (hasImage && !disableFullscreen) { e.currentTarget.style.transform = 'scale(1.02)'; } }} onMouseLeave={(e) => { e.currentTarget.style.transform = 'scale(1)'; }} onClick={handleAvatarClick} > setIsFullscreenOpen(false)} size="auto" centered withCloseButton={false} overlayProps={{ backgroundOpacity: 0.9, blur: 2, }} styles={{ content: { background: 'transparent', border: 'none', }, body: { padding: 0, }, }} >
setIsFullscreenOpen(false)} > {name} {name}
); }; export default Avatar;