Commit Graph

8080 Commits

Author SHA1 Message Date
Claude b111676744 Drop the controlled-input warning and adopt controlled inputs
`TextField.Input`'s `value` prop carried a `@deprecated` tag steering
everyone toward `defaultValue`. That was an old-architecture performance
concern; we're on the New Architecture now, so the warning is gone and
CLAUDE.md says controlled inputs are the default choice.

Audited the uncontrolled inputs that warning produced. The interesting
ones were carrying workarounds to paper over the fact that the input and
the state describing it could drift apart:

- Advanced search: `ClearableInput` kept its own `showClear` state and
  cleared itself through a ref, and `FilterBlock` remounted it (and the
  already-controlled `AutocompleteInput`) with `key={filter.field}` to
  reseed it. All three are gone.
- Group chat: `EditNamePrompt` took an `inputKey` that
  `ConversationSettings` bumped on every open to remount the input,
  because the native bottom sheet keeps children mounted across opens.
- Follow dialog and GIF picker: both cleared their search field through
  a ref alongside the state update. The GIF picker's field had no
  `value` at all, so its clear button was driven by a separate prop.
- Login and signup: both mirrored every field into a ref so submit could
  read it, keeping two copies of the same string. Signup's
  `prevEmailValueRef` stays - it tracks the last email we warned about,
  not the input.
- The email dialog froze its field by dropping `onChangeText` after a
  successful update, which stopped recording edits but didn't stop them
  being typed. Now it's `editable={false}`.

The rest were plain `defaultValue` + `setState` pairs where the state
was already the source of truth for validation, character counters and
dirty checks: profile and list editing, both alt text dialogs, appeal
reason, handle change, app password name.

Also fixed `OTPInput`, which was controlled but cleared itself through
`clear()` on tap - the digit row renders from `value`, so the code
appeared to survive a clear that had already emptied the input.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016imsvP5dtEKBr6hCy1X62K
2026-09-02 22:15:43 +00:00
Samuel Newman af3fbcc940 APP-3015: Fix link metadata type detection (#11637) 2026-09-02 13:50:13 -07:00
DS Boyce 7b8e50aeb2 Create Mod Inbox account status banner (#11636) 2026-09-02 13:12:27 -07:00
DS Boyce 93e0d266fb Remove gate for OP thread numbering (#11639) 2026-09-02 14:15:35 -05:00
Samuel Newman 457b2be680 APP-2997: Handle age assurance data load failures (#11612)
Co-authored-by: Eric Bailey <git@esb.lol>
2026-09-02 11:35:14 -07:00
Samuel Newman d6e5961adf APP-2687: Fix threaded view replies breaking after rotating the lightbox (#11638)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 11:31:55 -07:00
DS Boyce e08bcd0228 Create moderation inbox reports list (#11570) 2026-09-02 10:02:21 -07:00
Oleksii Bulenok 87329397a4 APP-2974: Fix composer not scrollable when Reduced Motion is on (#11628)
Co-authored-by: Eric Bailey <git@esb.lol>
2026-09-02 16:31:22 +00:00
Spence Pope 99715b9a67 Add video playback analytics events (#11629) 2026-09-02 11:59:44 -04:00
DS Boyce ae971db765 Preserve thread numbering in placeholders (#11616) 2026-09-02 18:53:49 +03:00
Samuel Newman 83cd5033b2 Improve rotation text clipping (#11487) 2026-09-02 08:50:03 -07:00
Samuel Newman e9378654d6 Fix Starter Pack share link on iOS (#11626) 2026-09-02 08:35:01 -07:00
Samuel Newman 1add59f80c Truncate handles in collapsed profile headers (#11577) 2026-09-02 08:33:30 -07:00
Samuel Newman 7d39aa3422 APP-3014: prevent scheduler delegate use-after-free (#11632) 2026-09-02 08:26:23 -07:00
DS Boyce 701d7c4659 Fix localization for Following and Discover feed names (#11572) 2026-09-02 09:24:34 -05:00
Samuel Newman f288e18baa Pull latest lexicons (video alt text fix) (#11631) 2026-09-02 06:48:55 -07:00
pfrazee 076cdd650d Nightly source-language update 2026-09-02 02:40:19 +00:00
Eric Bailey 56efeee5e2 Vendor updated lexicons, WILL FAIL UPDATE (#11630) 2026-09-01 18:33:53 -05:00
DS Boyce 2ffa02c82a Fix post view attribution for feed replies (#11622) 2026-09-01 13:59:31 -07:00
Samuel Newman 35705ff8bf Fix bottom sheet content width on Android tablets (native-owned canvas sizing) (#11396) 2026-09-01 17:04:08 +03:00
dependabot[bot] 2c60c45022 Bump actions/setup-java from 5.7.0 to 6.0.0 (#11619) 2026-09-01 14:29:53 +03:00
dependabot[bot] 8b793d0843 Bump the actions group with 2 updates (#11618)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-01 03:54:47 -07:00
DS Boyce 96e6baa47b Stabilize native composer focus (#11624) 2026-08-31 21:54:13 -07:00
Eric Bailey 5be7d72011 APP-2983: Fix RTL post alignment on native (#11600) 2026-08-31 21:59:24 -05:00
pfrazee 4881224d2f Nightly source-language update 2026-09-01 02:26:42 +00:00
Eric Bailey c634d9b1be Revert "APP-2974: Avoid composer layout animations"
This reverts commit 2e08b90837.
2026-08-31 18:59:01 -05:00
Eric Bailey 2e08b90837 APP-2974: Avoid composer layout animations 2026-08-31 18:58:25 -05:00
Eric Bailey c28b858030 Update useAutoPagination max attempts value (#11623) 2026-08-31 17:48:38 -05:00
Tomasz Zawadzki bfde8e60c2 Unblock React Compiler for 5 components by removing render-phase mutation (#11543)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Samuel Newman <mozzius@protonmail.com>
2026-08-31 23:03:13 +02:00
DS Boyce 0a00392b65 Swap order of Keep editing and Discard buttons (#11606) 2026-08-31 11:52:56 -07:00
DS Boyce 0f121427fb Preserve composer focus when adding thread posts (#11605) 2026-08-31 09:37:55 -07:00
Samuel Newman f32ebdec79 APP-2996: clean up Expo fetch network errors (#11611) 2026-08-31 10:14:59 -05:00
Spence Pope 4495462f84 Add known likers to feed posts (#11595) 2026-08-31 10:56:30 -04:00
Oleksii Bulenok 89c8e1cb70 Fix hairline borders not visible (#11527) 2026-08-31 07:11:43 -07:00
Tomasz Zawadzki a086a2ebe0 Unblock React Compiler for 5 components with early exits inside try (#11547)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 06:52:17 -07:00
Tomasz Zawadzki f9cf58ea44 Unblock React Compiler for 23 components across ten small causes (#11542)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 06:49:57 -07:00
Tomasz Zawadzki 8bf5696d3c Unblock React Compiler for 18 components with value blocks inside try (#11548)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-31 06:47:42 -07:00
Samuel Newman 80d09a242d APP-2975: Fix Fabric focus navigation use-after-free (#11583) 2026-08-31 06:45:03 -07:00
Tomasz Zawadzki 5fabad1b5d Stop re-parsing dates in isStatusStillActive (#11574)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 06:44:43 -07:00
Samuel Newman 89509073f5 Remove Live Now new-feature nudge (#11604) 2026-08-31 06:09:30 -07:00
Tomasz Zawadzki 67375fe2cd Patch formatjs BigDecimal to stop dividing by 1 on every number format (#11610)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 05:26:13 -07:00
DS Boyce 4b4f5f9c9a Tweak alignment of thread numbering (#11566) 2026-08-31 05:19:37 -07:00
Eric Bailey e1f75c2c01 Add city to IP-based geo (#11603) 2026-08-28 16:01:54 -05:00
Samuel Newman e39d308fb7 APP-2976: Remove react-native-compressor remnants (#11588) 2026-08-28 08:25:53 -07:00
Samuel Newman e5a81402f3 Bump @bsky/sdk to latest (#11597) 2026-08-28 08:25:37 -07:00
Samuel Newman d9d19c7678 Target Android 16 (API 36) (#11576) 2026-08-28 10:21:11 -05:00
Samuel Newman 00dc9598fc Forward labeler headers to chat (#11555) 2026-08-28 15:03:15 +03:00
Samuel Newman e91665d118 Keep chat reaction bar on screen (#11532) 2026-08-28 15:03:03 +03:00
pfrazee 3a34bf1ad1 Nightly source-language update 2026-08-28 04:52:31 +00:00
surfdude29 5eb5ac4800 Fix support link cutoff in signup footer on mobile (#11059) 2026-08-27 19:19:40 +03:00