mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
chore: Remove deprecated onTextInput callback (#44351)
Summary: 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. Let's just remove it altogether? ## Changelog: [IOS] [REMOVED] - Remove deprecated onTextInput callback Pull Request resolved: https://github.com/facebook/react-native/pull/44351 Test Plan: CI should pass Reviewed By: NickGerleman Differential Revision: D56804590 Pulled By: javache fbshipit-source-id: 89101fa53cdc628a97ba176cf3deca691784bfdd
This commit is contained in:
committed by
Facebook GitHub Bot
parent
06eea61c19
commit
24aece35b4
-15
@@ -385,15 +385,6 @@ export type NativeProps = $ReadOnly<{|
|
||||
|}>,
|
||||
>,
|
||||
|
||||
onTextInput?: ?BubblingEventHandler<
|
||||
$ReadOnly<{|
|
||||
target: Int32,
|
||||
text: string,
|
||||
previousText: string,
|
||||
range: $ReadOnly<{|start: Double, end: Double|}>,
|
||||
|}>,
|
||||
>,
|
||||
|
||||
/**
|
||||
* Callback that is called when text input ends.
|
||||
*/
|
||||
@@ -662,12 +653,6 @@ export const __INTERNAL_VIEW_CONFIG: PartialViewConfig = {
|
||||
captured: 'onSubmitEditingCapture',
|
||||
},
|
||||
},
|
||||
topTextInput: {
|
||||
phasedRegistrationNames: {
|
||||
bubbled: 'onTextInput',
|
||||
captured: 'onTextInputCapture',
|
||||
},
|
||||
},
|
||||
},
|
||||
directEventTypes: {
|
||||
topScroll: {
|
||||
|
||||
-4
@@ -76,9 +76,6 @@ const RCTTextInputViewConfig = {
|
||||
},
|
||||
},
|
||||
directEventTypes: {
|
||||
topTextInput: {
|
||||
registrationName: 'onTextInput',
|
||||
},
|
||||
topScroll: {
|
||||
registrationName: 'onScroll',
|
||||
},
|
||||
@@ -153,7 +150,6 @@ const RCTTextInputViewConfig = {
|
||||
onSelectionChange: true,
|
||||
onContentSizeChange: true,
|
||||
onScroll: true,
|
||||
onTextInput: true,
|
||||
}),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -485,15 +485,6 @@ export interface TextInputSubmitEditingEventData {
|
||||
text: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see TextInputProps.onTextInput
|
||||
*/
|
||||
export interface TextInputTextInputEventData {
|
||||
text: string;
|
||||
previousText: string;
|
||||
range: {start: number; end: number};
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://reactnative.dev/docs/textinput#props
|
||||
*/
|
||||
@@ -787,16 +778,6 @@ export interface TextInputProps
|
||||
| ((e: NativeSyntheticEvent<TextInputSubmitEditingEventData>) => void)
|
||||
| undefined;
|
||||
|
||||
/**
|
||||
* Callback that is called on new text input with the argument
|
||||
* `{ nativeEvent: { text, previousText, range: { start, end } } }`.
|
||||
*
|
||||
* This prop requires multiline={true} to be set.
|
||||
*/
|
||||
onTextInput?:
|
||||
| ((e: NativeSyntheticEvent<TextInputTextInputEventData>) => void)
|
||||
| undefined;
|
||||
|
||||
/**
|
||||
* Invoked on content scroll with
|
||||
* `{ nativeEvent: { contentOffset: { x, y } } }`.
|
||||
|
||||
@@ -36,7 +36,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property (nonatomic, copy, nullable) RCTDirectEventBlock onSelectionChange;
|
||||
@property (nonatomic, copy, nullable) RCTDirectEventBlock onChange;
|
||||
@property (nonatomic, copy, nullable) RCTDirectEventBlock onChangeSync;
|
||||
@property (nonatomic, copy, nullable) RCTDirectEventBlock onTextInput;
|
||||
@property (nonatomic, copy, nullable) RCTDirectEventBlock onScroll;
|
||||
|
||||
@property (nonatomic, assign) NSInteger mostRecentEventCount;
|
||||
|
||||
@@ -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.
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,6 @@ RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
|
||||
RCT_EXPORT_VIEW_PROPERTY(onKeyPressSync, RCTDirectEventBlock)
|
||||
RCT_EXPORT_VIEW_PROPERTY(onChangeSync, RCTDirectEventBlock)
|
||||
RCT_EXPORT_VIEW_PROPERTY(onSelectionChange, RCTDirectEventBlock)
|
||||
RCT_EXPORT_VIEW_PROPERTY(onTextInput, RCTDirectEventBlock)
|
||||
RCT_EXPORT_VIEW_PROPERTY(onScroll, RCTDirectEventBlock)
|
||||
|
||||
RCT_EXPORT_VIEW_PROPERTY(mostRecentEventCount, NSInteger)
|
||||
|
||||
@@ -2281,14 +2281,6 @@ export type NativeProps = $ReadOnly<{|
|
||||
contentSize: $ReadOnly<{| width: Double, height: Double |}>,
|
||||
|}>,
|
||||
>,
|
||||
onTextInput?: ?BubblingEventHandler<
|
||||
$ReadOnly<{|
|
||||
target: Int32,
|
||||
text: string,
|
||||
previousText: string,
|
||||
range: $ReadOnly<{| start: Double, end: Double |}>,
|
||||
|}>,
|
||||
>,
|
||||
onEndEditing?: ?BubblingEventHandler<
|
||||
$ReadOnly<{| target: Int32, text: string |}>,
|
||||
>,
|
||||
|
||||
@@ -7662,15 +7662,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";
|
||||
|
||||
|
||||
-10
@@ -230,11 +230,6 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
||||
MapBuilder.of(
|
||||
"phasedRegistrationNames",
|
||||
MapBuilder.of("bubbled", "onEndEditing", "captured", "onEndEditingCapture")))
|
||||
.put(
|
||||
"topTextInput",
|
||||
MapBuilder.of(
|
||||
"phasedRegistrationNames",
|
||||
MapBuilder.of("bubbled", "onTextInput", "captured", "onTextInputCapture")))
|
||||
.put(
|
||||
"topFocus",
|
||||
MapBuilder.of(
|
||||
@@ -1120,17 +1115,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