import { QrCodeIcon } from '@heroicons/react/24/solid' import { useState } from 'react' import { useAppState } from '#components/AppShell/hooks/useAppState' import type { Item } from '#types/Item' interface ItemAvatarProps { item: Item big?: boolean extraLarge?: boolean showQrButton?: boolean onQrClick?: () => void } export function ItemAvatar({ item, big = false, extraLarge = false, showQrButton = false, onQrClick, }: ItemAvatarProps) { const appState = useAppState() const [imageLoaded, setImageLoaded] = useState(false) const imageSize = extraLarge ? 320 : 160 const avatar = (item.image && appState.assetsApi.url + item.image + `?width=${imageSize}&height=${imageSize}`) ?? item.image_external const hasAvatar = !!avatar // If no avatar but QR button should be shown, show only the QR button if (!hasAvatar && showQrButton) { return ( ) } if (!hasAvatar) return null const avatarSize = extraLarge ? 'tw:w-32' : big ? 'tw:w-16' : 'tw:w-10' return (