From a9095727bfa0dfde4287c37d0297bbc47cf87e61 Mon Sep 17 00:00:00 2001 From: jimmy Date: Wed, 3 Jun 2026 00:16:38 +1200 Subject: [PATCH] Fix thumbnail loading and startup gallery refresh. Refresh gallery metadata after thumbnail generation so new thumb URLs are available immediately, and lazy-load gallery thumbnails with IntersectionObserver to avoid fetching all images on initial page load. Co-authored-by: Cursor --- app/internal/handlers/handlers.go | 11 +++++++++ app/templates/gallery.templ | 4 ++- app/templates/layout.templ | 41 +++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/app/internal/handlers/handlers.go b/app/internal/handlers/handlers.go index 922d89b..897de89 100644 --- a/app/internal/handlers/handlers.go +++ b/app/internal/handlers/handlers.go @@ -70,6 +70,17 @@ func New(imagesDir, staticDir string, mailCfg *mail.Config) (*Server, error) { } else { log.Print("gallery thumbnails: ready") } + // Thumbnail URLs are resolved during gallery.List. Re-list after derivative + // generation so newly-created thumbs appear immediately on first load. + if refreshed, err := gallery.List(imagesDir); err != nil { + log.Printf("gallery refresh after thumbnails: %v", err) + } else { + srv.Images = refreshed + if hero, hasHero := gallery.SelectHero(refreshed); hasHero { + srv.Hero = hero + srv.HasHero = true + } + } return srv, nil } diff --git a/app/templates/gallery.templ b/app/templates/gallery.templ index d384c61..c518237 100644 --- a/app/templates/gallery.templ +++ b/app/templates/gallery.templ @@ -22,7 +22,9 @@ templ GalleryGrid(images []gallery.Image) { > if img.ThumbURL != "" { { + }