-
-

-
Mulimago
-
- {activeHeap && (
-
-
- {activeHeap.name}
-
- )}
+
+

+
Mulimago
-
)
diff --git a/frontend/src/components/timeline/PhotoThumbnail.tsx b/frontend/src/components/timeline/PhotoThumbnail.tsx
index aaa85d5..2d20026 100644
--- a/frontend/src/components/timeline/PhotoThumbnail.tsx
+++ b/frontend/src/components/timeline/PhotoThumbnail.tsx
@@ -18,6 +18,9 @@ interface PhotoThumbnailProps {
isSelected: boolean
/** True when the photo belongs to the currently active heap. */
isInActiveHeap?: boolean
+ /** Name of the active heap. When set + isInActiveHeap, the basket
+ * badge expands into a name chip so the user knows which heap. */
+ activeHeapName?: string | null
onClick: (e: React.MouseEvent) => void
onDoubleClick?: (e: React.MouseEvent) => void
}
@@ -27,6 +30,7 @@ export function PhotoThumbnail({
size,
isSelected,
isInActiveHeap = false,
+ activeHeapName = null,
onClick,
onDoubleClick,
}: PhotoThumbnailProps) {
@@ -210,10 +214,15 @@ export function PhotoThumbnail({
{isInActiveHeap && (
-
+
+ {activeHeapName && (
+
+ {activeHeapName}
+
+ )}
)}
{photo.is_duplicate && (
diff --git a/frontend/src/components/timeline/Timeline.tsx b/frontend/src/components/timeline/Timeline.tsx
index 5e7c5b1..39eb1a5 100644
--- a/frontend/src/components/timeline/Timeline.tsx
+++ b/frontend/src/components/timeline/Timeline.tsx
@@ -196,7 +196,8 @@ export function Timeline() {
// Membership in the active heap (for the basket affordance). Subscribed
// once at this level so we don't have hundreds of thumbnails each
// subscribing to the same query.
- const { memberIds: activeHeapMembers } = useActiveHeapMembers()
+ const { memberIds: activeHeapMembers, activeHeap } = useActiveHeapMembers()
+ const activeHeapName = activeHeap?.name ?? null
// Build the flat virtualizer items: a mix of group headers and rows of
// photos. Date headers appear when sorted by a date field; tag headers
@@ -510,6 +511,7 @@ export function Timeline() {
size={THUMBNAIL_SIZE}
isSelected={selectedPhotos.includes(photo.id)}
isInActiveHeap={activeHeapMembers.has(photo.id)}
+ activeHeapName={activeHeapName}
onClick={(e) => {
if (e.shiftKey) {
selectRange(photo.id)