Commit Graph
123 Commits
Author SHA1 Message Date
Tommaso Casaburi 99c0bbfac5 perf(board): reduce mobile reverse-scroll jank 2026-03-31 19:47:36 +07:00
Tommaso CasaburiandGitHub c2e8e169c2 fix(accounts): adapt 5chan to compact account history hooks (#1118)
* chore(cursor): use composer-2 for subagents

* fix(accounts): adapt 5chan to compact account history hooks

* fix(accounts): address 5chan account-history review findings
2026-03-20 21:25:57 +08:00
Tommaso CasaburiandGitHub aedee9fb83 feat(archive): implement comment.archived and add archive page (#1074)
* feat(archive): implement comment.archived and add archive page

Add isCommentArchived() utility, /board/:boardIdentifier/archive route,
archive view with filtered feed, and UI integration (board buttons, edit
menu, catalog row, post). Archived indicator on catalog and posts.

* fix(archive): address review feedback from Bugbot and CodeRabbit

Add missing i18n keys (archived, thread_archived, view, loading_archive),
add /archive/settings route, replace hardcoded English in archive.tsx, and
fix mobile test state.
2026-03-13 16:06:36 +08:00
Tommaso CasaburiandGitHub d7703953fb refactor: migrate 5chan to the community hooks API (#1073)
* refactor(community-api): migrate 5chan to community hooks

* fix(review): address PR feedback

* fix(review): preserve legacy board context fallbacks

* fix(review): address latest bot feedback

* fix(review): use communityAddress in edit menu privileges
2026-03-13 13:25:10 +08:00
Tommaso CasaburiandGitHub fe55e6f332 fix(quotes): resolve external quote links across boards (#1064) 2026-03-12 17:41:11 +08:00
plebeius 417482060d refactor: org name changed from bitsocialhq to bitsocialnet 2026-03-09 17:01:35 +08:00
plebeius a1423b8c5f fix missing button styling 2026-03-07 20:48:53 +08:00
plebeius e80a73663f feat(subscriptions): use useAccountSubplebbitAddresses for deduplicated addresses
Integrate bitsocial-react-hooks#16: replace raw useAccountsStore access with
useAccountSubplebbitAddresses so .eth/.bso aliases are deduplicated under .bso.
2026-03-07 16:50:24 +08:00
plebeius 4508f589dd chore(deps): migrate from pkc-react-hooks to bitsocial-react-hooks 2026-03-05 17:14:23 +08:00
plebeius 1a4e8a624b feat(board): add mobile footer with Start a New Thread, Top, Refresh, pagination, Catalog, Load More 2026-03-01 20:45:26 +08:00
plebeius 79fd6bacd3 fix(board): prevent cached Board from stripping accountCommentIndex on /pending/N 2026-02-28 21:04:44 +08:00
plebeius e556a9e662 chore(deps): replace plebbit/plebbit-react-hooks with bitsocialhq/pkc-react-hooks
bitsocialhq/pkc-react-hooks is a fork of plebbit-react-hooks that we're maintaining temporarily as an attempt to modernize the original repository using AI tools, possibly merging changes back into plebbit-react-hooks, which should also be rebranded to pkc-react-hooks eventually, under the org pkcprotocol.
2026-02-28 15:02:56 +08:00
plebeius 6e08203ce6 perf(feed): reduce Virtuoso overscan and memoize itemContent for multiboard views 2026-02-26 17:27:58 +08:00
plebeius 9b538f324d perf(board): disable Virtuoso when single-board pagination is on 2026-02-25 19:16:00 +08:00
plebeius 15d8103391 fix(board-pagination): hide pagelist in multiboards, right-align style selector 2026-02-24 21:18:51 +08:00
plebeius 925297bc3a refactor footer 2026-02-23 20:50:30 +08:00
plebeius 849ff18a8b fix(board): add computeItemKey to Virtuoso to prevent media flash on page change
Without `computeItemKey`, Virtuoso uses index-based keys so React reuses DOM nodes across pages, causing `<img>` elements to briefly flash old media before loading new sources.
2026-02-23 20:24:37 +08:00
plebeius 0ea7356523 refactor(feed): remove "Newer threads available" banner
Removed the newer threads banner and refresh button from catalog and board
footers. Deleted newer_threads_available translation key from all languages.
2026-02-23 19:46:30 +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 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 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 71fdbef1ea fix(feeds): force infinite scroll on multiboards and canonicalize page URLs 2026-02-22 14:24:45 +08:00
plebeius 035ffd6414 Update board.tsx 2026-02-21 19:47:58 +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 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 63ee8aa168 refactor: rebrand default subplebbits to 5chan directories 2026-01-28 16:51:27 +08:00
plebeius eb8e226ff1 perf: isolate IPFS state updates in board and catalog views to prevent excessive re-renders 2026-01-13 17:21:30 +01:00
plebeius c0c6e9ee31 perf(feeds): use hasMore instead of length check for conditional virtualization 2026-01-13 17:01:51 +01:00
plebeius 122b17790a fix(views): display useSubplebbit and useComment errors in board, post, and mod-queue views 2026-01-12 17:59:03 +01:00
plebeius 4c4e1209aa fix(board): subscribe to transient state and error fields separately 2026-01-03 16:04:33 +01:00
plebeius fa32833b2a perf(components): prevent rerenders from updatingState
Use Zustand selectors with custom equality functions to only subscribe to specific fields needed by components, avoiding unnecessary rerenders when transient state like updatingState changes. Extract offline indicators into separate components to isolate rerenders. Memoize card components in catalog and popular threads views.
2026-01-02 16:42:16 +01:00
plebeius 652385561b feat(all-feed): add NSFW/SFW filter 2025-12-29 16:18:59 +01:00
plebeius 5aa1eaf13a fix(views): use directory codes in document titles and fix order 2025-12-28 23:13:25 +01:00
plebeius 34bebda4f7 fix eslint warnings 2025-12-23 19:21:48 +01:00
plebeius 5e79ce91b6 refactor: remove description and rules mock posts
Removed all fake posts for subplebbit description and rules, including dedicated routes, components, and all related logic across the codebase. Board admins can now pin regular posts if they want to provide a description.
2025-12-23 19:14:25 +01:00
plebeius 198b6135da fix: show cached feed time filter in UI 2025-12-08 23:52:13 +01:00
plebeius 1a6ac4a2be fix: use stable time filter for virtuoso state key in cached feeds 2025-12-08 23:32:42 +01:00
plebeius 896ca4ad13 perf: implement LRU-cached persistent feed mounting to eliminate Virtuoso flash
Keep Board/Catalog feeds mounted outside React Router's control to prevent
Virtuoso from remounting when navigating to/from post pages. The feed is
hidden via CSS when viewing posts and shown again when returning, eliminating
the visible flash/displacement that occurred during scroll restoration.

- Add FeedCacheContainer to manage LRU cache of 2 feeds
- Modify Board/Catalog to accept cache props and visibility state
- Add route utilities for feed/post route detection
2025-12-08 22:40:16 +01:00
plebeius 9e13292ae3 fix: reset board scroll on link nav
Force scroll-to-top on link navigation while keeping POP restores, and scope Virtuoso keys per pathname to avoid cross-board scroll leakage.
2025-12-08 13:03:25 +01:00
plebeius 12101fe75e feat: add Multiboards category with /subs/ and /all/ 2025-11-12 16:35:38 +01:00
plebeius e3e25995d6 feat(board): add more_threads_last_year suggestion 2025-11-08 15:56:32 +01:00
plebeius b886cbdf3b fix(routing): handle empty boardPath and resolve directory codes 2025-11-07 18:54:45 +01:00
plebeius d78fed1fda refactor(routing): migrate to directory-based board routing 2025-11-07 12:50:58 +01:00
plebeius 1360dd8348 feat: rename plebchan to 5chan 2025-10-17 23:30:35 +02:00
plebeius b10ada55e7 perf: eliminate redundant derived state in board and post views 2025-10-16 23:13:18 +02:00
Tom (plebeius.eth) 9fbfcb3630 fix: errors could be displayed unnecessarily 2025-06-03 22:02:54 +02:00
Tom (plebeius.eth) 64c857fb9d chore(package.json): upgrade plebbit-react-hooks 2025-03-05 22:05:20 +01:00
Tom (plebeius.eth) ba5753d85e feat: add p/mod feed for all subs the user moderates 2025-03-05 17:38:34 +01:00