Commit Graph
140 Commits
Author SHA1 Message Date
plebeius 14c6bf8f3a fix(replies): make thread replies update instantly for pending and confirmed states
Aligned 5chan’s flat thread reply behavior with plebones by using `useReplies` in flat-old mode with appending account comments and rendering from `updatedReplies` when available. Reply rows now subscribe to `useAccountComment` by `index`, so pending replies transition to confirmed automatically after challenge verification without requiring manual update or refresh.
2026-02-13 19:42:38 +08:00
plebeius 98f7a52e9b fix(post-status): base pending and failed labels on cid and state
Pending now means cid is missing, failed now means state is 'failed'.
2026-02-13 17:48:27 +08:00
plebeius 3d2dbbf75c perf: remove reply backlink subscription churn
Replaced per-reply useReplies subscriptions in backlink rendering with a precomputed directRepliesByParentCid map from thread-level filteredReplies. Also optimized quote link rendering in comment-content with scoped store subscription, reduced edit menu state churn, and improved DOM lookups with memoization to keep all backlink rendering data-local and eliminate repeated backend-state-driven reference churn during board scroll.
2026-02-12 20:00:32 +08:00
plebeius 7821f9cd82 perf(post-rendering): reduce quoted backlink rerenders via scoped store subscription
Replaced duplicated quotedByMap construction with useQuotedByMap() hook that subscribes only to post numbers referenced in each thread. Updated registerComments() to skip no-op writes, eliminating unnecessary numberToCid identity changes during feed scrolling.
2026-02-12 18:41:21 +08:00
plebeius ad41a78974 feat(post-page): enable Update button to refresh replies, add Auto alert translation
Update button calls useReplies().reset() for manual refresh. Auto button
shows translated informational alert. Register reply feed reset in Post
desktop/mobile when on post page.
2026-02-12 17:44:26 +08:00
plebeius 25375612a9 fix(post): show OP backlinks in board feed cards 2026-02-11 19:06:29 +08:00
plebeius 18cea185e7 refactor: replace default lodash imports with named imports
Replaced `import _ from 'lodash'` with specific named imports (`capitalize`, `lowerCase`, `debounce`, `startCase`) across 18 files. This reduces bundle size and improves tree-shaking efficiency.
2026-02-11 19:01:09 +08:00
plebeius d862550132 fix(post): render OP backlinks from replies quoting OP 2026-02-11 18:52:10 +08:00
plebeius 716c782d1a fix: scroll OP quote to thread card on same-route click 2026-02-11 18:43:39 +08:00
plebeius 702816f99b fix: include manual post-number quotes in reply backlinks
Backlink map generation now merges protocol-level quotedCids with parsed >>number references from reply content. Manual quotes are resolved through numberToCid from usePostNumberStore and deduplicated using Set. Centralized QUOTE_NUMBER_REGEX in url-utils to keep markdown conversion and backlink detection aligned.
2026-02-10 16:53:34 +08:00
plebeius c4b6c77d4c feat: render >>{number} as interactive quote links with hover preview
Added bidirectional `usePostNumberStore` for post number ↔ CID mapping, populated from thread views. Preprocesses `>>{number}` into markdown links, renders them via `NumberQuoteLink` and `ReplyQuotePreview`, and deduplicates against `quotedCids` when both refer to the same post.
2026-02-10 16:23:06 +08:00
plebeius 9d17213e66 fix(post): improve user ID display with domain detection and length limits 2026-02-10 14:06:43 +08:00
plebeius 4a96f88efd feat: add copy user ID menu item and rename copy link to copy direct link
Add 'Copy user ID' button to both desktop and mobile post menus, allowing users to copy the full author address. This provides a way to verify authenticity against the 8-char display ID. Also rename 'Copy link' to 'Copy direct link' for clarity. Update security comments to reflect the new approach and add translations for all 35 languages.
2026-02-10 13:45:55 +08:00
plebeius 24d329a329 fix: shorten rendered user ID display from 12 to 8 characters 2026-02-10 13:23:46 +08:00
plebeius c7c8c46557 feat(post): add backlinks for quotedCids 2026-02-09 19:56:07 +08:00
plebeius c1b0d13bb7 feat(posts): support pseudonymityMode per-reply hiding
Hide user ID display in posts and replies when subplebbit.features.pseudonymityMode is 'per-reply'. Uses useSubplebbitField to avoid unnecessary rerenders.
2026-02-09 16:22:18 +08:00
plebeius 63ee8aa168 refactor: rebrand default subplebbits to 5chan directories 2026-01-28 16:51:27 +08:00
plebeius fa4ec6da40 feat(mod-queue): improve compact view and add pending approval features
- Update excerpt format to show both title and content (title: content)
- Add Type and Image columns to compact view (desktop and mobile)
- Show parent post above replies in feed view
- Add approve/reject buttons to post page for pending posts when user is mod
- Translate pending approval string across all languages
- Reorder columns: No., Excerpt, Submitted, Type, Image, Actions
- Right-align Type and Image columns in desktop view
2026-01-26 16:31:15 +08:00
plebeius 28873478a2 fix(post): include pending replies in useReplies calls 2026-01-26 15:36:39 +08:00
plebeius 14e8c92fa0 feat(mod-queue): add view mode selection and integrate with post components 2026-01-25 16:29:15 +08:00
plebeius b8e3a0202a fix(replies): reply permalink didn't auto-scroll to deep replies 2026-01-19 16:02:45 +01:00
plebeius 4b0402996f Change 'CID:' label to 'No.' in post info components 2026-01-18 18:13:35 +01:00
plebeius c0c6e9ee31 perf(feeds): use hasMore instead of length check for conditional virtualization 2026-01-13 17:01:51 +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 c094786f97 pass threadNumber to reply modal store 2025-12-28 22:16:38 +01:00
plebeius bf2c7ae61b refactor: use post number instead of shortCid in reply modal and quote previews 2025-12-28 11:53:02 +01:00
plebeius 2b8d6f4fce perf: only virtualize replies when count exceeds first page size 2025-12-27 18:25:35 +01:00
plebeius 882b7b4a99 feat: add infinite scroll for replies 2025-12-27 18:07:23 +01:00
plebeius 6e9202a604 implement useReplies 2025-12-27 17:47:17 +01:00
plebeius 76845412e8 feat: implement post numbers 2025-12-24 18:07:14 +01:00
plebeius e56ba3d050 add comment 2025-12-24 18:06:56 +01:00
plebeius 4cb3bda38c fix: update Plebbit.getShortAddress calls to use object parameter 2025-12-24 13:29:09 +01:00
plebeius e4a3c0504e prevent type error 2025-12-23 19:33:46 +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 698df59f19 perf(components): memoize post menus with minimal props 2025-12-05 17:38:17 +01:00
plebeius 5de2587cf4 feat(post): add moderator and administrator role indicators 2025-11-28 13:29:31 +01:00
plebeius de7043c77d remove duplicate function, remove unused variables 2025-11-14 14:52:13 +01:00
plebeius 1b38335118 refactor: move board display from post info to media row in multiboard views 2025-11-14 14:32:59 +01:00
plebeius 7bdcc252c0 style: update CID label and reply modal prefix 2025-11-08 21:19:36 +01:00
plebeius 93859ec2f1 fix(routes): prevent malformed routes and fix cache invalidation 2025-11-07 18:34:06 +01:00
plebeius d78fed1fda refactor(routing): migrate to directory-based board routing 2025-11-07 12:50:58 +01:00
plebeius e1f1f280cc fix(post): don't render empty avatar space when image url is invalid 2025-10-16 23:37:58 +02:00
Tom (plebeius.eth) f233da9806 fix(reply): no need to render deleted replies that have no children 2025-06-03 22:18:32 +02:00
Tom (plebeius.eth) c192e526f5 fix build, fix electron 2025-05-22 13:15:40 +02:00
Tom (plebeius.eth) 9e351c6b9d upgrade plebbit-react-hooks, update electron and scripts 2025-05-12 23:54:44 +02:00
Tom (plebeius.eth) 876af71e65 implement useSubplebbitsPagesStore instead of prop from useReplies 2025-03-05 21:38:01 +01:00
Tom (plebeius.eth) 8557ebb3a7 perf(app): optimize loading times by using stored values of subplebbits and comments instead of fetching them multiple times 2025-03-05 17:10:26 +01:00
Tom (plebeius.eth) 37e325c3d2 refactor replymodal to render it globally 2025-03-05 12:01:48 +01:00
Tom (plebeius.eth) 797a1f23c6 perf(feed): optimize posts rendering via props refactoring, memoizations 2025-03-03 23:47:33 +01:00