From 708c0336277c9d2c0edb8df72ae9d72652f93909 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 14 May 2026 12:32:11 -0400 Subject: [PATCH] feat(fc2a): add GalleryGrid with infinite scroll and date headers Grid uses CSS grid auto-fill with 160px minimums so it adapts naturally from phone to large displays. Date headers render once per (year, month) group; the API's date_groups payload tells us where to slot them without client-side grouping. IntersectionObserver with rootMargin: 600px loads the next page well before the sentinel reaches the viewport. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/components/gallery/GalleryGrid.vue | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 frontend/src/components/gallery/GalleryGrid.vue diff --git a/frontend/src/components/gallery/GalleryGrid.vue b/frontend/src/components/gallery/GalleryGrid.vue new file mode 100644 index 0000000..ea9c1f3 --- /dev/null +++ b/frontend/src/components/gallery/GalleryGrid.vue @@ -0,0 +1,99 @@ + + + + +