Commit Graph
2376 Commits
Author SHA1 Message Date
plebeius f9325b907c fix(a11y): add translated aria-label for pagination, aria-label for close button 2026-02-23 19:00:54 +08:00
plebeius 6c1f535efe fix(components): fix colSpan, hook usage, special theme reset, unused imports, CSS color 2026-02-23 18:57:55 +08:00
plebeius 239f3be199 fix(routing): enforce numeric page param for board feed 2026-02-23 18:57:51 +08:00
plebeius 91667966f8 perf(feeds): defer useReplies, Virtuoso for all paths, CLS fixes, memo
Defer useReplies to hover-only in CatalogPost. Memo CatalogRow and Post. Remove useWindowWidth and autoUpdate from CatalogPost. Replace display:none with opacity for images. Add width/height to img tags in catalog-row and comment-media. Use Virtuoso for all rendering paths (infinite, finite, pagination). Optimize filteredComments with Set lookup. Add Vite manual chunks for markdown, virtuoso, floating-ui.
2026-02-23 18:51:42 +08:00
plebeius 34fdae1e97 perf(app): enable FeedCacheContainer always, lazy-load modals
FeedCacheContainer now always renders since Virtuoso is used for all feed modes (infinite scroll and pagination). Feed routes are always rendered by FeedCacheContainer; route elements are null. Outlet only renders for thread, pending, and modqueue routes. Removed clearFeeds effect. Modals lazy-loaded with Suspense fallback=null for bundle splitting.
2026-02-23 18:51:36 +08:00
plebeius 24d7b3e057 feat(catalog): add reply-count sorting mode 2026-02-23 17:09:26 +08:00
plebeius 4433834c1c refactor(ui): rename topbar to boardsbar and add desktop footer for board, thread, and catalog 2026-02-23 16:47:51 +08:00
plebeius 6ed7d74928 fix link 2026-02-23 14:16:36 +08:00
plebeius 0cb7b1a970 feat(blotter): replace board stats with changelog-backed blotter
Add static blotter snapshot, route /blotter, compact board blotter (Hide/Show All).
Include yarn blotter tooling and AGENTS rules so every changelog version has a
release line. 4chan-style table UI, subplebbit→board and plebchan→5chan in messages.
2026-02-22 19:37:49 +08:00
plebeius a13c72f888 perf: defer board reply fetching and remove nested mobile backlink fetch
Split useReplies in post-desktop.tsx and post-mobile.tsx into preview/full modes so board cards avoid full REPLIES_PER_PAGE fetches by default. Added replies-preview-utils.ts and switched mobile backlinks to use precomputed directRepliesByParentCid map instead of per-reply useReplies.
2026-02-22 16:53:01 +08:00
plebeius 4647e6a090 Update board-pagination.tsx 2026-02-22 16:07:46 +08:00
plebeius 8e6d81ba59 refactor(multiboards): remove time filter system end-to-end
Backend retention now keeps only recent posts, making the time filter UI
and newerThan filtering obsolete. Deleted use-time-filter hook, canonical
multiboard routes only, removed footer suggestions, dropped i18n keys.
2026-02-22 15:57:42 +08:00
plebeius f521bdbe33 fix(posts): Board link in multiboard views (/all/, /subs/, /mod/) 2026-02-22 15:02:31 +08:00
plebeius 71fdbef1ea fix(feeds): force infinite scroll on multiboards and canonicalize page URLs 2026-02-22 14:24:45 +08:00
plebeius 445b271982 feat(board-buttons): add Bottom button when infinite scroll is disabled 2026-02-21 20:31:17 +08:00
plebeius 035ffd6414 Update board.tsx 2026-02-21 19:47:58 +08:00
plebeius 1067ff39e8 fix(catalog): align pagination and postsPerPage with board view
Use useBoardFeedPageSize and useDirectoryByAddress so catalog respects
directory postsPerPage, caps feed to guiPostsPerPage * 10 in non-infinite
mode, and conditionally renders Virtuoso based on enableInfiniteScroll.
2026-02-21 13:14:50 +08:00
plebeius 082076ba83 refactor(feed): gate feed cache to infinite scroll mode 2026-02-21 12:14:10 +08:00
plebeius 60d2f6804d feat(board): default pagination with optional infinite scroll and URL-based page routing 2026-02-20 20:16:11 +08:00
plebeius b20aae8244 fix(upload-automation): harden android and electron failure handling
Updated Android/Electron upload paths to fail deterministically and report consistent stage details, while removing unsafe stage casting and path/package mismatches. This keeps postimages automation behavior intact and makes failures easier to diagnose.
2026-02-20 16:52:35 +08:00
plebeius 15d608764b fix: chain providers, i18n, dedup isWebRuntime, and a11y label
Conditionally build `chainProviders` so empty `urls` arrays are never passed downstream. Replace hardcoded "Chain ticker: " with `capitalize(t('chain_ticker'))` and add the translation key to all locales. Remove the duplicate `isWebRuntime` in `media-hosting-settings.tsx` in favor of the shared implementation in `show-upload-controls`. Add `aria-label` to the directory codes input in `TopbarEditModal`.
2026-02-20 16:23:09 +08:00
plebeius 64c89533f0 feat(rules): add URL params for direct links to board rules
Support /rules/:boardIdentifier (e.g. /rules/pol, /rules/somedomain.eth).
Selection updates URL; rules page always uses yotsuba theme.
2026-02-20 16:12:52 +08:00
plebeius cb0ab3a698 feat(rules): render markdown in board rules display 2026-02-20 16:07:00 +08:00
plebeius 967a2cbc31 fix(use-state-string): sanitize board feed loading wording
Never show 'Downloading thread...' in board feed footer. Backend can surface
thread-level state; sanitize to 'Downloading board' on single-board feeds.
2026-02-20 14:51:39 +08:00
plebeius ebb5ae464f fix(post): ensure OP user ID tooltip shows at least 1 post in board view 2026-02-20 14:46:41 +08:00
plebeius 21d214685d fix(post): show Pending for user ID when reply pending on pseudonymity boards 2026-02-20 14:38:18 +08:00
plebeius ee5b7ffd23 fix spacing 2026-02-19 18:38:12 +08:00
plebeius 274cb6a22c refactor(settings-modal): move crypto settings under Bitsocial Account section 2026-02-19 18:37:43 +08:00
plebeius d1f7f92353 Merge branch 'refactor/remove-nft-avatar' into development 2026-02-19 17:53:05 +08:00
plebeius bbddb9ce17 feat(file-upload): normalize Android Capacitor rejection and surface attempt details in UI 2026-02-19 17:49:23 +08:00
plebeius f1f5789118 feat(media-hosting): extend ProviderAttempt with stage/elapsedMs/matchedSelectors and parse plugin errors 2026-02-19 17:49:18 +08:00
plebeius 981940731b refactor: remove NFT avatar functionality
Removes avatar-settings component, avatar-visibility store, and all
avatar rendering from posts. Strips avatar from account JSON, renames
NFT gateway label to media IPFS gateway, removes Polygon RPC and
hide-avatars toggle. Deletes 6 avatar-related translation keys.
2026-02-19 17:40:10 +08:00
plebeius 1d133b812d refactor(settings): remove Hide threads without images setting
5chan boards enforce requirePostLinkIsMedia/requirePostLink at subplebbit level; client-side filter redundant.
2026-02-19 15:34:13 +08:00
plebeius 11697db1ec refactor(settings): remove blocked addresses setting and block user/board feature
Obsolete with pseudonymity mode (user IDs randomized per board) and custom boards
requiring explicit search/subscribe. Unsubscribe suffices for boards.
2026-02-19 15:30:55 +08:00
plebeius 137241705a refactor(settings): rename subscriptions setting to board subscriptions 2026-02-19 15:25:46 +08:00
plebeius 410b988fbd fix(upload): resolve electron file-path fallback and android provider automation stalls 2026-02-19 13:18:15 +08:00
plebeius afdf129c3e fix: resolve android plugin registration and electron upload runtime detection regressions 2026-02-18 20:13:28 +08:00
plebeius 96a4aaec0e feat(media-hosting): add multi-provider configurable upload with fallback
Add Random/Preferred/None modes, preferred provider selection, and provider-order fallback. Catbox/Imgur/PostImages on Android via WebView; Electron CDP automation for Imgur/PostImages. Hide upload controls on web runtime.
2026-02-18 18:51:02 +08:00
plebeius 2669c9ab09 refactor(settings): rename p2p options to advanced settings 2026-02-18 17:29:41 +08:00
plebeius f5eba9adbe fix(error-display): reset showAfterDelay when error clears 2026-02-18 16:19:50 +08:00
plebeius e0ed510fc6 perf(react-doctor): fix compiler-blocking patterns, raise score 72→81
Replace sync setState-in-effect with keyed remount and render-derived patterns in app, error-display, topbar-edit-modal, catalog-filters; use useCurrentTime() instead of Date.now() in hot paths; fix conditional hooks, passive scroll listeners, lodash path imports.
2026-02-18 15:31:01 +08:00
plebeius 96f11b3e26 feat(settings): add media hosting settings and provider-based upload gating 2026-02-17 18:57:54 +08:00
plebeius 45a6ff0bab feat(directories): implement features.noSpoilers and features.noSpoilerReplies for board-specific spoiler checkbox 2026-02-17 17:35:53 +08:00
plebeius 2733ab260b fix(reply-modal): remove link type previewer that displaces UI 2026-02-17 17:21:13 +08:00
plebeius 69231f7bdc Update 5chan-directories.json 2026-02-17 17:18:27 +08:00
plebeius dbbc83d369 feat: add shared cross-platform catbox media upload flow
Added `useFileUpload()` and `uploadToCatbox()` to centralize upload behavior and remove duplicated upload code from `post-form.tsx` and `reply-modal.tsx`. The flow now routes Android to `FileUploader`, Electron to hidden-input + catbox upload, and web to a translated fallback alert with consistent upload UI state.
2026-02-17 16:44:16 +08:00
plebeius 9c558d21c1 fix(modqueue): enforce role-gated access with not-allowed view 2026-02-16 19:17:38 +08:00
plebeius bb4be3ff6b fix(challenge-utils): format challenge errors with board identifier 2026-02-16 15:13:52 +08:00
plebeius 64a5a6a526 chore: add missing key, fix translation 2026-02-15 20:40:06 +08:00
plebeius f4727641b4 chore: add translation 2026-02-15 20:35:20 +08:00