Commit Graph
114 Commits
Author SHA1 Message Date
plebeius 24d7b3e057 feat(catalog): add reply-count sorting mode 2026-02-23 17:09:26 +08:00
plebeius 0cb7b1a970 feat(blotter): replace board stats with changelog-backed blotter
Add static blotter snapshot, route /blotter, compact board blotter (Hide/Show All).
Include yarn blotter tooling and AGENTS rules so every changelog version has a
release line. 4chan-style table UI, subplebbit→board and plebchan→5chan in messages.
2026-02-22 19:37:49 +08:00
plebeius a13c72f888 perf: defer board reply fetching and remove nested mobile backlink fetch
Split useReplies in post-desktop.tsx and post-mobile.tsx into preview/full modes so board cards avoid full REPLIES_PER_PAGE fetches by default. Added replies-preview-utils.ts and switched mobile backlinks to use precomputed directRepliesByParentCid map instead of per-reply useReplies.
2026-02-22 16:53:01 +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 60d2f6804d feat(board): default pagination with optional infinite scroll and URL-based page routing 2026-02-20 20:16:11 +08:00
plebeius b20aae8244 fix(upload-automation): harden android and electron failure handling
Updated Android/Electron upload paths to fail deterministically and report consistent stage details, while removing unsafe stage casting and path/package mismatches. This keeps postimages automation behavior intact and makes failures easier to diagnose.
2026-02-20 16:52:35 +08:00
plebeius f1f5789118 feat(media-hosting): extend ProviderAttempt with stage/elapsedMs/matchedSelectors and parse plugin errors 2026-02-19 17:49:18 +08:00
plebeius 410b988fbd fix(upload): resolve electron file-path fallback and android provider automation stalls 2026-02-19 13:18:15 +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 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 bb4be3ff6b fix(challenge-utils): format challenge errors with board identifier 2026-02-16 15:13:52 +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 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 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 41b7fee439 refactor(mod queue): rename routes from /queue to /modqueue 2026-02-09 17:42:23 +08:00
plebeius 63ee8aa168 refactor: rebrand default subplebbits to 5chan directories 2026-01-28 16:51:27 +08:00
plebeius 48d5decc51 missing hash 2026-01-19 16:06:12 +01:00
plebeius 70ba14591a feat: implement mod queue 2026-01-07 16:03:02 +01:00
plebeius c984e56249 feat(url-utils): replace p/ syntax with >>> cross-board references 2025-12-31 17:59:33 +01:00
plebeius d46d7edffe perf: preload theme button and background images on app startup 2025-12-29 13:55:20 +01:00
plebeius 0b573acf1d fix: resolve typescript errors in post menu components 2025-12-26 17:33:00 +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 23f245145c fix: validate thread share link cid
Ensure thread share links throw when cid is missing and require a cid in caller props so we never build /thread/undefined URLs.
2025-12-08 23:44:38 +01:00
plebeius c7d53bd9b5 fix: accept dynamic time filters in feed routes 2025-12-08 23:36:55 +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 698df59f19 perf(components): memoize post menus with minimal props 2025-12-05 17:38:17 +01:00
plebeius 41ffd2f65b feat(share-link): add description and rules link types 2025-11-30 22:43:48 +01:00
plebeius f01a1dcaa9 fix(media-utils): ignore blacklisted thumbnails
some sites don't show thumbnails, so the backend-side thumbnail fetching needs to be  disabled, or it might fetch non-thumbnails such as emojis
2025-11-26 23:13:40 +01:00
plebeius a7dc46fe2e feat: add iframe challenges (e.g. mintpass) 2025-11-26 22:09:03 +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 12101fe75e feat: add Multiboards category with /subs/ and /all/ 2025-11-12 16:35:38 +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 f4856563df feat(routing): add hooks and utilities for directory-based board routing 2025-11-07 12:49:49 +01:00
plebeius 1360dd8348 feat: rename plebchan to 5chan 2025-10-17 23:30:35 +02:00
plebeius b2e1dd54a4 fix: prevent TypeError when challengeErrors is not iterable in challenge verification 2025-07-29 17:16:04 +02:00
Tom (plebeius.eth) b3bcd5896c feat(markdown): render plebchan links as internal links, so the user doesn't have to leave the app 2025-06-04 12:55:55 +02:00
Tom (plebeius.eth) bb1b273c39 remove ext-name, it sucks
it would return old/unknown extensions (such as `.arts`) as video or image for no reason
2025-06-04 12:30:04 +02:00
Tom (plebeius.eth) 104c9c0eba fix(electron): app couldn't copy share links to clipboard 2025-06-03 22:11:17 +02:00
Tom (plebeius.eth) 9fbfcb3630 fix: errors could be displayed unnecessarily 2025-06-03 22:02:54 +02:00
Tom (plebeius.eth) 70f640ecca feat(catalog filters): add filter by user address, display name or anonymous, mod role 2025-03-07 18:27:27 +01:00
Tom (plebeius.eth) d7a9c1640b feat(catalog filter): add filtering with complex patterns, including regex, help modal 2025-03-06 23:48:17 +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
Tom (plebeius.eth) 797a1f23c6 perf(feed): optimize posts rendering via props refactoring, memoizations 2025-03-03 23:47:33 +01:00
Tom (plebeius.eth) 306e7b081f feat(embeds): add support to youtube shorts 2025-02-27 12:26:38 +01:00