mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Stop emitting deprecated onTextInput events (#44479)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44479 TextInputs' onTextInput callback was removed way back in React Native 0.62 with https://github.com/facebook/react-native/commit/3f7e0a2c9601fc186f25bfd794cd0008ac3983ab , but remnants of the implementation exists. We first have to remove the event emitting in native code, and can land the full removal separately in D57092733, once there's no older client references remaining to this event. Changelog: [General][Removed] Remove deprecated onTextInput callback Reviewed By: cipolleschi Differential Revision: D57092734 fbshipit-source-id: 5b0beee3d55b70717216fe8ceaf52444540f5adc
This commit is contained in:
committed by
Thibault Malbranche
parent
10e9669ad1
commit
5da40cbb1c
@@ -493,8 +493,6 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
|
||||
}
|
||||
}
|
||||
|
||||
NSString *previousText = [backedTextInputView.attributedText.string copy] ?: @"";
|
||||
|
||||
if (range.location + range.length > backedTextInputView.attributedText.string.length) {
|
||||
_predictedText = backedTextInputView.attributedText.string;
|
||||
} else if (text != nil) {
|
||||
@@ -502,17 +500,6 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
|
||||
withString:text];
|
||||
}
|
||||
|
||||
if (_onTextInput) {
|
||||
_onTextInput(@{
|
||||
// We copy the string here because if it's a mutable string it may get released before we stop using it on a
|
||||
// different thread, causing a crash.
|
||||
@"text" : [text copy],
|
||||
@"previousText" : previousText,
|
||||
@"range" : @{@"start" : @(range.location), @"end" : @(range.location + range.length)},
|
||||
@"eventCount" : @(_nativeEventCount),
|
||||
});
|
||||
}
|
||||
|
||||
return text; // Accepting the change.
|
||||
}
|
||||
|
||||
|
||||
@@ -7362,15 +7362,6 @@ public class com/facebook/react/views/textinput/ReactTextChangedEvent : com/face
|
||||
public fun getEventName ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public class com/facebook/react/views/textinput/ReactTextInputEvent : com/facebook/react/uimanager/events/Event {
|
||||
public static final field EVENT_NAME Ljava/lang/String;
|
||||
public fun <init> (IILjava/lang/String;Ljava/lang/String;II)V
|
||||
public fun <init> (ILjava/lang/String;Ljava/lang/String;II)V
|
||||
public fun canCoalesce ()Z
|
||||
protected fun getEventData ()Lcom/facebook/react/bridge/WritableMap;
|
||||
public fun getEventName ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class com/facebook/react/views/textinput/ReactTextInputLocalData {
|
||||
public fun <init> (Landroid/widget/EditText;)V
|
||||
public fun apply (Landroid/widget/EditText;)V
|
||||
|
||||
-70
@@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.views.textinput;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.uimanager.common.ViewUtil;
|
||||
import com.facebook.react.uimanager.events.Event;
|
||||
|
||||
/**
|
||||
* Event emitted by EditText native view when text changes. VisibleForTesting from {@link
|
||||
* TextInputEventsTestCase}.
|
||||
*/
|
||||
public class ReactTextInputEvent extends Event<ReactTextInputEvent> {
|
||||
|
||||
public static final String EVENT_NAME = "topTextInput";
|
||||
|
||||
private String mText;
|
||||
private String mPreviousText;
|
||||
private int mRangeStart;
|
||||
private int mRangeEnd;
|
||||
|
||||
@Deprecated
|
||||
public ReactTextInputEvent(
|
||||
int viewId, String text, String previousText, int rangeStart, int rangeEnd) {
|
||||
this(ViewUtil.NO_SURFACE_ID, viewId, text, previousText, rangeStart, rangeEnd);
|
||||
}
|
||||
|
||||
public ReactTextInputEvent(
|
||||
int surfaceId, int viewId, String text, String previousText, int rangeStart, int rangeEnd) {
|
||||
super(surfaceId, viewId);
|
||||
mText = text;
|
||||
mPreviousText = previousText;
|
||||
mRangeStart = rangeStart;
|
||||
mRangeEnd = rangeEnd;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventName() {
|
||||
return EVENT_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCoalesce() {
|
||||
// We don't want to miss any textinput event, as event data is incremental.
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
protected WritableMap getEventData() {
|
||||
WritableMap eventData = Arguments.createMap();
|
||||
WritableMap range = Arguments.createMap();
|
||||
range.putDouble("start", mRangeStart);
|
||||
range.putDouble("end", mRangeEnd);
|
||||
|
||||
eventData.putString("text", mText);
|
||||
eventData.putString("previousText", mPreviousText);
|
||||
eventData.putMap("range", range);
|
||||
|
||||
eventData.putInt("target", getViewTag());
|
||||
return eventData;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -14,7 +14,7 @@ import com.facebook.react.uimanager.common.ViewUtil;
|
||||
import com.facebook.react.uimanager.events.Event;
|
||||
|
||||
/** Event emitted by EditText native view when key pressed */
|
||||
class ReactTextInputKeyPressEvent extends Event<ReactTextInputEvent> {
|
||||
/* package */ class ReactTextInputKeyPressEvent extends Event<ReactTextInputKeyPressEvent> {
|
||||
|
||||
public static final String EVENT_NAME = "topKeyPress";
|
||||
|
||||
|
||||
-5
@@ -1122,17 +1122,12 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
}
|
||||
|
||||
// The event that contains the event counter and updates it must be sent first.
|
||||
// TODO: t7936714 merge these events
|
||||
mEventDispatcher.dispatchEvent(
|
||||
new ReactTextChangedEvent(
|
||||
mSurfaceId,
|
||||
mEditText.getId(),
|
||||
s.toString(),
|
||||
mEditText.incrementAndGetEventCounter()));
|
||||
|
||||
mEventDispatcher.dispatchEvent(
|
||||
new ReactTextInputEvent(
|
||||
mSurfaceId, mEditText.getId(), newText, oldText, start, start + before));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user