feat(dashboard): add full-size media preview

This commit is contained in:
jjbrunton committed 2026-08-08 16:49:18 +01:00
1 parent c483c7b8be
commit 654bbda457
5 files changed
+71 -7

No files matched your search

@@ -5,22 +5,22 @@ interface MediaCardProps {
item: MediaItem;
isRevealed: boolean;
onToggleReveal(): void;
onOpenPreview(): void;
}
function formatMediaDate(timestamp: number): string {
return new Intl.DateTimeFormat(undefined, { dateStyle: 'medium', timeStyle: 'short' }).format(timestamp);
}
export function MediaCard({ item, isRevealed, onToggleReveal }: MediaCardProps) {
export function MediaCard({ item, isRevealed, onToggleReveal, onOpenPreview }: MediaCardProps) {
return (
<article className="media-card">
<div className="media-preview">
<img
alt={`Media from ${item.sender}`}
className={isRevealed ? 'media-image' : 'media-image is-blurred'}
loading="lazy"
src={item.urlPath}
/>
{isRevealed ? (
<button aria-label={`View media from ${item.sender} larger`} className="media-preview-button" onClick={onOpenPreview} type="button">
<img alt={`Media from ${item.sender}`} className="media-image" loading="lazy" src={item.urlPath} />
</button>
) : <img alt={`Media from ${item.sender}`} className="media-image is-blurred" loading="lazy" src={item.urlPath} />}
{!isRevealed ? <span className="privacy-label">Private media hidden</span> : null}
</div>
<div className="media-card-body">