Commit Graph
183 Commits
Author SHA1 Message Date
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 3480dc0505 fix(p2p-stats): show peer flags for DNS6 relay hostnames
Extract embedded IPv6 addresses from dns6 multiaddrs so geo lookup and country flags work for relay peers that publish IPv6 via DNS hostnames.
2026-05-31 18:02:20 +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 a40b446f14 fix(p2p stats): show peer transfer counters 2026-05-25 15:18:04 +07:00
Tommaso Casaburi 680dd71285 fix(p2p-stats): center loading state and add animated ellipsis
Use LoadingEllipsis for the P2P stats loading message with centered layout and extra bottom spacing.
2026-05-25 14:11:57 +07:00
Tommaso Casaburi 639c627a04 fix(p2p stats): prefer browser IPv4 for own endpoint 2026-05-24 23:18:42 +07:00
Tommaso CasaburiandGitHub 804c14fc35 Improve P2P stats peer locations and Kubo display (#1139)
* feat(p2p stats): plot peers by ip location

* fix(p2p stats): show own node map marker

* feat(p2p stats): support full node peers

* fix(p2p stats): clean up kubo stats

* fix(p2p stats): address review feedback
2026-05-24 17:32:05 +07:00
Tommaso CasaburiandGitHub f5039285a7 fix(p2p stats): improve own-IP geolocation and world map accuracy (#1138)
* fix(p2p stats): improve own-IP geolocation and world map accuracy

Resolve the user's public endpoint when libp2p only advertises private listen addresses, look up an accurate country flag for "Your IP", snap peer markers to country centroids, and add leeching seeder link plus panel layout tweaks.

* fix(p2p stats): skip caching own-IP lookups cancelled by abort

When the P2P stats panel unmounts mid-request, its AbortSignal cancels
the in-flight fetchOwnPublicEndpoint / fetchOwnIpCountryCode calls. Those
empty results were still cached for 30-60s, so reopening the panel within
that window showed "Your IP" as unavailable or without a country flag even
though nothing had actually failed. Skip caching when the signal aborted so
a later open retries. Addresses Cursor Bugbot finding.
2026-05-23 22:47:41 +07:00
Tommaso Casaburi 9c4bb28940 Merge branch 'codex/feature/prettier-peer-list' 2026-05-23 18:34:05 +07:00
Tommaso Casaburi 782a1f466f feat(p2p stats): redesign connected peers with world map and country flags
Restyle the connected-peers list in the classic square, flat imageboard style,
move it to the end of the panel, and open it by default. Add an offline
approximate world map and per-peer country flags (sprite order taken from the
original 4chan flags.css), plus codify the old-school design rules in DESIGN.md
and point agents to them from AGENTS.md.
2026-05-23 18:33:00 +07:00
Tommaso Casaburi b849f7c376 fix(advanced settings): hide gateway fields in pure p2p mode and align inputs
When pure browser P2P is enabled, the IPFS gateway and pubsub provider
fields no longer apply, so hide them and toggle their visibility reactively
from the now-controlled pure P2P checkbox. Rename "Node RPC" to "Full node
WebSocket RPC", add a placeholder, and drop the old info toggle.

Give the WebSocket RPC text input the same content-box width, border, and
padding as the textareas above it so all field right edges align.
2026-05-23 17:23:05 +07:00
Tommaso Casaburi ca13e97dd4 feat(p2p): enable pure browser p2p by default 2026-05-22 17:31:28 +07:00
Tommaso Casaburi 1a57ec44b1 fix(settings): show crypto address validation inline instead of alert
Replace window.alert on empty check with a transient status message
next to the check button, matching existing resolution feedback.
2026-05-19 15:05:41 +07:00
Tommaso Casaburi 8cb632f3db fix(p2p stats): clarify browser peer data 2026-05-14 12:33:48 +07:00
Tommaso Casaburi c8640a8010 fix(settings): show latest update feedback 2026-05-13 23:55:38 +07:00
Tommaso Casaburi a97b891c5f fix(p2p): force browser mode on p2p subdomains 2026-05-11 17:18:16 +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 cbc50888d5 fix(settings): move pure p2p toggle below fields 2026-05-10 14:34:30 +07:00
Tommaso Casaburi 4f1b4d9677 fix(account settings): activate imported account 2026-05-08 16:51:59 +07:00
Tommaso Casaburi 0c0fd0b018 Merge branch 'codex/feature/p2p-stats-settings'
# Conflicts:
#	package.json
#	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
#	src/components/settings-modal/__tests__/settings-modal.test.tsx
#	src/components/settings-modal/settings-modal.tsx
#	yarn.lock
2026-05-07 16:59:44 +07:00
Tommaso Casaburi 14a4790c8b feat(p2p settings): add browser p2p stats 2026-05-07 16:56:29 +07:00
Tommaso Casaburi d85ce34603 Merge branch 'codex/feature/trusted-board-url-permissions' 2026-05-06 19:05:37 +07:00
Tommaso Casaburi cb05a8b905 feat(challenge modal): remember trusted board websites 2026-05-06 19:05:26 +07:00
Tommaso CasaburiandGitHub aaa0d88d6a fix: remove Android self-install updater (#1125)
* fix: remove Android self-install updater

* fix: open Android updates in native browser
2026-05-06 17:56:00 +07:00
Tommaso Casaburi a88c2e50f5 fix(settings): remove Solana RPC advanced option 2026-05-05 15:57:40 +07:00
Tommaso Casaburi 9f388693eb fix(media hosting): restore android imgur support 2026-05-01 22:52:56 +07:00
Tommaso Casaburi 7e1513b688 feat(media hosting): disable unreachable providers 2026-05-01 22:52:55 +07:00
Tommaso Casaburi cfd617af99 test(settings): pin update distribution in settings tests 2026-04-30 22:11:44 +07:00
Tommaso Casaburi fdbb650baa build(android): add fdroid distribution flavor 2026-04-30 18:58:50 +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 c046c542b6 chore(deps): use published bitsocial react hooks 2026-04-20 22:11:36 +07:00
Tommaso Casaburi ee7a5b5778 refactor(core): remove legacy plebbit terminology 2026-04-17 10:48:27 +07:00
Tommaso Casaburi d87be159e2 fix(settings modal): snap bitmap controls to whole pixels 2026-04-15 14:24:07 +07:00
Tommaso Casaburi 7bf0888221 fix: hide generated account copy for imported accounts 2026-04-15 13:42:58 +07:00
Tommaso Casaburi 45567013fc test(ci): align strict community mocks 2026-04-15 13:18:02 +07:00
Tommaso Casaburi 256cd459cf Merge branch 'codex/feature/spam-blocker-challenge'
# Conflicts:
#	package.json
#	src/components/settings-modal/advanced-settings/__tests__/advanced-settings.test.tsx
#	src/components/settings-modal/advanced-settings/advanced-settings.tsx
#	src/stores/__tests__/publish-stores.test.ts
#	yarn.lock
2026-04-14 13:34:02 +07:00
Tommaso Casaburi 956fb426ea fix(challenge): support pkc spam blocker flow 2026-04-14 13:30:31 +07:00
Tommaso Casaburi 19095aefa1 fix(hooks): handle pkc rebrand regressions 2026-04-11 16:57:00 +07:00
Tommaso Casaburi a2286aa68e feat(app-update): add in-app update flow with native e2e coverage 2026-03-19 20:19:48 +08:00
Tommaso CasaburiandGitHub 714c39cf47 feat(settings): add expanded video auto-unmute preference (#1104)
* feat(settings): add expanded video auto-unmute preference

* fix(translations): add missing unmute labels

* fix(translations): localize unmute label
2026-03-17 19:09:29 +08:00
Tommaso CasaburiandGitHub f812fe1d18 fix(pwa): make web updates deterministic (#1093)
* fix(pwa): make web updates deterministic

* fix(pwa): address review feedback
2026-03-17 16:20:13 +08:00
Tommaso CasaburiandGitHub f4ff7a23f7 feat(post-menu): add Report/Delete, reorder buttons, edit-only-for-mods, copy link 5chan.app (#1089)
* Update crypto address UI for .bso accounts

* feat(post-menu): add Report/Delete, reorder buttons, edit-only-for-mods, copy link 5chan.app

- Remove redundant reason field from edit menu (purged posts unreachable)
- Add Report post (placeholder alert) and Delete post (mobile) to post menus
- Reorder: Report, Hide, Delete, Copy x3, Image search
- Mobile edit checkbox only for mods; authors use Delete in post menu
- Copy direct link always uses 5chan.app domain
- 10px margin-top on mod menu save button

* fix(post-menu): add confirmation before delete post (Bugbot)
2026-03-16 17:54:17 +08:00
Tommaso CasaburiandGitHub d7703953fb refactor: migrate 5chan to the community hooks API (#1073)
* refactor(community-api): migrate 5chan to community hooks

* fix(review): address PR feedback

* fix(review): preserve legacy board context fallbacks

* fix(review): address latest bot feedback

* fix(review): use communityAddress in edit menu privileges
2026-03-13 13:25:10 +08:00
Tommaso CasaburiandGitHub 053965f124 fix(settings-modal): raise settings modal above reply and challenge modals (#1062) 2026-03-12 17:51:30 +08:00
Tommaso CasaburiandGitHub 2dd7c0e8d7 fix(catalog): use alias-aware media link labels (#1056)
* fix(catalog): use alias-aware media link labels

* fix(settings): align advanced settings tests with save label
2026-03-11 22:03:15 +08:00
Tommaso CasaburiandGitHub d56175a66e feat(ui): polish advanced settings, media hosting warning, reply modal mobile UX (#1054)
- Move Save Advanced Settings button to bottom-center of advanced settings
- Reduce spacing above/below web upload warning in media hosting
- Set 16px font for reply modal inputs on mobile (prevents iOS zoom)
- Autofocus textarea when opening reply modal on mobile
2026-03-11 19:42:34 +08:00
plebeius 454c94555d Update crypto-address-setting.tsx 2026-03-09 20:47:22 +08:00
plebeius 417482060d refactor: org name changed from bitsocialhq to bitsocialnet 2026-03-09 17:01:35 +08:00
plebeius 3b341922c4 fix(tests): mock board-buttons and style-selector to avoid Solana import crash 2026-03-09 16:31:06 +08:00
plebeius 892e6e824a fix(settings): restore style selector to interface settings 2026-03-09 15:53:53 +08:00