Commit Graph
380 Commits
Author SHA1 Message Date
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 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 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 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 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 32bf635a3c Update use-directories.ts 2026-02-15 14:40:48 +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 9c1879045d update links 2026-02-11 21:27:18 +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 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 63ee8aa168 refactor: rebrand default subplebbits to 5chan directories 2026-01-28 16:51:27 +08:00
plebeius 00b037cf97 not needed 2026-01-19 16:08:13 +01:00
plebeius b8e3a0202a fix(replies): reply permalink didn't auto-scroll to deep replies 2026-01-19 16:02:45 +01:00
plebeius afb7521e09 revert refactoring for rpc state rerenders, fix home stats 2026-01-14 22:23:11 +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 33943c3de9 perf(mod queue): prevent re-renders from IPFS client state changes 2026-01-11 15:39:46 +01:00
plebeius 404b613b44 perf: Fix unnecessary renders in useCurrentTime hook and ModQueueView footer 2026-01-08 17:16:29 +01:00
plebeius e899ac7fb9 update mod queue 2026-01-08 16:43:14 +01:00
plebeius 70ba14591a feat: implement mod queue 2026-01-07 16:03:02 +01:00
plebeius 5a072a0307 fix type errors 2026-01-06 18:10:58 +01:00
plebeius a7614db743 fix(hooks): fix usePopularPosts loading state and change detection 2026-01-03 16:14:08 +01:00
plebeius 647139c0ec fix(hooks): use structural equality for roles comparison in useStableSubplebbit 2026-01-03 16:04:29 +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 bf2c7ae61b refactor: use post number instead of shortCid in reply modal and quote previews 2025-12-28 11:53:02 +01:00
plebeius 6e9202a604 implement useReplies 2025-12-27 17:47:17 +01:00
plebeius cee682ae52 run prettier 2025-12-27 16:35:51 +01:00
plebeius 756bff4b04 chore: fix various lint warnings 2025-12-26 17:30:55 +01:00
plebeius 3963c2cb8d update comment 2025-12-23 19:16:18 +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 e14c755208 update loading string 2025-12-14 16:36:14 +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 b1ebf0b4ae fix(theme): prevent theme flash on board load 2025-11-25 22:24:48 +01:00
plebeius 6175744e7b fix(hooks): remove postCid requirement from isAccountCommentAuthor check 2025-11-25 14:57:39 +01:00
plebeius f037a669c0 refactor: remove broken anon mode feature
- delete the anon mode hook/store and stop wiring publish flows through alternate signers
  - strip the settings UI, avatar warning, reply indicators, and FAQ text that referenced the toggle
  - drop the anon mode translation keys via scripts/update-translations.js
2025-11-25 13:13:38 +01:00
plebeius 9cc78694d8 fix(themes): all and subscriptions multiboards should use yotsuba 2025-11-08 15:27:25 +01:00
plebeius d78fed1fda refactor(routing): migrate to directory-based board routing 2025-11-07 12:50:58 +01:00
plebeius e7e2a2fda7 perf(hooks): document stable reference optimization in useDefaultSubplebbits 2025-11-07 12:49:58 +01:00
plebeius f4856563df feat(routing): add hooks and utilities for directory-based board routing 2025-11-07 12:49:49 +01:00
plebeius eedb0fa08e fix: prevent memory leak from unbounded setInterval in use-time-filter 2025-11-06 11:23:06 +01:00
plebeius e548198d0e fix(use-default-subplebbits): prevent state updates after unmount 2025-11-04 14:59:22 +01:00
plebeius c808f0ca21 Add local cache and fallback for default subplebbits 2025-11-03 22:24:31 +01:00
plebeius bae6faa929 feat: implement 5chan-specific default board list 2025-11-03 22:06:18 +01:00