react-native 0.74.4 → 0.74.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +1 -1
  2. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +17 -15
  3. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -13
  4. package/React/Base/RCTVersion.m +1 -1
  5. package/ReactAndroid/api/ReactAndroid.api +0 -9
  6. package/ReactAndroid/gradle.properties +1 -1
  7. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt +49 -0
  8. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java +2 -5
  9. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  10. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.java +1 -1
  11. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +0 -5
  12. package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.cpp +46 -0
  13. package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.h +56 -0
  14. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -0
  15. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  16. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +8 -1
  17. package/ReactCommon/react/nativemodule/samples/platform/android/SampleLegacyModule.java +40 -0
  18. package/package.json +9 -8
  19. package/sdks/.hermesversion +1 -1
  20. package/sdks/hermes-engine/utils/build-ios-framework.sh +0 -2
  21. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  22. package/sdks/hermesc/osx-bin/hermes +0 -0
  23. package/sdks/hermesc/osx-bin/hermesc +0 -0
  24. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  25. package/template/package.json +5 -5
  26. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEvent.java +0 -70
@@ -16,7 +16,7 @@ const version: $ReadOnly<{
16
16
  }> = {
17
17
  major: 0,
18
18
  minor: 74,
19
- patch: 4,
19
+ patch: 6,
20
20
  prerelease: null,
21
21
  };
22
22
 
@@ -182,21 +182,23 @@ type MaximumOneOf<T, K extends keyof T = keyof T> = K extends keyof T
182
182
 
183
183
  export interface TransformsStyle {
184
184
  transform?:
185
- | MaximumOneOf<
186
- PerspectiveTransform &
187
- RotateTransform &
188
- RotateXTransform &
189
- RotateYTransform &
190
- RotateZTransform &
191
- ScaleTransform &
192
- ScaleXTransform &
193
- ScaleYTransform &
194
- TranslateXTransform &
195
- TranslateYTransform &
196
- SkewXTransform &
197
- SkewYTransform &
198
- MatrixTransform
199
- >[]
185
+ | Readonly<
186
+ MaximumOneOf<
187
+ PerspectiveTransform &
188
+ RotateTransform &
189
+ RotateXTransform &
190
+ RotateYTransform &
191
+ RotateZTransform &
192
+ ScaleTransform &
193
+ ScaleXTransform &
194
+ ScaleYTransform &
195
+ TranslateXTransform &
196
+ TranslateYTransform &
197
+ SkewXTransform &
198
+ SkewYTransform &
199
+ MatrixTransform
200
+ >[]
201
+ >
200
202
  | string
201
203
  | undefined;
202
204
  transformOrigin?: Array<string | number> | string | undefined;
@@ -493,8 +493,6 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
493
493
  }
494
494
  }
495
495
 
496
- NSString *previousText = [backedTextInputView.attributedText.string copy] ?: @"";
497
-
498
496
  if (range.location + range.length > backedTextInputView.attributedText.string.length) {
499
497
  _predictedText = backedTextInputView.attributedText.string;
500
498
  } else if (text != nil) {
@@ -502,17 +500,6 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
502
500
  withString:text];
503
501
  }
504
502
 
505
- if (_onTextInput) {
506
- _onTextInput(@{
507
- // We copy the string here because if it's a mutable string it may get released before we stop using it on a
508
- // different thread, causing a crash.
509
- @"text" : [text copy],
510
- @"previousText" : previousText,
511
- @"range" : @{@"start" : @(range.location), @"end" : @(range.location + range.length)},
512
- @"eventCount" : @(_nativeEventCount),
513
- });
514
- }
515
-
516
503
  return text; // Accepting the change.
517
504
  }
518
505
 
@@ -23,7 +23,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(74),
26
- RCTVersionPatch: @(4),
26
+ RCTVersionPatch: @(6),
27
27
  RCTVersionPrerelease: [NSNull null],
28
28
  };
29
29
  });
@@ -7362,15 +7362,6 @@ public class com/facebook/react/views/textinput/ReactTextChangedEvent : com/face
7362
7362
  public fun getEventName ()Ljava/lang/String;
7363
7363
  }
7364
7364
 
7365
- public class com/facebook/react/views/textinput/ReactTextInputEvent : com/facebook/react/uimanager/events/Event {
7366
- public static final field EVENT_NAME Ljava/lang/String;
7367
- public fun <init> (IILjava/lang/String;Ljava/lang/String;II)V
7368
- public fun <init> (ILjava/lang/String;Ljava/lang/String;II)V
7369
- public fun canCoalesce ()Z
7370
- protected fun getEventData ()Lcom/facebook/react/bridge/WritableMap;
7371
- public fun getEventName ()Ljava/lang/String;
7372
- }
7373
-
7374
7365
  public final class com/facebook/react/views/textinput/ReactTextInputLocalData {
7375
7366
  public fun <init> (Landroid/widget/EditText;)V
7376
7367
  public fun apply (Landroid/widget/EditText;)V
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.74.4
1
+ VERSION_NAME=0.74.6
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
 
4
4
  android.useAndroidX=true
@@ -0,0 +1,49 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.react.bridge
9
+
10
+ import com.facebook.jni.HybridData
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import com.facebook.proguard.annotations.DoNotStripAny
13
+
14
+ /**
15
+ * An implementation of [Dynamic] that has a C++ implementation.
16
+ *
17
+ * This is used to support Legacy Native Modules that have not been migrated to the new architecture
18
+ * and are using [Dynamic] as a parameter type.
19
+ */
20
+ @DoNotStripAny
21
+ private class DynamicNative(
22
+ @Suppress("NoHungarianNotation") @field:DoNotStrip private val mHybridData: HybridData?
23
+ ) : Dynamic {
24
+
25
+ override fun getType(): ReadableType = getTypeNative()
26
+
27
+ override fun isNull(): Boolean = isNullNative()
28
+
29
+ private external fun getTypeNative(): ReadableType
30
+
31
+ private external fun isNullNative(): Boolean
32
+
33
+ external override fun asBoolean(): Boolean
34
+
35
+ // The native representation is holding the value as Double. We do the Int conversion here.
36
+ override fun asInt(): Int = asDouble().toInt()
37
+
38
+ external override fun asDouble(): Double
39
+
40
+ external override fun asString(): String
41
+
42
+ external override fun asArray(): ReadableArray
43
+
44
+ external override fun asMap(): ReadableMap
45
+
46
+ override fun recycle() {
47
+ // Noop - nothing to recycle since there is no pooling
48
+ }
49
+ }
@@ -161,14 +161,11 @@ class TurboModuleInteropUtils {
161
161
  || paramClass == Callback.class
162
162
  || paramClass == Promise.class
163
163
  || paramClass == ReadableMap.class
164
- || paramClass == ReadableArray.class) {
164
+ || paramClass == ReadableArray.class
165
+ || paramClass == Dynamic.class) {
165
166
  return convertClassToJniType(paramClass);
166
167
  }
167
168
 
168
- if (paramClass == Dynamic.class) {
169
- // TODO(T145105887): Output warnings that TurboModules doesn't yet support Dynamic arguments
170
- }
171
-
172
169
  throw new ParsingException(
173
170
  moduleName,
174
171
  methodName,
@@ -17,6 +17,6 @@ public class ReactNativeVersion {
17
17
  public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
18
18
  "major", 0,
19
19
  "minor", 74,
20
- "patch", 4,
20
+ "patch", 6,
21
21
  "prerelease", null);
22
22
  }
@@ -14,7 +14,7 @@ import com.facebook.react.uimanager.common.ViewUtil;
14
14
  import com.facebook.react.uimanager.events.Event;
15
15
 
16
16
  /** Event emitted by EditText native view when key pressed */
17
- class ReactTextInputKeyPressEvent extends Event<ReactTextInputEvent> {
17
+ /* package */ class ReactTextInputKeyPressEvent extends Event<ReactTextInputKeyPressEvent> {
18
18
 
19
19
  public static final String EVENT_NAME = "topKeyPress";
20
20
 
@@ -1122,17 +1122,12 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
1122
1122
  }
1123
1123
 
1124
1124
  // The event that contains the event counter and updates it must be sent first.
1125
- // TODO: t7936714 merge these events
1126
1125
  mEventDispatcher.dispatchEvent(
1127
1126
  new ReactTextChangedEvent(
1128
1127
  mSurfaceId,
1129
1128
  mEditText.getId(),
1130
1129
  s.toString(),
1131
1130
  mEditText.incrementAndGetEventCounter()));
1132
-
1133
- mEventDispatcher.dispatchEvent(
1134
- new ReactTextInputEvent(
1135
- mSurfaceId, mEditText.getId(), newText, oldText, start, start + before));
1136
1131
  }
1137
1132
 
1138
1133
  @Override
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #include "JDynamicNative.h"
9
+ #include "ReadableNativeArray.h"
10
+ #include "ReadableNativeMap.h"
11
+
12
+ using namespace facebook::jni;
13
+
14
+ namespace facebook::react {
15
+
16
+ jboolean JDynamicNative::isNullNative() {
17
+ return payload_.isNull();
18
+ }
19
+
20
+ jni::local_ref<ReadableType> JDynamicNative::getTypeNative() {
21
+ return ReadableType::getType(payload_.type());
22
+ }
23
+
24
+ jni::local_ref<jstring> JDynamicNative::asString() {
25
+ return jni::make_jstring(payload_.asString());
26
+ }
27
+
28
+ jboolean JDynamicNative::asBoolean() {
29
+ return payload_.asBool();
30
+ }
31
+
32
+ jdouble JDynamicNative::asDouble() {
33
+ return payload_.asDouble();
34
+ }
35
+
36
+ jni::local_ref<ReadableArray> JDynamicNative::asArray() {
37
+ return jni::adopt_local(reinterpret_cast<ReadableArray::javaobject>(
38
+ ReadableNativeArray::newObjectCxxArgs(payload_).release()));
39
+ }
40
+
41
+ jni::local_ref<ReadableMap> JDynamicNative::asMap() {
42
+ return jni::adopt_local(reinterpret_cast<ReadableMap::javaobject>(
43
+ ReadableNativeMap::createWithContents(std::move(payload_)).release()));
44
+ }
45
+
46
+ } // namespace facebook::react
@@ -0,0 +1,56 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include "NativeCommon.h"
11
+ #include "ReadableNativeArray.h"
12
+ #include "ReadableNativeMap.h"
13
+
14
+ #include <fbjni/fbjni.h>
15
+ #include <folly/dynamic.h>
16
+ #include <folly/json.h>
17
+
18
+ namespace facebook::react {
19
+
20
+ struct JDynamic : public jni::JavaClass<JDynamic> {
21
+ constexpr static auto kJavaDescriptor = "Lcom/facebook/react/bridge/Dynamic;";
22
+ };
23
+
24
+ class JDynamicNative : public jni::HybridClass<JDynamicNative, JDynamic> {
25
+ public:
26
+ constexpr static auto kJavaDescriptor =
27
+ "Lcom/facebook/react/bridge/DynamicNative;";
28
+
29
+ JDynamicNative(folly::dynamic payload) : payload_(std::move(payload)) {}
30
+
31
+ static void registerNatives() {
32
+ javaClassStatic()->registerNatives(
33
+ {makeNativeMethod("isNullNative", JDynamicNative::isNullNative),
34
+ makeNativeMethod("getTypeNative", JDynamicNative::getTypeNative),
35
+ makeNativeMethod("asDouble", JDynamicNative::asDouble),
36
+ makeNativeMethod("asBoolean", JDynamicNative::asBoolean),
37
+ makeNativeMethod("asString", JDynamicNative::asString),
38
+ makeNativeMethod("asArray", JDynamicNative::asArray),
39
+ makeNativeMethod("asMap", JDynamicNative::asMap)});
40
+ }
41
+
42
+ private:
43
+ friend HybridBase;
44
+
45
+ jni::local_ref<ReadableType> getTypeNative();
46
+ jni::local_ref<jstring> asString();
47
+ jboolean asBoolean();
48
+ jdouble asDouble();
49
+ jboolean isNullNative();
50
+ jni::local_ref<ReadableArray> asArray();
51
+ jni::local_ref<ReadableMap> asMap();
52
+
53
+ folly::dynamic payload_;
54
+ };
55
+
56
+ } // namespace facebook::react
@@ -15,6 +15,7 @@
15
15
  #include "CatalystInstanceImpl.h"
16
16
  #include "CxxModuleWrapperBase.h"
17
17
  #include "JCallback.h"
18
+ #include "JDynamicNative.h"
18
19
  #include "JInspector.h"
19
20
  #include "JReactMarker.h"
20
21
  #include "JavaScriptExecutorHolder.h"
@@ -88,6 +89,7 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) {
88
89
  NativeMap::registerNatives();
89
90
  ReadableNativeMap::registerNatives();
90
91
  WritableNativeMap::registerNatives();
92
+ JDynamicNative::registerNatives();
91
93
  JReactMarker::registerNatives();
92
94
  JInspector::registerNatives();
93
95
  });
@@ -17,7 +17,7 @@ namespace facebook::react {
17
17
  constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 74;
20
- int32_t Patch = 4;
20
+ int32_t Patch = 6;
21
21
  std::string_view Prerelease = "";
22
22
  } ReactNativeVersion;
23
23
 
@@ -19,6 +19,7 @@
19
19
  #include <jsi/JSIDynamic.h>
20
20
  #include <react/bridging/Bridging.h>
21
21
  #include <react/debug/react_native_assert.h>
22
+ #include <react/jni/JDynamicNative.h>
22
23
  #include <react/jni/NativeMap.h>
23
24
  #include <react/jni/ReadableNativeMap.h>
24
25
  #include <react/jni/WritableNativeMap.h>
@@ -370,7 +371,9 @@ JNIArgs convertJSIArgsToJNIArgs(
370
371
  continue;
371
372
  }
372
373
 
373
- if (arg->isNull() || arg->isUndefined()) {
374
+ // Dynamic encapsulates the Null type so we don't want to return null here.
375
+ if ((arg->isNull() && type != "Lcom/facebook/react/bridge/Dynamic;") ||
376
+ arg->isUndefined()) {
374
377
  jarg->l = nullptr;
375
378
  } else if (type == "Ljava/lang/Double;") {
376
379
  if (!arg->isNumber()) {
@@ -433,6 +436,10 @@ JNIArgs convertJSIArgsToJNIArgs(
433
436
  auto jParams =
434
437
  ReadableNativeMap::createWithContents(std::move(dynamicFromValue));
435
438
  jarg->l = makeGlobalIfNecessary(jParams.release());
439
+ } else if (type == "Lcom/facebook/react/bridge/Dynamic;") {
440
+ auto dynamicFromValue = jsi::dynamicFromValue(rt, *arg);
441
+ auto jParams = JDynamicNative::newObjectCxxArgs(dynamicFromValue);
442
+ jarg->l = makeGlobalIfNecessary(jParams.release());
436
443
  } else {
437
444
  throw JavaTurboModuleInvalidArgumentTypeException(
438
445
  type, argIndex, methodName);
@@ -13,12 +13,14 @@ import android.widget.Toast;
13
13
  import com.facebook.proguard.annotations.DoNotStrip;
14
14
  import com.facebook.react.bridge.Arguments;
15
15
  import com.facebook.react.bridge.Callback;
16
+ import com.facebook.react.bridge.Dynamic;
16
17
  import com.facebook.react.bridge.Promise;
17
18
  import com.facebook.react.bridge.ReactApplicationContext;
18
19
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
20
  import com.facebook.react.bridge.ReactMethod;
20
21
  import com.facebook.react.bridge.ReadableArray;
21
22
  import com.facebook.react.bridge.ReadableMap;
23
+ import com.facebook.react.bridge.ReadableType;
22
24
  import com.facebook.react.bridge.WritableArray;
23
25
  import com.facebook.react.bridge.WritableMap;
24
26
  import com.facebook.react.bridge.WritableNativeArray;
@@ -155,6 +157,44 @@ public class SampleLegacyModule extends ReactContextBaseJavaModule {
155
157
  return map;
156
158
  }
157
159
 
160
+ @SuppressWarnings("unused")
161
+ @ReactMethod(isBlockingSynchronousMethod = true)
162
+ public WritableMap getDynamic(Dynamic dynamic) {
163
+ WritableNativeMap resultMap = new WritableNativeMap();
164
+ ReadableType type = dynamic.getType();
165
+ if (type == ReadableType.Null) {
166
+ log("getDynamic as Null", dynamic, dynamic);
167
+ resultMap.putString("type", "Null");
168
+ resultMap.putNull("value");
169
+ } else if (type == ReadableType.Boolean) {
170
+ boolean result = dynamic.asBoolean();
171
+ log("getDynamic as Boolean", dynamic, result);
172
+ resultMap.putString("type", "Boolean");
173
+ resultMap.putBoolean("value", result);
174
+ } else if (type == ReadableType.Number) {
175
+ int result = dynamic.asInt();
176
+ log("getDynamic as Number", dynamic, result);
177
+ resultMap.putString("type", "Number");
178
+ resultMap.putInt("value", result);
179
+ } else if (type == ReadableType.String) {
180
+ String result = dynamic.asString();
181
+ log("getDynamic as String", dynamic, result);
182
+ resultMap.putString("type", "String");
183
+ resultMap.putString("value", result);
184
+ } else if (type == ReadableType.Array) {
185
+ ReadableArray result = dynamic.asArray();
186
+ log("getDynamic as Array", dynamic, result);
187
+ resultMap.putString("type", "Array");
188
+ resultMap.putArray("value", result);
189
+ } else if (type == ReadableType.Map) {
190
+ ReadableMap result = dynamic.asMap();
191
+ log("getDynamic as Map", dynamic, result);
192
+ resultMap.putString("type", "Map");
193
+ resultMap.putMap("value", result);
194
+ }
195
+ return resultMap;
196
+ }
197
+
158
198
  @DoNotStrip
159
199
  @SuppressWarnings("unused")
160
200
  @ReactMethod(isBlockingSynchronousMethod = true)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.74.4",
3
+ "version": "0.74.6",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -110,13 +110,13 @@
110
110
  "@react-native-community/cli": "13.6.9",
111
111
  "@react-native-community/cli-platform-android": "13.6.9",
112
112
  "@react-native-community/cli-platform-ios": "13.6.9",
113
- "@react-native/assets-registry": "0.74.86",
114
- "@react-native/codegen": "0.74.86",
115
- "@react-native/community-cli-plugin": "0.74.86",
116
- "@react-native/gradle-plugin": "0.74.86",
117
- "@react-native/js-polyfills": "0.74.86",
118
- "@react-native/normalize-colors": "0.74.86",
119
- "@react-native/virtualized-lists": "0.74.86",
113
+ "@react-native/assets-registry": "0.74.88",
114
+ "@react-native/codegen": "0.74.88",
115
+ "@react-native/community-cli-plugin": "0.74.88",
116
+ "@react-native/gradle-plugin": "0.74.88",
117
+ "@react-native/js-polyfills": "0.74.88",
118
+ "@react-native/normalize-colors": "0.74.88",
119
+ "@react-native/virtualized-lists": "0.74.88",
120
120
  "abort-controller": "^3.0.0",
121
121
  "anser": "^1.4.9",
122
122
  "ansi-regex": "^5.0.0",
@@ -124,6 +124,7 @@
124
124
  "chalk": "^4.0.0",
125
125
  "event-target-shim": "^5.0.1",
126
126
  "flow-enums-runtime": "^0.0.6",
127
+ "glob": "^7.1.1",
127
128
  "invariant": "^2.2.4",
128
129
  "jest-environment-node": "^29.6.3",
129
130
  "jsc-android": "^250231.0.0",
@@ -1 +1 @@
1
- hermes-2024-06-28-RNv0.74.3-7bda0c267e76d11b68a585f84cfdd65000babf85
1
+ hermes-2024-09-30-RNv0.74.6-6f503f52cbf98b2b37c4d3900e7f1193d6512548
@@ -27,10 +27,8 @@ function get_architecture {
27
27
  function get_deployment_target {
28
28
  if [[ $1 == "xros" || $1 == "xrsimulator" ]]; then
29
29
  echo "$(get_visionos_deployment_target)"
30
- return
31
30
  else
32
31
  echo "$(get_ios_deployment_target)"
33
- return
34
32
  fi
35
33
  }
36
34
 
Binary file
Binary file
Binary file
Binary file
@@ -11,16 +11,16 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "react": "18.2.0",
14
- "react-native": "0.74.4"
14
+ "react-native": "0.74.6"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@babel/core": "^7.20.0",
18
18
  "@babel/preset-env": "^7.20.0",
19
19
  "@babel/runtime": "^7.20.0",
20
- "@react-native/babel-preset": "0.74.86",
21
- "@react-native/eslint-config": "0.74.86",
22
- "@react-native/metro-config": "0.74.86",
23
- "@react-native/typescript-config": "0.74.86",
20
+ "@react-native/babel-preset": "0.74.88",
21
+ "@react-native/eslint-config": "0.74.88",
22
+ "@react-native/metro-config": "0.74.88",
23
+ "@react-native/typescript-config": "0.74.88",
24
24
  "@types/react": "^18.2.6",
25
25
  "@types/react-test-renderer": "^18.0.0",
26
26
  "babel-jest": "^29.6.3",
@@ -1,70 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- package com.facebook.react.views.textinput;
9
-
10
- import androidx.annotation.Nullable;
11
- import com.facebook.react.bridge.Arguments;
12
- import com.facebook.react.bridge.WritableMap;
13
- import com.facebook.react.uimanager.common.ViewUtil;
14
- import com.facebook.react.uimanager.events.Event;
15
-
16
- /**
17
- * Event emitted by EditText native view when text changes. VisibleForTesting from {@link
18
- * TextInputEventsTestCase}.
19
- */
20
- public class ReactTextInputEvent extends Event<ReactTextInputEvent> {
21
-
22
- public static final String EVENT_NAME = "topTextInput";
23
-
24
- private String mText;
25
- private String mPreviousText;
26
- private int mRangeStart;
27
- private int mRangeEnd;
28
-
29
- @Deprecated
30
- public ReactTextInputEvent(
31
- int viewId, String text, String previousText, int rangeStart, int rangeEnd) {
32
- this(ViewUtil.NO_SURFACE_ID, viewId, text, previousText, rangeStart, rangeEnd);
33
- }
34
-
35
- public ReactTextInputEvent(
36
- int surfaceId, int viewId, String text, String previousText, int rangeStart, int rangeEnd) {
37
- super(surfaceId, viewId);
38
- mText = text;
39
- mPreviousText = previousText;
40
- mRangeStart = rangeStart;
41
- mRangeEnd = rangeEnd;
42
- }
43
-
44
- @Override
45
- public String getEventName() {
46
- return EVENT_NAME;
47
- }
48
-
49
- @Override
50
- public boolean canCoalesce() {
51
- // We don't want to miss any textinput event, as event data is incremental.
52
- return false;
53
- }
54
-
55
- @Nullable
56
- @Override
57
- protected WritableMap getEventData() {
58
- WritableMap eventData = Arguments.createMap();
59
- WritableMap range = Arguments.createMap();
60
- range.putDouble("start", mRangeStart);
61
- range.putDouble("end", mRangeEnd);
62
-
63
- eventData.putString("text", mText);
64
- eventData.putString("previousText", mPreviousText);
65
- eventData.putMap("range", range);
66
-
67
- eventData.putInt("target", getViewTag());
68
- return eventData;
69
- }
70
- }