Skip to content

Conversation

@protikbiswas100
Copy link
Contributor

@protikbiswas100 protikbiswas100 commented Oct 23, 2025

Description

TextInput regression between Paper and Fabric: Manual set value clearTextOnSubmit-style behavior not working

Type of Change

  • Bug fix (non-breaking change which fixes an issue)

Why

The issue is that JavaScript receives onSubmitEditing with eventCount N, but when it immediately calls setValue(''), native has already moved to N+1, so the JS command gets rejected. This causes mismatch between JS and Native side

Resolves [https://github.com//issues/15168]

What

The issue is that JavaScript receives onSubmitEditing with eventCount N, but when it immediately calls setValue('') native has already moved to N+1, so the JS command gets rejected. To fix the issue the solution taken is don't increment the event count until AFTER the JavaScript has had a chance to respond to the submit event.

Screenshots

Before

15168-before.mp4

After

15168-after.mp4

Testing

yarn build passed successfully, added a sample textInput field in RNTester-Fabric app to repro the issue.

Ran E2ETestAppFabric Unit Test
build

Changelog

Should this change be included in the release notes: yes

Added synchroinization logic betwwen JS and native layer onClearSubmit is not working

Microsoft Reviewers: Open in CodeFlow
Microsoft Reviewers: Open in CodeFlow

@protikbiswas100 protikbiswas100 requested a review from a team as a code owner October 23, 2025 05:25
@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes a regression in TextInput behavior between Paper and Fabric architectures where manual value clearing on submit (clearTextOnSubmit-style behavior) was not working correctly. The issue occurred when JavaScript immediately updated the text value during onSubmitEditing, causing synchronization problems between native and JS state.

Key Changes:

  • Modified event count validation to accept immediate JS updates by changing the condition from eventCount >= m_nativeEventCount to eventCount >= m_nativeEventCount - 1
  • Added state synchronization when clearing text to ensure React state stays consistent with native TextInput state

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
vnext/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp Modified event count check and added state update logic when clearing text on submit
change/react-native-windows-daac39ef-4292-4f66-81ae-708b1c0f6676.json Added change file for versioning

…76.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@anupriya13
Copy link
Contributor

anupriya13 commented Oct 23, 2025

In the video when you pressed enter in last text input why did it have the value "backslash" instead of empty?

@protikbiswas100
Copy link
Contributor Author

In the video when you pressed enter in last text input why did it have the value "backslash" instead of empty?

I pressed back slash key by mistake after pressing enter from my keyboard

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@anupriya13
Copy link
Contributor

In the video when you pressed enter in last text input why did it have the value "backslash" instead of empty?

I pressed back slash key by mistake after pressing enter from my keyboard

Okay can you please re-record and attach correct before and after videos?

@anupriya13
Copy link
Contributor

anupriya13 commented Oct 23, 2025

Description Summary missing in the end.
"Add a brief summary of the change to use in the release notes for the next release."

@anupriya13
Copy link
Contributor

E2ETestAppFabric Unit Test verification?

@protikbiswas100
Copy link
Contributor Author

In the video when you pressed enter in last text input why did it have the value "backslash" instead of empty?

I pressed back slash key by mistake after pressing enter from my keyboard

Okay can you please re-record and attach correct before and after videos?

reuploaded before and after videos

@protikbiswas100
Copy link
Contributor Author

E2ETestAppFabric Unit Test verification

Added in next commit

@protikbiswas100
Copy link
Contributor Author

Description Summary missing in the end. "Add a brief summary of the change to use in the release notes for the next release."

It's already there in description

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@protikbiswas100
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@acoates-ms
Copy link
Contributor

This same issue seems to repro on iOS. So I think we can wont fix this issue.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants