({ project, className }: ProjectIconProps)
| 15 | } |
| 16 | |
| 17 | export function ProjectIcon({ project, className }: ProjectIconProps) { |
| 18 | const { src, hasError } = useProjectIcon(project) |
| 19 | const [imgError, setImgError] = useState(false) |
| 20 | const handleError = useCallback(() => setImgError(true), []) |
| 21 | |
| 22 | if (!project || hasError || !src || imgError) { |
| 23 | return ( |
| 24 | <FolderOpen |
| 25 | className={cn("text-muted-foreground flex-shrink-0", className)} |
| 26 | /> |
| 27 | ) |
| 28 | } |
| 29 | |
| 30 | return ( |
| 31 | <img |
| 32 | src={src} |
| 33 | alt="" |
| 34 | className={cn("rounded-sm flex-shrink-0 object-cover", className)} |
| 35 | onError={handleError} |
| 36 | /> |
| 37 | ) |
| 38 | } |
nothing calls this directly
no test coverage detected