fix(mobile): slide settled threads out before collapsing - #10345
Merged
juliusmarminge merged 1 commit intoSep 6, 2026
Merged
Conversation
Contributor
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This changes an existing mobile interaction through a new UI-thread dismissal/collapse lifecycle and an application-maintained gesture-handler patch. The async commit timing, recycled-row cleanup, and dependency patch synchronization create enough runtime integration risk to require human review. You can add or adjust custom eligibility rules. Learn more. |
github-actions Bot
added a commit
to omarcresp/t3code-flake
that referenced
this pull request
Sep 6, 2026
## What's Changed * fix(web): show Tux icon for WSL environments by @UtkarshUsername in pingdotgg/t3code#8511 * perf(web): speed up folder menu sorting by @AksharP5 in pingdotgg/t3code#10190 * style(web): fix inconsistencies in new settings layouts by @extoci in pingdotgg/t3code#10177 * feat(threads): persist manual active thread order by @juliusmarminge in pingdotgg/t3code#9729 * feat(mobile): arrange active threads from both thread lists by @juliusmarminge in pingdotgg/t3code#9730 * feat(web): drag threads across sections with consistent motion by @juliusmarminge in pingdotgg/t3code#9731 * feat(web): simplify sidebar drag destination cues by @juliusmarminge in pingdotgg/t3code#9750 * fix(mobile): keep pending tasks queued when a send fails in flight by @juliusmarminge in pingdotgg/t3code#10245 * feat(mobile): show new-task drafts alongside pending tasks in the thread list by @juliusmarminge in pingdotgg/t3code#10260 * feat(mobile): allow several new-task drafts per project by @juliusmarminge in pingdotgg/t3code#10327 * fix(mobile): slide settled threads out before collapsing by @StiensWout in pingdotgg/t3code#10345 **Full Changelog**: pingdotgg/t3code@v0.0.39-nightly.20260906.1303...v0.0.39-nightly.20260906.1316 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.39-nightly.20260906.1316
BarretoDiego
pushed a commit
to BarretoDiego/t3code
that referenced
this pull request
Sep 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Settling a thread could spring the row back to the right before it disappeared. Settle now finishes the leftward exit, collapses the gap, and then commits the action. Failed settles restore the row, and recycled rows retain their original pending action.
Intercept the swipe release before Gesture Handler starts its return spring. Full swipes and the Settle button share the dismissal animation and respect Reduce Motion.
Validation: mobile typecheck and 41 thread-list tests pass. Native builds succeeded for the iOS simulator and iPhone; the clip below records two full-swipe settles on an iPhone 15 Pro Max. Simulator interaction testing was stopped at the maintainer's request.
iPhone recording
https://pub-b182a4071edc4521829926b34990540b.r2.dev/files/ed69ef0c-a417-421e-b445-bc7e1a1c7513/ios-settle-after.mp4
Implemented with GPT-6 in Codex, running through T3 Code.
Note
Slide settled threads out of view before collapsing in
ThreadSwipeableRowPromise<boolean>; afalseresult restores the row, and a rejected promise restores mounted rows and shows an error alertReanimatedSwipeablein react-native-gesture-handler@2.32.0.patch to accept a UI-thread release callback that can consume a full swipe release and take over the animation before the built-in spring runsThreadSwipeablenow keys its internal row component onresetKey, so changing a row's content identity (variant or snoozed state) remounts the swipeable instead of reusing stale animation stateSettleis markeddismiss-before-commitin thread-list-v2-items.tsx; the gesture-handler patch must remain in sync with the upstreamReanimatedSwipeablesource or the release callback contract breaksMacroscope summarized e9e7585.