Portfolio: add filtering, URL sharing, and improved tag input

- Add category filters with dynamic counts that reduce as filters
  applied
- Add ?filter[category]=value URL params for filterable links
- Add ?img= timestamp param that bypasses filters to show specific image
- Update URL when opening/navigating/closing modal for shareable links
- Backend: add /api/portfolio/filters endpoint with filter logic
- Backend: add timestamp lookup fallback for GetImage endpoint
  Frontend:
- Portfolio page: filter dropdowns, keyboard nav, mobile improvements
- ImageUpload: live tag suggestions from API, arrow/Tab navigation,
  confirmation modal before upload, mobile-optimized touch targets
- Add scrollbar-hide utility and fix filter dropdown overflow
- Move Clear all button, add vertical separator on desktop
This commit is contained in:
2026-02-20 00:32:09 +00:00
parent dfd552b02f
commit 9259de9393
15 changed files with 1560 additions and 290 deletions
+7 -5
View File
@@ -77,16 +77,18 @@ services:
container_name: rustfs
restart: always
ports:
- "9001:9000" # Web console
- "9000:9000"
- "9001:9001"
environment:
- RUSTFS_ADMIN_ACCESS_KEY=minioadmin
- RUSTFS_ADMIN_SECRET_KEY=minioadmin
- RUSTFS_ADMIN_ACCESS_KEY=rustfsadmin
- RUSTFS_ADMIN_SECRET_KEY=rustfsadmin
- RUSTFS_ACCESS_KEY=rustfsadmin
- RUSTFS_SECRET_KEY=rustfsadmin
- RUSTFS_BUCKET=crussell
volumes:
- rustfs_data:/data
networks:
- appnet
command: >
bash -c "rustfs server /data --console-address :9000 --address :9000 --axum-server"
volumes:
pgdata: