Commit Graph

112 Commits

Author SHA1 Message Date
TerryM
512fa53c2b feat: 首页热门区改为「社群常用资料」榜单(封面+名次,零数字)
- 新增 PopularRankList:前3名奖牌🥇🥈🥉 + 4·5灰序号,封面缩略图,
  类型·分类·更新时间,预览/下载按钮;与「最新更新」「官方推荐」版式区分
- 无封面时按资料类型渲染渐变+图标兜底(纯CSS),封面加载失败亦回退
- 分类名复用 cleanCategoryDisplayName,与全站一致(去掉括号后缀)
- i18n popularSection 改为 社群常用资料 / Community Favorites
- 新增后端接口契约文档 docs/specs/2026-05-29-popular-resources-section.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 14:53:52 +08:00
TerryM
4f6b4a498f fix: scope back-to-top to browse, speed up reveal, reset scroll on sort change
- BackToTop now only mounts on the /browse feed (covers all / latest /
  popular / search) instead of every route.
- Reveal animation duration cut 0.4s -> 0.25s so scrolled-in content
  appears faster.
- ScrollToTop also watches `search`, so switching between sort views on
  the same /browse path (e.g. 全部资料 <-> 热门资料) returns to the top.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 13:22:40 +08:00
TerryM
559c4f19c8 feat: image error placeholder + scroll-to-top on navigation
Image bubbles previously used the raw filename as alt text, so a failed
asset load exposed the file name in the broken-image box. Add a reusable
BubbleImage that renders an empty alt and falls back to a neutral
placeholder (ImageOff icon) on error; use it in the album, image, and
image-with-text bubbles, and drop the filename from their aria-labels.

Also add a global ScrollToTop that resets the window on route change so
desktop navigation matches mobile (e.g. clicking a category card no
longer lands at the bottom of the new page). Hash navigations are skipped
so #post-<id> deep-link scrolling still works.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 13:09:09 +08:00
TerryM
4464e6fdc5 fix: fall back to file icon when document thumbnail fails to load
Render the 52x52 preview with an empty alt and an onError handler, so a
broken thumbnail no longer shows the browser's broken-image box (which
leaked the raw filename) — it falls back to the file-type icon instead.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 13:08:16 +08:00
TerryM
b252fa113d feat: make entire recommended card clickable to jump to post bubble
Wrap the card in a stretched link overlay so clicking anywhere (not
just the title) navigates to /resource/:id and scrolls to the matching
bubble. Keep the download button above the overlay so it stays
clickable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 13:08:16 +08:00
TerryM
f73131dc03 style: apply prettier formatting to fix format:check
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 12:49:22 +08:00
TerryM
14c3defd23 feat: show attachment preview thumbnail in document bubble
Use thumbnailUrl/posterUrl (and the image url itself for image-type
attachments) inside the 52x52 box of the file/document bubble, falling
back to the file-type icon when no preview is available.

Also tune the deep-link scroll-mt offset (82px / 98px) so a targeted
bubble lands just below the sticky header.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 12:40:17 +08:00
TerryM
88a25b6ad4 feat: scroll to post bubble from recommended card + back-to-top button
Some checks failed
Deploy to Frontend Servers / deploy (push) Failing after 14s
Recommended cards already routed to /browse#post-<id>, but the stream had
no logic to scroll to the target bubble — and the post might not be paged
in yet. MessageStream now resolves the #post-<id> hash, auto-loads more
pages until the bubble renders, scrolls to it, and gives it a brief gold
highlight. Bubbles get scroll-mt so they clear the sticky header.

Also adds a global floating back-to-top button (BackToTop) mounted in
PublicLayout, shown after scrolling past 400px.

Bundles related staging UI work already present in the working tree.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 11:50:27 +08:00
TerryM
f7828d8776 Avoid search cache loading flicker 2026-05-28 23:17:49 +08:00
TerryM
320739f91b Add stale cache for public data 2026-05-28 23:09:18 +08:00
TerryM
5ae9647465 Add header reveal animations 2026-05-28 22:57:05 +08:00
TerryM
b59fd82006 Refine mobile dropdown close behavior 2026-05-28 22:41:23 +08:00
TerryM
b24529afc4 feat: enable category slug pages 2026-05-28 22:36:08 +08:00
TerryM
f183a401fc feat: enhance SEO with meta tags and sitemap, add DocumentMeta component 2026-05-28 22:28:23 +08:00
TerryM
6f901f48e1 feat: add mobile search panel 2026-05-28 18:51:55 +08:00
TerryM
5ca38a0eca fix: overlay lightbox captions without shifting image 2026-05-28 18:40:17 +08:00
TerryM
ef1f3163eb fix: use 16:9 home banner aspect 2026-05-28 18:38:26 +08:00
TerryM
5036c930bb fix: stabilize desktop recommendation layouts 2026-05-28 17:31:32 +08:00
TerryM
5fec82dbba fix: route home view-all links 2026-05-28 16:49:30 +08:00
TerryM
4c15e01460 fix: keep video downloads visible while playing 2026-05-28 16:37:00 +08:00
TerryM
ca6dfe0fe1 fix: use backend covers for recommendations 2026-05-28 16:33:16 +08:00
TerryM
6a998c0186 feat: separate popular browse navigation 2026-05-28 16:28:50 +08:00
TerryM
9d977be2d2 feat: link nav to home sections 2026-05-28 15:55:37 +08:00
TerryM
28b0ef3f9a feat: update figma category card icons 2026-05-28 15:49:08 +08:00
TerryM
3ed3d00655 feat: align home category and recommendation figma assets 2026-05-28 15:36:24 +08:00
TerryM
0e98428f64 feat: polish figma mobile home and nav 2026-05-28 15:32:15 +08:00
TerryM
e65c473369 feat: align figma browse and category sections 2026-05-28 15:11:13 +08:00
TerryM
16f3f06431 refactor: remove dead /api/resources download fallback from RecommendedCard
All checks were successful
Deploy to Frontend Servers / deploy (push) Successful in 19s
2026-05-28 10:53:11 +08:00
TerryM
49f61b89f1 feat: apply figma browse mobile redesign 2026-05-28 10:41:53 +08:00
TerryM
02c9d454c1 swap home banners, 3s autoplay, animated rec scroll thumb 2026-05-28 09:16:32 +08:00
TerryM
4a718926da fix: show download buttons on video albums
All checks were successful
Deploy to Frontend Servers / deploy (push) Successful in 19s
2026-05-27 15:37:46 +08:00
TerryM
7e70798d68 fix: show download buttons on image albums
All checks were successful
Deploy to Frontend Servers / deploy (push) Successful in 19s
2026-05-27 15:30:40 +08:00
TerryM
f5e858659f feat: add media overflow pickers 2026-05-27 15:28:51 +08:00
TerryM
23a7807bef feat: support multi-video post bubbles 2026-05-27 15:19:31 +08:00
TerryM
1ad599c3ac Prevent mobile horizontal scroll black edge 2026-05-27 15:18:27 +08:00
TerryM
d3d054ad32 Toggle lightbox captions on image click 2026-05-27 13:37:14 +08:00
TerryM
a6fda3cd03 Align compact message bubbles within media column 2026-05-27 13:16:40 +08:00
TerryM
565784b4bb Shrink non-media message bubbles to content 2026-05-27 12:58:35 +08:00
TerryM
1f3acca211 Unify message bubble width
All checks were successful
Deploy to Frontend Servers / deploy (push) Successful in 21s
2026-05-27 12:46:31 +08:00
TerryM
902300933e Share media attachment download pill 2026-05-27 12:35:47 +08:00
TerryM
8120f6b05c feat: add expandable filter chips 2026-05-27 12:35:47 +08:00
TerryM
54841a4ed9 Show attachment download progress 2026-05-27 12:35:47 +08:00
TerryM
9453777dba Use backend endpoint for attachment downloads 2026-05-27 12:35:47 +08:00
TerryM
68cbce9cf1 style: make message cards fluid width 2026-05-27 12:35:47 +08:00
TerryM
7cd48f767e style: align and widen message stream cards 2026-05-27 12:35:47 +08:00
TerryM
3f0a395f40 feat: unify search with browse page 2026-05-27 12:35:47 +08:00
TerryM
f169144378 add swipeable banner slider with autoplay 2026-05-27 12:35:47 +08:00
TerryM
7546faf15e remove wallet functionality 2026-05-27 10:40:02 +08:00
TerryM
54f71c6ab3 feat: refine language menu and lightbox caption 2026-05-26 18:37:17 +08:00
TerryM
532f0112fd feat: polish message attachment downloads 2026-05-26 18:10:34 +08:00