Commit Graph
184 Commits
Author SHA1 Message Date
Tommaso Casaburi e9c729a9e3 fix(rules): use hash links for directory deep links
Switch rules navigation from /rules/:code paths to /rules#code hashes,
reject legacy subpaths, and ignore address hashes in markdown links.
2026-06-10 16:38:31 +07:00
Tommaso Casaburi f3d59c3345 fix(post-form): style errors like 4chan and move into tfoot
Use red banner styling for form errors and render them in the table
footer so messages stay aligned with the post form layout.
2026-06-10 15:45:49 +07:00
Tommaso CasaburiandGitHub 2f938d59ae fix(post-form): convert twimg query-format links in the reply modal (#1168)
Share getPublishLinkOptions between the inline post form and the reply modal so the modal publishes twimg ?format= links in their .jpg/.png form (previously raw), and rewrite the link field on blur in both so the conversion is visible. Also gate the dev service worker's runtime asset cache to production so dev no longer serves stale /src modules.
2026-06-09 19:24:28 +07:00
Tommaso Casaburi 27558ded18 fix(post-form): hide filename for non-file media links
Only show pasted link filenames when the URL resolves to publishable
file media, so bare paths like imgur album IDs are not shown as files.
2026-06-09 12:34:13 +07:00
Tommaso Casaburi 32dbabb7c7 fix(flags): limit challenge requests to country flags 2026-06-08 15:43:12 +07:00
Tommaso CasaburiandGitHub 9f58bf7e22 chore(deps): upgrade react to 19.2.7 and react types to 19.x (#1154)
Bump react and react-dom 19.1.2 -> 19.2.7 and @types/react and
@types/react-dom from v18 to v19. Keeps babel-plugin-react-compiler,
which is a separate build-time tool, not part of the React 19 runtime.

The @types v19 upgrade surfaced 21 type-only errors, all fixed without
runtime behavior changes:

- useRef<T>() now requires an explicit argument: pass undefined
- DOM element refs are RefObject<T | null>: widen PostFormFields and
  AdvancedSettings ref prop types accordingly
- retype reply-modal onInput handler to FormEvent + currentTarget
- add a null guard for the boards-bar search input
- update test mocks for stricter cloneElement/forwardRef typings

Verified: type-check, lint, 1051 tests, and build pass; react-doctor
score unchanged at 54; browser smoke across Chromium/Firefox/WebKit
plus mobile viewport clean.
2026-06-05 18:43:28 +07:00
Tommaso Casaburi 3ece699a6f fix(post form): publish twimg query-format links with path extension
Normalize pbs.twimg.com media URLs that use ?format= to their file-extension form at publish time without rewriting the input field.
2026-06-04 18:00:25 +07:00
Tommaso Casaburi 95f3a54b9d fix(post form): reject non-media file links 2026-06-03 17:10:37 +07:00
Tommaso CasaburiandGitHub d09d2d05d1 fix(fortune): scope s5s fortune markup (#1150)
* fix(markdown): scope fortune markup to fortune boards

* fix(fortune): store fortune output as bbcode

* fix(fortune): keep legacy fortune rendering

* fix(tests): resolve catalog button mock merge

* fix(fortune): validate hidden fortune length
2026-06-03 13:49:35 +07:00
Tommaso Casaburi 84f357cba1 merge: integrate master post-form and youtube changes 2026-06-02 15:00:19 +07:00
Tommaso Casaburi 4cc2bf4ea1 fix(flags): resolve comment flags from directory list candidates
Use directory list board entries when the active address is not yet in
the directories cache so /pol and similar boards get correct flag UI.
2026-06-02 15:00:14 +07:00
Tommaso Casaburi 8f4b02727c merge: integrate master board selector fix 2026-06-02 14:59:22 +07:00
Tommaso Casaburi 0a601c9392 fix(post-form): auto-convert YouTube links to thumbnail URLs
Add a countdown notice and shared hook to replace YouTube watch links
with img.youtube.com thumbnails in post and reply forms, with i18n copy.
2026-06-02 14:59:14 +07:00
Tommaso Casaburi a7cd3ac87f fix(post-form): restore native board selector appearance
Exclude the board dropdown from post-form field chrome so it keeps the
browser default select styling, matching flag selector behavior.
2026-06-02 14:58:32 +07:00
Tommaso Casaburi 75c805c822 fix(post options): link sage warning to FAQ 2026-06-02 12:16:22 +07:00
Tommaso Casaburi b9ab1ba470 merge: show specific role in moderation posting warning 2026-06-01 12:48:47 +07:00
Tommaso Casaburi 812b6bc79c fix(post): show specific role in moderation posting warning
Replace the generic "posting as moderator" label with the effective role
(5chan dev, owner, admin, or moderator) in post and reply forms.
2026-06-01 12:48:42 +07:00
Tommaso Casaburi 1bd8d6dc34 fix(flags): hide geolocation-only selectors on /int/ and /sp/
Country-only boards auto-publish geographic location flags without
showing a flag dropdown, matching existing /bant/ behavior.
2026-06-01 10:57:13 +07:00
Tommaso Casaburi 872116b132 fix(post-form): use native browser styling for flash tag select
Exclude the flash tag dropdown from themed post-form select styling so it
renders with the browser's default select appearance, matching the flag selector.
2026-05-31 16:27:02 +07:00
Tommaso CasaburiandGitHub 9b3a95dd95 feat(flash board): add SWF posting support (#1145) 2026-05-30 16:07:41 +07:00
Tommaso CasaburiandGitHub 56894700c1 feat(oekaki): add drawing flow for /i/ (#1144)
* feat(oekaki): add drawing flow for /i/

* fix(oekaki): address review feedback

* fix(oekaki): reset Tegaki edit sessions

* fix(oekaki): block drawing during export

* fix(oekaki): destroy Tegaki on preload errors

* fix(oekaki): preserve drawing on export failure

* fix(oekaki): unlock controls after export failure
2026-05-30 15:06:47 +07:00
Tommaso CasaburiandGitHub e082c7b428 fix(react): address Doctor findings (#1143)
Accessibility/semantics pass aligned with React Doctor: role-based spans/divs become real buttons, role=status becomes <output>, modals use native <dialog>, author/peer flags render as <img>, and embed/challenge iframes are sandboxed. Includes review follow-ups: correct button chrome/centering/themed dialog colors and focus rings, the missing aria-label i18n keys (all languages), the Yandex image-search URL, clearer .bso setup steps, a keyboard-accessible image-search dropdown, and removal of the post-edit ('comment edited') display (mod edits unchanged).
2026-05-29 17:09:07 +07:00
Tommaso Casaburi 633542a1f7 fix(flags): move reply flag below link and auto-geo on /bant/
Hide the flag selector on /bant/ while still publishing geographic location, and place the reply modal flag field after the link field.
2026-05-24 23:38:15 +07:00
Tommaso Casaburi 2030b8c5bb fix(ui): use native browser styling for flag select
Match 4chan's unstyled flag dropdown by excluding it from themed form select rules.
2026-05-24 23:30:59 +07:00
Tommaso Casaburi 271cb14ae6 Merge branch 'master' of github.com:bitsocialnet/5chan
# Conflicts:
#	public/translations/ar/default.json
#	public/translations/bn/default.json
#	public/translations/cs/default.json
#	public/translations/da/default.json
#	public/translations/de/default.json
#	public/translations/el/default.json
#	public/translations/en/default.json
#	public/translations/es/default.json
#	public/translations/fa/default.json
#	public/translations/fi/default.json
#	public/translations/fil/default.json
#	public/translations/fr/default.json
#	public/translations/he/default.json
#	public/translations/hi/default.json
#	public/translations/hu/default.json
#	public/translations/id/default.json
#	public/translations/it/default.json
#	public/translations/ja/default.json
#	public/translations/ko/default.json
#	public/translations/mr/default.json
#	public/translations/nl/default.json
#	public/translations/no/default.json
#	public/translations/pl/default.json
#	public/translations/pt/default.json
#	public/translations/ro/default.json
#	public/translations/ru/default.json
#	public/translations/sq/default.json
#	public/translations/sv/default.json
#	public/translations/te/default.json
#	public/translations/th/default.json
#	public/translations/tr/default.json
#	public/translations/uk/default.json
#	public/translations/ur/default.json
#	public/translations/vi/default.json
#	public/translations/zh/default.json
2026-05-24 23:18:28 +07:00
Tommaso CasaburiandGitHub f74b33f43b feat(flags): add comment flags (#1140)
* feat(flags): add comment flags

* fix(flags): address review feedback

* fix(flags): clear stale flag publish data
2026-05-24 23:14:36 +07:00
Tommaso Casaburi 5fad3c73ba fix(post): link board-specific option errors to supported boards
When fortune or dice options are used on the wrong board, show which
boards support them with clickable links in the post form and reply modal.
2026-05-24 19:17:50 +07:00
Tommaso Casaburi 1a09c7e891 Merge branch 'codex/fix/pending-escape-board-redirect'
# Conflicts:
#	src/components/post-form/post-form.tsx
2026-05-23 17:26:47 +07:00
Tommaso Casaburi e95dcb8af5 fix(pending-post): return to board after abandoned challenge 2026-05-23 17:24:22 +07:00
Tommaso CasaburiandGitHub 22c1b4f123 feat(post options): support nonoko board redirects (#1137) 2026-05-23 16:54:38 +07:00
Tommaso Casaburi 275d8b0e69 fix(moderation): clarify moderator composer state 2026-05-22 00:44:14 +07:00
Tommaso CasaburiandGitHub 4c011b3fdd fix(post form): align rules prompt test with bottom placement (#1136) 2026-05-22 00:03:52 +07:00
Tommaso Casaburi 75fb245bfb Merge branch 'master' of github.com:bitsocialnet/5chan 2026-05-21 22:33:51 +07:00
Tommaso CasaburiandGitHub ff6b4cd201 feat(posting): add scoped options and qst formatting (#1135)
* feat(posting): add scoped options and qst formatting

* fix(posting): address post options review feedback

* fix(posting): sync option content before publish

* fix(posting): handle final review nits
2026-05-21 22:12:41 +07:00
Tommaso Casaburi 7d521b1e95 Merge branch 'codex/fix/post-form-rules-row-bottom' 2026-05-21 19:35:07 +07:00
Tommaso Casaburi 4efa668fec fix(post form): move rules and FAQ prompt to bottom of form
Render the rules/FAQ prompt after the last field instead of between
the file and options rows so it always sits at the bottom.
2026-05-21 19:34:50 +07:00
Tommaso Casaburi 8cd3b65b19 fix(post form): center the collapsed start-new-thread toggle
Re-center the desktop start-new-thread toggle (matching the board
title) while keeping the expanded post form left-aligned with the
blotter.
2026-05-21 19:30:40 +07:00
Tommaso Casaburi 1fffe2c428 Merge branch 'codex/fix/post-form-blotter-align' 2026-05-21 19:04:39 +07:00
Tommaso Casaburi b347205136 fix(post form): align desktop post form to blotter left edge
Match the blotter's centered 468px column so the desktop post form
shares its left edge instead of being centered within its own width.
2026-05-21 19:03:47 +07:00
Tommaso Casaburi 7305e40870 feat(post form): add rules and FAQ prompt 2026-05-21 18:55:36 +07:00
Tommaso Casaburi 75d90c8264 fix(post-form): shorten long uploaded file labels in the form
Telegraph and other hosts can produce very long filenames that overflow the
narrow post form upload row; truncate them more aggressively than post media
links and expose the full name via title tooltip.
2026-05-21 15:34:21 +07:00
Tommaso Casaburi d2d047e5de feat(posts): add mod bbcode editor 2026-05-19 15:45:22 +07:00
Tommaso CasaburiandGitHub 95f3faf31a fix(post-form): clear stale draft state on form remount (#1131) 2026-05-17 17:15:31 +07:00
Tommaso Casaburi 4acd4449ea fix(post form): show validation errors inline 2026-05-16 16:30:32 +07:00
Tommaso Casaburi a86c523d17 fix(post form): block temporary media links 2026-05-16 16:11:22 +07:00
Tommaso CasaburiandGitHub 556973a445 Improve React Doctor score and badge (#1127)
* fix(react doctor): improve quality score and badge

* fix(react doctor): address review feedback

* fix(review): address final bot feedback
2026-05-10 18:25:13 +07:00
Tommaso Casaburi 70791fa80a fix(upload): animate uploading ellipsis 2026-05-01 22:54:05 +07:00
Tommaso Casaburi bc213ecea2 fix(posting): clarify direct file links 2026-05-01 18:03:04 +07:00
Tommaso CasaburiandGitHub 5dc5408a15 fix(codebase audit): preserve cleanup without regressions
Fix codebase audit regressions while preserving UI/UX behavior and adding review-driven hardening.
2026-04-24 15:48:07 +07:00
Tommaso Casaburi fb19ee47c8 fix(publishing): normalize media links to https 2026-04-21 14:23:52 +07:00