57ce0ff2aa
feat: Slideshow optimization with intelligent preloading and chronological sorting
...
- Add intelligent image preloading (useImagePreloader hook)
- Eliminate duplicate image display issue
- Remove visible loading delays in slideshow
- Implement chronological group sorting (year → upload date)
- Add cache management with LRU strategy (max 10 images)
- Add 3s timeout for slow connections with graceful fallback
- Add debug logging in development mode
Performance improvements:
- 0ms load time for pre-cached images (vs 200-1500ms before)
- Seamless transitions with no visual artifacts
- Better UX on production servers with slower internet
Fixes:
- Fixed: Duplicate image display in slideshow (network latency)
- Fixed: Flickering transitions between images
- Fixed: Random group order replaced with chronological
Files changed:
- NEW: frontend/src/hooks/useImagePreloader.js
- MODIFIED: frontend/src/Components/Pages/SlideshowPage.js
- UPDATED: README.md, CHANGELOG.md, docs/FEATURE_PLAN-preload-image.md
2025-11-09 13:23:27 +01:00
8323cec156
feat: Add image descriptions to Slideshow and Public views
...
- Slideshow: Display imageDescription below image (centered overlay)
- PublicGroupImagesPage: Show descriptions in single-image mode
- ImageGalleryCard: Support description display in single-image mode
Phase 5-6 complete: Slideshow + Public Display Integration
2025-11-07 18:36:57 +01:00
aec9db2a76
feat(frontend): integrate preview images in gallery components
...
- Add imageUtils.js helper with getImageSrc() and getGroupPreviewSrc()
- Update ImageGalleryCard to use preview images for galleries
- Update ModerationGroupsPage to show preview images in modal
- Update ModerationGroupImagesPage to use preview images
- Update PublicGroupImagesPage to pass all image fields
- SlideshowPage continues using original images (full quality)
- Update nginx.dev.conf with /api/previews and /api/download routes
- Update start-dev.sh to generate correct nginx config
- Fix GroupRepository.getAllGroupsWithModerationInfo() to return full image data
- Remove obsolete version from docker-compose.override.yml
- Update TODO.md: mark frontend cleanup as completed
Performance: Gallery load times reduced by ~96% (100KB vs 3MB per image)
2025-10-31 18:20:50 +01:00
5b4855a5f5
refactor(frontend): migrate SlideshowPage to MUI sx
2025-10-29 21:41:02 +01:00
5c6f0ce061
feat(frontend): migrate to MUI v5 (phase 4 step 1)
...
- Replace @material-ui/core -> @mui/material
- Replace @material-ui/icons -> @mui/icons-material
- Switch makeStyles imports to @mui/styles (compat)
- Add @mui/material, @mui/icons-material, @mui/styles, @emotion/react, @emotion/styled to package.json
Notes: Kept makeStyles via @mui/styles for incremental migration; next: replace makeStyles usage with sx/styled where needed.
2025-10-29 20:10:33 +01:00
5ba463427b
feat(frontend): upgrade react-router-dom 5→6 (Phase 3)
...
- Update package.json: react-router-dom ^5.2.0→^6.28.0
- Migrate App.js: Switch→Routes, component→element props, path="*" for 404
- Migrate 5 pages: useHistory→useNavigate, history.push()→navigate()
- GroupsOverviewPage.js (4x navigate)
- ModerationGroupsPage.js (1x navigate)
- ModerationGroupImagesPage.js (2x navigate)
- PublicGroupImagesPage.js (import updated)
- SlideshowPage.js (4x navigate + keyboard handler)
- Regenerate package-lock.json with react-router v6
✅ Tested: Production build 254.46 KB gzip (+1.17 KB)
✅ Manual test: Navigation, moderation routing, slideshow ESC - all working
Phase 3 complete: Modern react-router v6 with improved routing API.
2025-10-28 22:59:59 +01:00
48bf6f2074
Initial Commit
2025-10-15 21:33:00 +02:00