Skip to content

[Bug]: iOS composer requires tapping outside text box before Send works on follow-up messages #11755

Description

@iniTwakkie

Area

apps/mobile

Steps to reproduce

  1. Open a thread in the T3 Code iOS companion app (or start a task from mobile).
  2. Wait for the initial response from the agent so the transcript / message feed is populated.
  3. Tap the chat composer text input to bring up the iOS keyboard and type a follow-up message.
  4. While the keyboard is active and the text input remains focused, tap the Send button (arrow up).
    • The message is not sent.
  5. Tap outside the message input box (into the transcript feed), dismissing the keyboard and blurring the composer.
  6. Tap the Send button again.
    • The message sends as expected.

(Note: On the initial task draft screen, typing a message and immediately tapping Send works on the first tap without this issue.)

Actual behavior

Tapping the Send button while the composer text input is focused does not dispatch the message. The tap is swallowed / consumed by the blur/dismiss gesture, collapsing the composer or dismissing the keyboard without triggering the send action. The user must tap outside the text box first to dismiss the keyboard, and only then does the Send button respond to taps.

Expected behavior

Tapping the Send button while typing should immediately dispatch the message on the first tap, without requiring the user to blur the input beforehand.

Workaround

Tap anywhere outside the composer input box into the transcript feed to dismiss the keyboard and blur the composer first, then tap the Send button.

Supporting investigation

Source inspection of apps/mobile:

  • In ThreadDetailScreen.tsx, the feed is wrapped with touch gesture handlers (BlurTargetView with onTouchStart / onTouchEnd triggering collapseComposer()), and LegendList is configured with keyboardDismissMode="none".
  • In ThreadComposer.tsx, when typing, the composer is in an expanded state (isExpanded = true) within KeyboardStickyView. When the Send button is tapped while the native text editor is the active first responder, the tap event triggers input blur and layout transitions (COMPOSER_LAYOUT_TRANSITION) before ComposerActionButton's onPress callback can fire.
  • In contrast, NewTaskDraftScreen.tsx (where the initial message works on first tap) does not render the active ThreadFeed / LegendList touch responder overlay behind the composer.

Environment

  • Platform: iOS
  • App: T3 Code Mobile Companion (React Native / Expo)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedfeature request acceptedbugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions