Commit Graph
2177 Commits
Author SHA1 Message Date
plebeius f4727641b4 chore: add translation 2026-02-15 20:35:20 +08:00
plebeius 50e5370b56 Update 5chan-directories.json 2026-02-15 18:51:05 +08:00
plebeius dedf18e199 perf(replies): progressive render, 500 replies/page, content-visibility
Set repliesPerPage to 500 to avoid Virtuoso pagination sort drift. Add useProgressiveRender with startTransition batching and CSS content-visibility for long reply lists.
2026-02-15 18:46:49 +08:00
plebeius ec620238e3 feat(directories): add schema adapters and preserve v2 metadata
Multi-adapter boundary in normalizeDirectoriesData() supports both
communities[] and directories[] upstream schemas. Sync script mirrors
logic and writes canonical format. Preserves directoryCode and features
for future use.
2026-02-15 18:27:12 +08:00
plebeius 2f563b441a fix(popular-posts): base quota on loaded boards instead of total directories
The postsPerSub quota is now calculated from boards with actually loaded hot comments, not total filtered directories. This prevents the list from collapsing to a single post when many boards are empty or unavailable.
2026-02-15 14:52:27 +08:00
plebeius c667657e96 Update boards-list.tsx 2026-02-15 14:50:17 +08:00
plebeius 32bf635a3c Update use-directories.ts 2026-02-15 14:40:48 +08:00
plebeius e47727c074 fix(home): derive board link state from directory availability
Replaced one-off /biz/ and /pol/ checks with a single board-name-to-address resolver built from useDirectories() data. The homepage boards list now consistently colors and links any available directory board without manual hardcoding.
2026-02-15 14:32:14 +08:00
plebeius 8645f7365a feat(build): sync vendored directories from GitHub on start and build
Adds sync-directories.js script that fetches 5chan-directories.json from bitsocialhq/lists and updates the vendored fallback. Runs before generate:assets in prestart and prebuild to ensure the fallback is fresh for every build. Non-fatal: if fetch fails, existing file is kept.
2026-02-15 14:14:21 +08:00
plebeius 44847b7e95 fix(post): refresh author ID tooltip count when replies change 2026-02-15 14:07:12 +08:00
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 befb4079ff update documentation 2026-02-13 14:13:03 +08:00
plebeius f24258f278 fix styling 2026-02-13 14:10:10 +08:00
plebeius 61eb1e80f5 fix(topbar): sync subscription visibility with account subscriptions
Replace per-address visibility tracking with a boolean flag so newly subscribed boards appear immediately in the topbar without requiring a modal reopen.
2026-02-13 14:01:49 +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 901f40f6b8 feat(board-header): add hover tooltip for address subtitle 2026-02-12 18:15:11 +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 378242cdde fix(replies): prevent inline quote links from forcing line breaks 2026-02-12 16:17:44 +08:00
plebeius 9c1879045d update links 2026-02-11 21:27:18 +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 6c4c12c136 fix(reply): replies should always target the OP, not other replies 2026-02-11 18:15:06 +08:00
plebeius af259ad032 fix(reply modal): make parent reply quote editable 2026-02-11 16:38:40 +08:00
plebeius 9f14a63268 feat: populate quotedCids when publishing replies with quote references
Parse reply content for >>{postNumber} references, resolve post numbers to CIDs via usePostNumberStore, and include resolved CIDs in publishCommentOptions when publishing. Extracted quote handling into reply-quote-utils.ts for testability and clarity.
2026-02-11 16:07:01 +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 41b7fee439 refactor(mod queue): rename routes from /queue to /modqueue 2026-02-09 17:42:23 +08:00
plebeius 1704686a6f Update mod-queue.tsx 2026-02-09 17:17:14 +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 50ee10cbc9 fix: resolve PR 877 issues - route params, artifact paths, and build configs
Fix route parameter name in use-initial-theme hook (communityAddress -> boardIdentifier), correct release workflow artifact paths (dist -> out/make), add BUILD_ARCH env var for Linux arm64 builds, fix macOS app name dev check, and update capacitor webDir to match vite output.
2026-01-30 14:33:45 +08:00
plebeius 815f618320 refactor: migrate from electron-rebuild to electron-forge 2026-01-30 12:28:41 +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