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.
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +17 -15
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -13
- package/React/Base/RCTVersion.m +1 -1
- package/ReactAndroid/api/ReactAndroid.api +0 -9
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt +49 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java +2 -5
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputKeyPressEvent.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +0 -5
- package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.cpp +46 -0
- package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.h +56 -0
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +2 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +8 -1
- package/ReactCommon/react/nativemodule/samples/platform/android/SampleLegacyModule.java +40 -0
- package/package.json +9 -8
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/utils/build-ios-framework.sh +0 -2
- package/sdks/hermesc/linux64-bin/hermesc +0 -0
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/template/package.json +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEvent.java +0 -70
|
@@ -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
|
-
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
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
|
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -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
|
|
@@ -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,
|
|
@@ -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<
|
|
17
|
+
/* package */ class ReactTextInputKeyPressEvent extends Event<ReactTextInputKeyPressEvent> {
|
|
18
18
|
|
|
19
19
|
public static final String EVENT_NAME = "topKeyPress";
|
|
20
20
|
|
package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java
CHANGED
|
@@ -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
|
});
|
package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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.
|
|
114
|
-
"@react-native/codegen": "0.74.
|
|
115
|
-
"@react-native/community-cli-plugin": "0.74.
|
|
116
|
-
"@react-native/gradle-plugin": "0.74.
|
|
117
|
-
"@react-native/js-polyfills": "0.74.
|
|
118
|
-
"@react-native/normalize-colors": "0.74.
|
|
119
|
-
"@react-native/virtualized-lists": "0.74.
|
|
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",
|
package/sdks/.hermesversion
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
hermes-2024-
|
|
1
|
+
hermes-2024-09-30-RNv0.74.6-6f503f52cbf98b2b37c4d3900e7f1193d6512548
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/template/package.json
CHANGED
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"react": "18.2.0",
|
|
14
|
-
"react-native": "0.74.
|
|
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.
|
|
21
|
-
"@react-native/eslint-config": "0.74.
|
|
22
|
-
"@react-native/metro-config": "0.74.
|
|
23
|
-
"@react-native/typescript-config": "0.74.
|
|
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",
|
package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputEvent.java
DELETED
|
@@ -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
|
-
}
|