mirror of
https://github.com/thegeneralist01/archivr
synced 2026-07-22 03:05:32 +02:00
feat: tweet/article preview quality pass
HTML entities: decode > < & etc. on sliced segments only (entity offsets index the stored string; decoding before slicing shifts them) Image lightbox: click any tweet/thread/article image to open full-screen viewer; cmd+click follows <a> to open in new tab; arrow-key + ‹ › nav; Escape closes; 1/N counter; ↗ open-in-new-tab link Multi-image grid: 2 photos → side-by-side (180px rows); 3 → left spans both rows; 4 → 2×2 (140px rows); single image unchanged Empty media grid ghost: build photos/videoItems arrays first, render .mediaGrid div only when at least one item resolved (advisory: never gate on raw media.length when map items can all return null) QT indicator: ↻ QT badge on tweet.is_quote_status === true entries Modal shrinks for short content: height: 88vh → max-height: 88vh; .preview-modal-body gets max-height: calc(88vh - 52px) so long threads still scroll (advisory: don't rely on flex:1 once parent has no fixed height) Video scrollbar leak: .preview-modal-body overflow: auto → hidden; each child (tweet-wrap, video-wrap, iframe) manages its own scroll surface Styled thin scrollbar on .preview-tweet-wrap (matches workspace rail) ArticleRenderer: cover image and body images are lightbox-clickable; opts thread through renderBlocksJSX → renderBlockJSX → renderAtomicJSX
This commit is contained in:
parent
060dcfb531
commit
e7f58bb7ad
5 changed files with 378 additions and 101 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue