Commit Graph
1624 Commits
Author SHA1 Message Date
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 af259ad032 fix(reply modal): make parent reply quote editable 2026-02-11 16:38:40 +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 35783ff627 style(markdown): align markdown number-quote links with reply quote styling 2026-02-10 16:28:04 +08:00
plebeius b8546a86c5 fix(post): prevent quote hover highlight on op cards 2026-02-10 16:26:05 +08:00
plebeius 223ec4c494 fix: show OP badge for number-based quote links
`NumberQuoteLink` now receives thread context from `Markdown` and forwards `isOP` to `ReplyQuotePreview` when the resolved quote CID matches the thread `postCid`. This makes `>>14` render as `>>14 (OP)` consistently with existing `quotedCids` links.
2026-02-10 16:23:15 +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 db70a9148b fix(reply modal): restore multiline quote insertion 2026-02-10 15:51:58 +08:00
plebeius 8a192b41b4 feat(reply-modal): insert quoted post numbers at textarea caret
Replace single-quote blocking behavior with smooth multi-quote support. When the reply modal is open, clicking another post number now inserts >>number at the current caret position instead of showing an alert. Includes caret tracking across blur events and an infinite-loop guard to prevent recursive `setPublishReplyOptions` calls.
2026-02-10 14:57:47 +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 1bd1d34fee fix(components): remove redundant instant scroll from quote links 2026-02-09 19:57:44 +08:00
plebeius c7c8c46557 feat(post): add backlinks for quotedCids 2026-02-09 19:56:07 +08:00
plebeius 0fb14e653c Added QuotedCidLink component in comment-content.tsx to render multiple quote links when quotedCids array exists. Updated ReplyQuotePreview to accept and display isOP prop, showing "(OP)" label for original post quotes in both desktop and mobile views. Prefers useComment hook over store when number property is available for deeper nested replies.
Added `QuotedCidLink` component in `comment-content.tsx` to render multiple quote links when `quotedCids` array exists. Updated `ReplyQuotePreview` to accept and display `isOP` prop, showing "(OP)" label for original post quotes in both desktop and mobile views. Prefers `useComment` hook over store when `number` property is available for deeper nested replies.
2026-02-09 19:23:15 +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 d86637200b fix(mod-queue): improve alert threshold input validation and add i18n for view selector 2026-01-25 16:56:48 +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 c2bbe2dd0b fix(comment-content): ensure parent comment number is populated for nested replies 2026-01-19 14:34:26 +01:00
plebeius 5e1114e087 fix(post): OP thumbnail overlaps with replies when image has unusual dimensions 2026-01-18 18:41:05 +01:00
plebeius 4b0402996f Change 'CID:' label to 'No.' in post info components 2026-01-18 18:13:35 +01:00
plebeius 64ef0ddccf fix(subplebbit-stats): revert broken useStableSubplebbitStats hook 2026-01-14 15:14:33 +01:00
plebeius 3799dccd88 perf: prevent unnecessary re-renders from RPC client state changes 2026-01-14 15:05:45 +01:00
plebeius c0c6e9ee31 perf(feeds): use hasMore instead of length check for conditional virtualization 2026-01-13 17:01:51 +01:00
plebeius 6f9e3b2330 fix(mod queue): show mod queue button in /mod/ multiboard view 2026-01-11 17:25:49 +01:00
plebeius f6348f0e66 Fix ban duration change updating ban expiration when ban checkbox is unchecked 2026-01-09 17:22:05 +01:00
plebeius a959f14290 fix(edit-menu): use correct banExpiresAt path in commentModeration.author 2026-01-09 16:43:21 +01:00
plebeius ac850ca830 fix key warning 2026-01-09 16:34:27 +01:00
plebeius 476681c689 fix(comment-content): use correct banExpiresAt path for ban visibility 2026-01-09 16:28:17 +01:00
plebeius e0fb887bac sort mod queue by timestamp, remove redundant "view" button 2026-01-09 15:47:56 +01:00
plebeius 402313107c feat(post): add pending approval label 2026-01-08 17:09:35 +01:00
plebeius e899ac7fb9 update mod queue 2026-01-08 16:43:14 +01:00
plebeius d71d3a5971 remove unnecessary comments 2026-01-08 14:34:52 +01:00
plebeius 70ba14591a feat: implement mod queue 2026-01-07 16:03:02 +01:00
plebeius e77dd53e0e fix(topbar): didn't update when subscribing to a board 2026-01-03 17:25:03 +01:00
plebeius 9fe31c873b refactor: clean up imports and move inline component definitions after imports 2026-01-03 16:17:48 +01:00
plebeius d71d518e27 fix(catalog-row): expand CatalogPost memo comparator to prevent stale renders 2026-01-03 16:13:59 +01:00
plebeius 52fea3851e fix(p2p-options): correct Solana chainId from 1 to 101 2026-01-03 16:04:24 +01:00
plebeius 1abc8410cd feat(moderation): add purge action to edit menu 2026-01-02 17:06:25 +01:00
plebeius 3d676062af feat(p2p options): add http routers field 2026-01-02 16:48:21 +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 764b4258e6 refactor(settings): rebrand plebbit options to P2P options 2026-01-02 15:53:02 +01:00
plebeius dd3bdf24ab style(p2p options settings): adjust textarea heights and dynamic rows 2026-01-02 15:43:01 +01:00