Renders an entity avatar that displays either an authenticated image or an initials-based fallback when the image is unavailable or fails to load. ## Key Components ### `EntityImage` A client-side React component that handles image loading with graceful degradation. **Props (`EntityImageProps`):** | Prop | Type | Description | |---|---|---| | `src` | `string \| null` | Image URL (resolved through auth hook) | | `alt` | `string` | Alt text; also used as initials source | | `fallbackText` | `string` | Overrides `alt` as the initials source | | `className` | `string` | Additional CSS classes | **Behavior:** - Resolves authenticated image URLs via `useAuthedImageSrc` - Resets error state when the resolved source changes - Shows an initials badge (via `getFirstLastInitials`) when the image fails or is absent - Falls back to `"?"` when no initials can be derived - Responsive sizing: `52px` on mobile, `60px` on `md+` breakpoints ## Usage Example ```typescript // Basic usage with an image URL // With a custom fallback text for initials // Initials-only (no src provided) — renders "JD" ``` ## Notes - Requires the `useAuthedImageSrc` hook to inject auth headers/tokens into image requests - Initials are derived using `getFirstLastInitials`, which extracts first and last name initials from the provided text - Images use `object-contain` to preserve aspect ratio within the fixed square bounds