react-native 0.83.0-nightly-20251029-3f971d931 → 0.83.0-nightly-20251101-693e9628e
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/EventEmitter/RCTDeviceEventEmitter.js +5 -2
- package/Libraries/LogBox/UI/AnsiHighlight.js +4 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -39
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +20 -82
- package/React/Base/RCTVersion.m +1 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +24 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -1
- package/React/Views/RCTBorderDrawing.m +6 -2
- package/ReactAndroid/api/ReactAndroid.api +2 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +35 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +1 -4
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +19 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +31 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +9 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +34 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +109 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +6 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +160 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +14 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolver.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolverBinding.kt +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FloatUtil.kt +33 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderColors.kt +5 -5
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +12 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +9 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +15 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +16 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +17 -5
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +43 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +10 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +7 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +1 -0
- package/ReactAndroid/src/main/jni/react/tracing/OnLoad.cpp +16 -0
- package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +241 -0
- package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.h +63 -0
- package/ReactApple/RCTSwiftUI/RCTSwiftUIContainerView.swift +18 -0
- package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIContainerViewWrapper.h +2 -0
- package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIContainerViewWrapper.m +10 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/jsc/JSCRuntime.cpp +1 -0
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +14 -0
- package/ReactCommon/jsinspector-modern/HostTarget.h +22 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +5 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +6 -0
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +29 -0
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +38 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +1 -4
- package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +10 -1
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
- package/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.cpp +22 -0
- package/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h +4 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +62 -10
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +31 -1
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +13 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +16 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +105 -51
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +8 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +15 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +28 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +1 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +4 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +16 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +7 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h +4 -4
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +60 -0
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +37 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +26 -15
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +6 -5
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporterListeners.h +10 -2
- package/ReactCommon/react/performance/timeline/tests/PerformanceObserverTest.cpp +6 -2
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +13 -3
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +5 -2
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +14 -46
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.h +7 -21
- package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +18 -0
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +1 -1
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +12 -4
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +2 -0
- package/flow/bom.js.flow +1 -0
- package/package.json +9 -9
- package/sdks/hermes-engine/version.properties +1 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +18 -9
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +4 -1
- package/types_generated/Libraries/Network/XMLHttpRequest.d.ts +1 -2
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.d.ts +9 -10
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +0 -152
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.d.ts +0 -28
|
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
|
|
|
29
29
|
static major: number = 0;
|
|
30
30
|
static minor: number = 83;
|
|
31
31
|
static patch: number = 0;
|
|
32
|
-
static prerelease: string | null = 'nightly-
|
|
32
|
+
static prerelease: string | null = 'nightly-20251101-693e9628e';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
|
@@ -30,8 +30,11 @@ class RCTDeviceEventEmitterImpl extends EventEmitter<RCTDeviceEventDefinitions>
|
|
|
30
30
|
...args: RCTDeviceEventDefinitions[TEvent]
|
|
31
31
|
): void {
|
|
32
32
|
beginEvent(() => `RCTDeviceEventEmitter.emit#${eventType}`);
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
try {
|
|
34
|
+
super.emit(eventType, ...args);
|
|
35
|
+
} finally {
|
|
36
|
+
endEvent();
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
const RCTDeviceEventEmitter: IEventEmitter<RCTDeviceEventDefinitions> =
|
|
@@ -87,7 +87,7 @@ export default function Ansi({
|
|
|
87
87
|
<View style={styles.container}>
|
|
88
88
|
{parsedLines.map((items, i) => (
|
|
89
89
|
<View style={styles.line} key={i}>
|
|
90
|
-
<Text>
|
|
90
|
+
<Text style={styles.text}>
|
|
91
91
|
{items.map((bundle, key) => {
|
|
92
92
|
const textStyle =
|
|
93
93
|
bundle.fg && COLORS[bundle.fg]
|
|
@@ -122,4 +122,7 @@ const styles = StyleSheet.create({
|
|
|
122
122
|
line: {
|
|
123
123
|
flexDirection: 'row',
|
|
124
124
|
},
|
|
125
|
+
text: {
|
|
126
|
+
flexGrow: 1,
|
|
127
|
+
},
|
|
125
128
|
});
|
|
@@ -14,7 +14,6 @@ import type {
|
|
|
14
14
|
EventCallback,
|
|
15
15
|
EventListener,
|
|
16
16
|
} from '../../src/private/webapis/dom/events/EventTarget';
|
|
17
|
-
import type Performance from '../../src/private/webapis/performance/Performance';
|
|
18
17
|
import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
|
|
19
18
|
|
|
20
19
|
import Event from '../../src/private/webapis/dom/events/Event';
|
|
@@ -34,13 +33,7 @@ const RCTNetworking = require('./RCTNetworking').default;
|
|
|
34
33
|
const base64 = require('base64-js');
|
|
35
34
|
const invariant = require('invariant');
|
|
36
35
|
|
|
37
|
-
const PERFORMANCE_TRACK_NAME = 'Network (JS-initiated only)';
|
|
38
|
-
const PERFORMANCE_TRACK_GROUP = 'Chrome DevTools Temp Compat';
|
|
39
|
-
|
|
40
|
-
declare var performance: Performance;
|
|
41
|
-
|
|
42
36
|
const DEBUG_NETWORK_SEND_DELAY: false = false; // Set to a number of milliseconds when debugging
|
|
43
|
-
const LABEL_FOR_MISSING_URL_FOR_PROFILING = 'Unknown URL';
|
|
44
37
|
|
|
45
38
|
export type NativeResponseType = 'base64' | 'blob' | 'text';
|
|
46
39
|
export type ResponseType =
|
|
@@ -141,7 +134,6 @@ class XMLHttpRequest extends EventTarget {
|
|
|
141
134
|
static DONE: number = DONE;
|
|
142
135
|
|
|
143
136
|
static _interceptor: ?XHRInterceptor = null;
|
|
144
|
-
static _profiling: boolean = false;
|
|
145
137
|
|
|
146
138
|
UNSENT: number = UNSENT;
|
|
147
139
|
OPENED: number = OPENED;
|
|
@@ -182,10 +174,6 @@ class XMLHttpRequest extends EventTarget {
|
|
|
182
174
|
XMLHttpRequest._interceptor = interceptor;
|
|
183
175
|
}
|
|
184
176
|
|
|
185
|
-
static enableProfiling(enableProfiling: boolean): void {
|
|
186
|
-
XMLHttpRequest._profiling = enableProfiling;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
177
|
constructor() {
|
|
190
178
|
super();
|
|
191
179
|
this._reset();
|
|
@@ -389,23 +377,12 @@ class XMLHttpRequest extends EventTarget {
|
|
|
389
377
|
return;
|
|
390
378
|
}
|
|
391
379
|
|
|
392
|
-
const start = XMLHttpRequest._profiling ? performance.now() : undefined;
|
|
393
|
-
|
|
394
380
|
if (!this._response) {
|
|
395
381
|
this._response = responseText;
|
|
396
382
|
} else {
|
|
397
383
|
this._response += responseText;
|
|
398
384
|
}
|
|
399
385
|
|
|
400
|
-
if (XMLHttpRequest._profiling) {
|
|
401
|
-
console.timeStamp(
|
|
402
|
-
'Incremental Data: ' + this._getMeasureURL(),
|
|
403
|
-
start,
|
|
404
|
-
undefined,
|
|
405
|
-
PERFORMANCE_TRACK_NAME,
|
|
406
|
-
PERFORMANCE_TRACK_GROUP,
|
|
407
|
-
);
|
|
408
|
-
}
|
|
409
386
|
XMLHttpRequest._interceptor &&
|
|
410
387
|
XMLHttpRequest._interceptor.dataReceived(requestId, responseText);
|
|
411
388
|
|
|
@@ -450,16 +427,7 @@ class XMLHttpRequest extends EventTarget {
|
|
|
450
427
|
this._clearSubscriptions();
|
|
451
428
|
this._requestId = null;
|
|
452
429
|
this.setReadyState(this.DONE);
|
|
453
|
-
|
|
454
|
-
const start = this._startTime;
|
|
455
|
-
console.timeStamp(
|
|
456
|
-
this._getMeasureURL(),
|
|
457
|
-
start,
|
|
458
|
-
undefined,
|
|
459
|
-
PERFORMANCE_TRACK_NAME,
|
|
460
|
-
PERFORMANCE_TRACK_GROUP,
|
|
461
|
-
);
|
|
462
|
-
}
|
|
430
|
+
|
|
463
431
|
if (error) {
|
|
464
432
|
XMLHttpRequest._interceptor &&
|
|
465
433
|
XMLHttpRequest._interceptor.loadingFailed(requestId, error);
|
|
@@ -729,12 +697,6 @@ class XMLHttpRequest extends EventTarget {
|
|
|
729
697
|
super.addEventListener(type, listener);
|
|
730
698
|
}
|
|
731
699
|
|
|
732
|
-
_getMeasureURL(): string {
|
|
733
|
-
return (
|
|
734
|
-
this._trackingName ?? this._url ?? LABEL_FOR_MISSING_URL_FOR_PROFILING
|
|
735
|
-
);
|
|
736
|
-
}
|
|
737
|
-
|
|
738
700
|
/*
|
|
739
701
|
* `on<event>` event handling (without JS prototype magic).
|
|
740
702
|
*/
|
|
@@ -13,124 +13,62 @@
|
|
|
13
13
|
* instances and get some data from them (like their instance handle / fiber).
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import type ReactNativeDocumentT from '../../../src/private/webapis/dom/nodes/ReactNativeDocument';
|
|
17
|
-
import typeof * as ReactNativeDocumentModuleT from '../../../src/private/webapis/dom/nodes/ReactNativeDocument';
|
|
18
|
-
import type ReactNativeElementT from '../../../src/private/webapis/dom/nodes/ReactNativeElement';
|
|
19
|
-
import type ReadOnlyTextT from '../../../src/private/webapis/dom/nodes/ReadOnlyText';
|
|
20
|
-
import typeof * as RendererProxyT from '../../ReactNative/RendererProxy';
|
|
21
16
|
import type {
|
|
22
17
|
InternalInstanceHandle,
|
|
23
18
|
Node,
|
|
24
19
|
ViewConfig,
|
|
25
20
|
} from '../../Renderer/shims/ReactNativeTypes';
|
|
26
21
|
import type {RootTag} from '../RootTag';
|
|
27
|
-
import type ReactFabricHostComponentT from './ReactFabricHostComponent';
|
|
28
22
|
|
|
29
|
-
import
|
|
23
|
+
import ReactNativeDocument, {
|
|
24
|
+
createReactNativeDocument,
|
|
25
|
+
} from '../../../src/private/webapis/dom/nodes/ReactNativeDocument';
|
|
26
|
+
import ReactNativeElement from '../../../src/private/webapis/dom/nodes/ReactNativeElement';
|
|
27
|
+
import ReadOnlyText from '../../../src/private/webapis/dom/nodes/ReadOnlyText';
|
|
28
|
+
import * as RendererProxy from '../../ReactNative/RendererProxy';
|
|
30
29
|
|
|
31
30
|
export opaque type PublicRootInstance = mixed;
|
|
32
31
|
|
|
33
|
-
// Lazy loaded to avoid evaluating the module when using the legacy renderer.
|
|
34
|
-
let ReactNativeDocumentModuleObject: ?ReactNativeDocumentModuleT;
|
|
35
|
-
let ReactFabricHostComponentClass: Class<ReactFabricHostComponentT>;
|
|
36
|
-
let ReactNativeElementClass: Class<ReactNativeElementT>;
|
|
37
|
-
let ReadOnlyTextClass: Class<ReadOnlyTextT>;
|
|
38
|
-
let RendererProxy: RendererProxyT;
|
|
39
|
-
|
|
40
|
-
function getReactNativeDocumentModule(): ReactNativeDocumentModuleT {
|
|
41
|
-
if (ReactNativeDocumentModuleObject == null) {
|
|
42
|
-
// We initialize this lazily to avoid a require cycle.
|
|
43
|
-
ReactNativeDocumentModuleObject = require('../../../src/private/webapis/dom/nodes/ReactNativeDocument');
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return ReactNativeDocumentModuleObject;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function getReactNativeElementClass(): Class<ReactNativeElementT> {
|
|
50
|
-
if (ReactNativeElementClass == null) {
|
|
51
|
-
ReactNativeElementClass =
|
|
52
|
-
require('../../../src/private/webapis/dom/nodes/ReactNativeElement').default;
|
|
53
|
-
}
|
|
54
|
-
return ReactNativeElementClass;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function getReactFabricHostComponentClass(): Class<ReactFabricHostComponentT> {
|
|
58
|
-
if (ReactFabricHostComponentClass == null) {
|
|
59
|
-
ReactFabricHostComponentClass =
|
|
60
|
-
require('./ReactFabricHostComponent').default;
|
|
61
|
-
}
|
|
62
|
-
return ReactFabricHostComponentClass;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function getReadOnlyTextClass(): Class<ReadOnlyTextT> {
|
|
66
|
-
if (ReadOnlyTextClass == null) {
|
|
67
|
-
ReadOnlyTextClass =
|
|
68
|
-
require('../../../src/private/webapis/dom/nodes/ReadOnlyText').default;
|
|
69
|
-
}
|
|
70
|
-
return ReadOnlyTextClass;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
32
|
export function createPublicRootInstance(rootTag: RootTag): PublicRootInstance {
|
|
74
|
-
if (ReactNativeFeatureFlags.enableAccessToHostTreeInFabric()) {
|
|
75
|
-
const ReactNativeDocumentModule = getReactNativeDocumentModule();
|
|
76
|
-
|
|
77
|
-
// $FlowExpectedError[incompatible-return]
|
|
78
|
-
return ReactNativeDocumentModule.createReactNativeDocument(rootTag);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
33
|
// $FlowExpectedError[incompatible-return]
|
|
82
|
-
return
|
|
34
|
+
return createReactNativeDocument(rootTag);
|
|
83
35
|
}
|
|
84
36
|
|
|
85
37
|
export function createPublicInstance(
|
|
86
38
|
tag: number,
|
|
87
39
|
viewConfig: ViewConfig,
|
|
88
40
|
internalInstanceHandle: InternalInstanceHandle,
|
|
89
|
-
ownerDocument:
|
|
90
|
-
):
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
ownerDocument,
|
|
98
|
-
);
|
|
99
|
-
} else {
|
|
100
|
-
const ReactFabricHostComponent = getReactFabricHostComponentClass();
|
|
101
|
-
return new ReactFabricHostComponent(
|
|
102
|
-
tag,
|
|
103
|
-
viewConfig,
|
|
104
|
-
internalInstanceHandle,
|
|
105
|
-
);
|
|
106
|
-
}
|
|
41
|
+
ownerDocument: ReactNativeDocument,
|
|
42
|
+
): ReactNativeElement {
|
|
43
|
+
return new ReactNativeElement(
|
|
44
|
+
tag,
|
|
45
|
+
viewConfig,
|
|
46
|
+
internalInstanceHandle,
|
|
47
|
+
ownerDocument,
|
|
48
|
+
);
|
|
107
49
|
}
|
|
108
50
|
|
|
109
51
|
export function createPublicTextInstance(
|
|
110
52
|
internalInstanceHandle: InternalInstanceHandle,
|
|
111
|
-
ownerDocument:
|
|
112
|
-
):
|
|
113
|
-
const ReadOnlyText = getReadOnlyTextClass();
|
|
53
|
+
ownerDocument: ReactNativeDocument,
|
|
54
|
+
): ReadOnlyText {
|
|
114
55
|
return new ReadOnlyText(internalInstanceHandle, ownerDocument);
|
|
115
56
|
}
|
|
116
57
|
|
|
117
58
|
export function getNativeTagFromPublicInstance(
|
|
118
|
-
publicInstance:
|
|
59
|
+
publicInstance: ReactNativeElement,
|
|
119
60
|
): number {
|
|
120
61
|
return publicInstance.__nativeTag;
|
|
121
62
|
}
|
|
122
63
|
|
|
123
64
|
export function getNodeFromPublicInstance(
|
|
124
|
-
publicInstance:
|
|
65
|
+
publicInstance: ReactNativeElement,
|
|
125
66
|
): ?Node {
|
|
126
67
|
// Avoid loading ReactFabric if using an instance from the legacy renderer.
|
|
127
68
|
if (publicInstance.__internalInstanceHandle == null) {
|
|
128
69
|
return null;
|
|
129
70
|
}
|
|
130
71
|
|
|
131
|
-
if (RendererProxy == null) {
|
|
132
|
-
RendererProxy = require('../../ReactNative/RendererProxy');
|
|
133
|
-
}
|
|
134
72
|
return RendererProxy.getNodeFromInternalInstanceHandle(
|
|
135
73
|
// $FlowExpectedError[incompatible-type] __internalInstanceHandle is always an InternalInstanceHandle from React when we get here.
|
|
136
74
|
publicInstance.__internalInstanceHandle,
|
|
@@ -138,7 +76,7 @@ export function getNodeFromPublicInstance(
|
|
|
138
76
|
}
|
|
139
77
|
|
|
140
78
|
export function getInternalInstanceHandleFromPublicInstance(
|
|
141
|
-
publicInstance:
|
|
79
|
+
publicInstance: ReactNativeElement,
|
|
142
80
|
): InternalInstanceHandle {
|
|
143
81
|
// TODO(T174762768): Remove this once OSS versions of renderers will be synced.
|
|
144
82
|
// $FlowExpectedError[prop-missing] Keeping this for backwards-compatibility with the renderers versions in open source.
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
25
|
RCTVersionMinor: @(83),
|
|
26
26
|
RCTVersionPatch: @(0),
|
|
27
|
-
RCTVersionPrerelease: @"nightly-
|
|
27
|
+
RCTVersionPrerelease: @"nightly-20251101-693e9628e",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -254,6 +254,7 @@ protected:
|
|
|
254
254
|
methodMap_["enableImmediateUpdateModeForContentOffsetChanges"] = MethodMetadata {.argCount = 0, .invoker = __enableImmediateUpdateModeForContentOffsetChanges};
|
|
255
255
|
methodMap_["enableImperativeFocus"] = MethodMetadata {.argCount = 0, .invoker = __enableImperativeFocus};
|
|
256
256
|
methodMap_["enableInteropViewManagerClassLookUpOptimizationIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableInteropViewManagerClassLookUpOptimizationIOS};
|
|
257
|
+
methodMap_["enableKeyEvents"] = MethodMetadata {.argCount = 0, .invoker = __enableKeyEvents};
|
|
257
258
|
methodMap_["enableLayoutAnimationsOnAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableLayoutAnimationsOnAndroid};
|
|
258
259
|
methodMap_["enableLayoutAnimationsOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableLayoutAnimationsOnIOS};
|
|
259
260
|
methodMap_["enableMainQueueCoordinatorOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableMainQueueCoordinatorOnIOS};
|
|
@@ -270,6 +271,7 @@ protected:
|
|
|
270
271
|
methodMap_["enableViewRecyclingForScrollView"] = MethodMetadata {.argCount = 0, .invoker = __enableViewRecyclingForScrollView};
|
|
271
272
|
methodMap_["enableViewRecyclingForText"] = MethodMetadata {.argCount = 0, .invoker = __enableViewRecyclingForText};
|
|
272
273
|
methodMap_["enableViewRecyclingForView"] = MethodMetadata {.argCount = 0, .invoker = __enableViewRecyclingForView};
|
|
274
|
+
methodMap_["enableVirtualViewClippingWithoutScrollViewClipping"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewClippingWithoutScrollViewClipping};
|
|
273
275
|
methodMap_["enableVirtualViewContainerStateExperimental"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewContainerStateExperimental};
|
|
274
276
|
methodMap_["enableVirtualViewDebugFeatures"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewDebugFeatures};
|
|
275
277
|
methodMap_["enableVirtualViewRenderState"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewRenderState};
|
|
@@ -280,6 +282,7 @@ protected:
|
|
|
280
282
|
methodMap_["fuseboxNetworkInspectionEnabled"] = MethodMetadata {.argCount = 0, .invoker = __fuseboxNetworkInspectionEnabled};
|
|
281
283
|
methodMap_["hideOffscreenVirtualViewsOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __hideOffscreenVirtualViewsOnIOS};
|
|
282
284
|
methodMap_["overrideBySynchronousMountPropsAtMountingAndroid"] = MethodMetadata {.argCount = 0, .invoker = __overrideBySynchronousMountPropsAtMountingAndroid};
|
|
285
|
+
methodMap_["perfIssuesEnabled"] = MethodMetadata {.argCount = 0, .invoker = __perfIssuesEnabled};
|
|
283
286
|
methodMap_["perfMonitorV2Enabled"] = MethodMetadata {.argCount = 0, .invoker = __perfMonitorV2Enabled};
|
|
284
287
|
methodMap_["preparedTextCacheSize"] = MethodMetadata {.argCount = 0, .invoker = __preparedTextCacheSize};
|
|
285
288
|
methodMap_["preventShadowTreeCommitExhaustion"] = MethodMetadata {.argCount = 0, .invoker = __preventShadowTreeCommitExhaustion};
|
|
@@ -524,6 +527,13 @@ private:
|
|
|
524
527
|
return bridging::callFromJs<bool>(rt, &T::enableInteropViewManagerClassLookUpOptimizationIOS, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
525
528
|
}
|
|
526
529
|
|
|
530
|
+
static jsi::Value __enableKeyEvents(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
531
|
+
static_assert(
|
|
532
|
+
bridging::getParameterCount(&T::enableKeyEvents) == 1,
|
|
533
|
+
"Expected enableKeyEvents(...) to have 1 parameters");
|
|
534
|
+
return bridging::callFromJs<bool>(rt, &T::enableKeyEvents, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
535
|
+
}
|
|
536
|
+
|
|
527
537
|
static jsi::Value __enableLayoutAnimationsOnAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
528
538
|
static_assert(
|
|
529
539
|
bridging::getParameterCount(&T::enableLayoutAnimationsOnAndroid) == 1,
|
|
@@ -636,6 +646,13 @@ private:
|
|
|
636
646
|
return bridging::callFromJs<bool>(rt, &T::enableViewRecyclingForView, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
637
647
|
}
|
|
638
648
|
|
|
649
|
+
static jsi::Value __enableVirtualViewClippingWithoutScrollViewClipping(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
650
|
+
static_assert(
|
|
651
|
+
bridging::getParameterCount(&T::enableVirtualViewClippingWithoutScrollViewClipping) == 1,
|
|
652
|
+
"Expected enableVirtualViewClippingWithoutScrollViewClipping(...) to have 1 parameters");
|
|
653
|
+
return bridging::callFromJs<bool>(rt, &T::enableVirtualViewClippingWithoutScrollViewClipping, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
654
|
+
}
|
|
655
|
+
|
|
639
656
|
static jsi::Value __enableVirtualViewContainerStateExperimental(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
640
657
|
static_assert(
|
|
641
658
|
bridging::getParameterCount(&T::enableVirtualViewContainerStateExperimental) == 1,
|
|
@@ -706,6 +723,13 @@ private:
|
|
|
706
723
|
return bridging::callFromJs<bool>(rt, &T::overrideBySynchronousMountPropsAtMountingAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
707
724
|
}
|
|
708
725
|
|
|
726
|
+
static jsi::Value __perfIssuesEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
727
|
+
static_assert(
|
|
728
|
+
bridging::getParameterCount(&T::perfIssuesEnabled) == 1,
|
|
729
|
+
"Expected perfIssuesEnabled(...) to have 1 parameters");
|
|
730
|
+
return bridging::callFromJs<bool>(rt, &T::perfIssuesEnabled, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
731
|
+
}
|
|
732
|
+
|
|
709
733
|
static jsi::Value __perfMonitorV2Enabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
710
734
|
static_assert(
|
|
711
735
|
bridging::getParameterCount(&T::perfMonitorV2Enabled) == 1,
|
|
@@ -1088,6 +1088,16 @@ static RCTBorderStyle RCTBorderStyleFromOutlineStyle(OutlineStyle outlineStyle)
|
|
|
1088
1088
|
Float saturation = std::get<Float>(primitive.parameters);
|
|
1089
1089
|
[_swiftUIWrapper updateSaturation:@(saturation)];
|
|
1090
1090
|
}
|
|
1091
|
+
} else if (primitive.type == FilterType::Contrast) {
|
|
1092
|
+
if (_swiftUIWrapper != nullptr) {
|
|
1093
|
+
Float contrast = std::get<Float>(primitive.parameters);
|
|
1094
|
+
[_swiftUIWrapper updateContrast:@(contrast)];
|
|
1095
|
+
}
|
|
1096
|
+
} else if (primitive.type == FilterType::HueRotate) {
|
|
1097
|
+
if (_swiftUIWrapper != nullptr) {
|
|
1098
|
+
Float hueRotateDegrees = std::get<Float>(primitive.parameters);
|
|
1099
|
+
[_swiftUIWrapper updateHueRotate:@(hueRotateDegrees)];
|
|
1100
|
+
}
|
|
1091
1101
|
}
|
|
1092
1102
|
}
|
|
1093
1103
|
}
|
|
@@ -1545,7 +1555,8 @@ static NSString *RCTRecursiveAccessibilityLabel(UIView *view)
|
|
|
1545
1555
|
if (!_props->filter.empty()) {
|
|
1546
1556
|
for (const auto &primitive : _props->filter) {
|
|
1547
1557
|
if (primitive.type == FilterType::Blur || primitive.type == FilterType::Grayscale ||
|
|
1548
|
-
primitive.type == FilterType::DropShadow || primitive.type == FilterType::Saturate
|
|
1558
|
+
primitive.type == FilterType::DropShadow || primitive.type == FilterType::Saturate ||
|
|
1559
|
+
primitive.type == FilterType::Contrast || primitive.type == FilterType::HueRotate) {
|
|
1549
1560
|
return YES;
|
|
1550
1561
|
}
|
|
1551
1562
|
}
|
|
@@ -247,8 +247,12 @@ static UIImage *RCTGetSolidBorderImage(
|
|
|
247
247
|
|
|
248
248
|
const CGSize size = makeStretchable ? (CGSize){
|
|
249
249
|
// 1pt for the middle stretchable area along each axis
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
// we also need to round the edge insets to avoid border bleeding
|
|
251
|
+
// this is because if the size is decimal, when calculating the unit
|
|
252
|
+
// rectangle for CALayer.contentsCenter we encounter rounding errors
|
|
253
|
+
// which causes visual glitches
|
|
254
|
+
ceil(edgeInsets.left) + 1 + ceil(edgeInsets.right),
|
|
255
|
+
ceil(edgeInsets.top) + 1 + ceil(edgeInsets.bottom),
|
|
252
256
|
} : viewSize;
|
|
253
257
|
|
|
254
258
|
UIGraphicsImageRenderer *const imageRenderer =
|
|
@@ -5651,6 +5651,7 @@ public class com/facebook/react/views/scroll/ReactHorizontalScrollView : android
|
|
|
5651
5651
|
public fun pageScroll (I)Z
|
|
5652
5652
|
public fun reactSmoothScrollTo (II)V
|
|
5653
5653
|
public fun requestChildFocus (Landroid/view/View;Landroid/view/View;)V
|
|
5654
|
+
protected fun requestChildFocusWithoutScroll (Landroid/view/View;Landroid/view/View;)V
|
|
5654
5655
|
protected fun restoreScrollTo (II)V
|
|
5655
5656
|
public fun scrollTo (II)V
|
|
5656
5657
|
public fun scrollToPreservingMomentum (II)V
|
|
@@ -5791,6 +5792,7 @@ public class com/facebook/react/views/scroll/ReactScrollView : android/widget/Sc
|
|
|
5791
5792
|
public fun onTouchEvent (Landroid/view/MotionEvent;)Z
|
|
5792
5793
|
public fun reactSmoothScrollTo (II)V
|
|
5793
5794
|
public fun requestChildFocus (Landroid/view/View;Landroid/view/View;)V
|
|
5795
|
+
protected fun requestChildFocusWithoutScroll (Landroid/view/View;Landroid/view/View;)V
|
|
5794
5796
|
public fun scrollTo (II)V
|
|
5795
5797
|
public fun scrollToPreservingMomentum (II)V
|
|
5796
5798
|
public fun setBackgroundColor (I)V
|
|
@@ -22,6 +22,7 @@ internal class PerfMonitorOverlayManager(
|
|
|
22
22
|
|
|
23
23
|
private var view: PerfMonitorOverlayView? = null
|
|
24
24
|
private var tracingState: TracingState = TracingState.ENABLEDINCDPMODE
|
|
25
|
+
private var perfIssueCount: Int = 0
|
|
25
26
|
|
|
26
27
|
/** Enable the Perf Monitor overlay. */
|
|
27
28
|
fun enable() {
|
|
@@ -72,8 +73,19 @@ internal class PerfMonitorOverlayManager(
|
|
|
72
73
|
|
|
73
74
|
override fun onRecordingStateChanged(state: TracingState) {
|
|
74
75
|
tracingState = state
|
|
76
|
+
if (state != TracingState.DISABLED) {
|
|
77
|
+
perfIssueCount = 0
|
|
78
|
+
}
|
|
75
79
|
UiThreadUtil.runOnUiThread {
|
|
76
80
|
view?.updateRecordingState(state)
|
|
81
|
+
view?.updatePerfIssueCount(perfIssueCount)
|
|
82
|
+
view?.show()
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
override fun onPerfIssueAdded(name: String) {
|
|
87
|
+
UiThreadUtil.runOnUiThread {
|
|
88
|
+
view?.updatePerfIssueCount(++perfIssueCount)
|
|
77
89
|
view?.show()
|
|
78
90
|
}
|
|
79
91
|
}
|
|
@@ -30,9 +30,11 @@ internal class PerfMonitorOverlayView(
|
|
|
30
30
|
private val onButtonPress: () -> Unit,
|
|
31
31
|
) {
|
|
32
32
|
private val dialog: Dialog
|
|
33
|
+
private lateinit var statusIndicator: TextView
|
|
33
34
|
private lateinit var statusLabel: TextView
|
|
34
35
|
private lateinit var tooltipLabel: TextView
|
|
35
|
-
private lateinit var
|
|
36
|
+
private lateinit var issuesContainer: LinearLayout
|
|
37
|
+
private lateinit var issueCountLabel: TextView
|
|
36
38
|
|
|
37
39
|
init {
|
|
38
40
|
DisplayMetricsHolder.initDisplayMetricsIfNotInitialized(context)
|
|
@@ -70,6 +72,11 @@ internal class PerfMonitorOverlayView(
|
|
|
70
72
|
dialog.show()
|
|
71
73
|
}
|
|
72
74
|
|
|
75
|
+
fun updatePerfIssueCount(count: Int) {
|
|
76
|
+
issueCountLabel.text = count.toString()
|
|
77
|
+
issuesContainer.visibility = if (count == 0) LinearLayout.GONE else LinearLayout.VISIBLE
|
|
78
|
+
}
|
|
79
|
+
|
|
73
80
|
private fun createToolbarDialog(): Dialog {
|
|
74
81
|
statusIndicator =
|
|
75
82
|
TextView(context).apply {
|
|
@@ -85,11 +92,7 @@ internal class PerfMonitorOverlayView(
|
|
|
85
92
|
val textContainer =
|
|
86
93
|
LinearLayout(context).apply {
|
|
87
94
|
orientation = LinearLayout.VERTICAL
|
|
88
|
-
|
|
89
|
-
LinearLayout.LayoutParams(
|
|
90
|
-
LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
91
|
-
LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
92
|
-
)
|
|
95
|
+
setPadding(dpToPx(2f).toInt(), 0, 0, 0)
|
|
93
96
|
}
|
|
94
97
|
statusLabel =
|
|
95
98
|
TextView(context).apply {
|
|
@@ -106,10 +109,35 @@ internal class PerfMonitorOverlayView(
|
|
|
106
109
|
textContainer.addView(statusLabel)
|
|
107
110
|
textContainer.addView(tooltipLabel)
|
|
108
111
|
|
|
112
|
+
issuesContainer =
|
|
113
|
+
LinearLayout(context).apply {
|
|
114
|
+
setPadding(dpToPx(8f).toInt(), 0, 0, 0)
|
|
115
|
+
visibility = LinearLayout.GONE
|
|
116
|
+
}
|
|
117
|
+
issueCountLabel =
|
|
118
|
+
TextView(context).apply {
|
|
119
|
+
textSize = TEXT_SIZE_PRIMARY
|
|
120
|
+
setTextColor(Color.WHITE)
|
|
121
|
+
typeface = TYPEFACE_BOLD
|
|
122
|
+
val alertDrawable =
|
|
123
|
+
context.getDrawable(android.R.drawable.ic_dialog_alert)?.apply {
|
|
124
|
+
setBounds(
|
|
125
|
+
0,
|
|
126
|
+
1,
|
|
127
|
+
dpToPx(TEXT_SIZE_PRIMARY).toInt(),
|
|
128
|
+
dpToPx(TEXT_SIZE_PRIMARY).toInt() + 1,
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
setCompoundDrawables(alertDrawable, null, null, null)
|
|
132
|
+
compoundDrawablePadding = dpToPx(6f).toInt()
|
|
133
|
+
}
|
|
134
|
+
issuesContainer.addView(issueCountLabel)
|
|
135
|
+
|
|
109
136
|
val containerLayout = createInnerLayout()
|
|
110
137
|
containerLayout.setOnClickListener { onButtonPress() }
|
|
111
138
|
containerLayout.addView(statusIndicator)
|
|
112
139
|
containerLayout.addView(textContainer)
|
|
140
|
+
containerLayout.addView(issuesContainer)
|
|
113
141
|
|
|
114
142
|
val dialog =
|
|
115
143
|
createAnchoredDialog(dpToPx(12f), dpToPx(12f)).apply { setContentView(containerLayout) }
|
|
@@ -175,7 +203,7 @@ internal class PerfMonitorOverlayView(
|
|
|
175
203
|
showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
|
|
176
204
|
dividerDrawable =
|
|
177
205
|
object : ColorDrawable(Color.TRANSPARENT) {
|
|
178
|
-
override fun getIntrinsicWidth(): Int = dpToPx(
|
|
206
|
+
override fun getIntrinsicWidth(): Int = dpToPx(10f).toInt()
|
|
179
207
|
}
|
|
180
208
|
}
|
|
181
209
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
+
|
|
7
8
|
package com.facebook.react.devsupport.perfmonitor
|
|
8
9
|
|
|
9
10
|
import com.facebook.react.devsupport.interfaces.TracingState
|
|
@@ -12,4 +13,7 @@ import com.facebook.react.devsupport.interfaces.TracingState
|
|
|
12
13
|
internal interface PerfMonitorUpdateListener {
|
|
13
14
|
/** Called when the recording state of the background performance trace has changed. */
|
|
14
15
|
fun onRecordingStateChanged(state: TracingState)
|
|
16
|
+
|
|
17
|
+
/** Called when a new Performance Issue is added. */
|
|
18
|
+
fun onPerfIssueAdded(name: String)
|
|
15
19
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java
CHANGED
|
@@ -80,7 +80,7 @@ public class SurfaceMountingManager {
|
|
|
80
80
|
// These are all non-null, until StopSurface is called
|
|
81
81
|
private ConcurrentHashMap<Integer, ViewState> mTagToViewState =
|
|
82
82
|
new ConcurrentHashMap<>(); // any thread
|
|
83
|
-
private Queue<MountItem> mOnViewAttachMountItems = new ArrayDeque<>();
|
|
83
|
+
private final Queue<MountItem> mOnViewAttachMountItems = new ArrayDeque<>();
|
|
84
84
|
private JSResponderHandler mJSResponderHandler;
|
|
85
85
|
private ViewManagerRegistry mViewManagerRegistry;
|
|
86
86
|
private RootViewManager mRootViewManager;
|
|
@@ -1344,7 +1344,6 @@ public class SurfaceMountingManager {
|
|
|
1344
1344
|
final boolean mIsRoot;
|
|
1345
1345
|
@Nullable ViewManager mViewManager = null;
|
|
1346
1346
|
@Nullable ReactStylesDiffMap mCurrentProps = null;
|
|
1347
|
-
@Nullable ReadableMap mCurrentLocalData = null;
|
|
1348
1347
|
@Nullable StateWrapper mStateWrapper = null;
|
|
1349
1348
|
@Nullable EventEmitterWrapper mEventEmitter = null;
|
|
1350
1349
|
|
|
@@ -1374,8 +1373,6 @@ public class SurfaceMountingManager {
|
|
|
1374
1373
|
+ mIsRoot
|
|
1375
1374
|
+ " - props: "
|
|
1376
1375
|
+ mCurrentProps
|
|
1377
|
-
+ " - localData: "
|
|
1378
|
-
+ mCurrentLocalData
|
|
1379
1376
|
+ " - viewManager: "
|
|
1380
1377
|
+ mViewManager
|
|
1381
1378
|
+ " - isLayoutOnly: "
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<d8dc8c3a2efe8b7e870546e5749ef5ad>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -210,6 +210,12 @@ public object ReactNativeFeatureFlags {
|
|
|
210
210
|
@JvmStatic
|
|
211
211
|
public fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean = accessor.enableInteropViewManagerClassLookUpOptimizationIOS()
|
|
212
212
|
|
|
213
|
+
/**
|
|
214
|
+
* Enables key up/down/press events to be sent to JS from components
|
|
215
|
+
*/
|
|
216
|
+
@JvmStatic
|
|
217
|
+
public fun enableKeyEvents(): Boolean = accessor.enableKeyEvents()
|
|
218
|
+
|
|
213
219
|
/**
|
|
214
220
|
* When enabled, LayoutAnimations API will animate state changes on Android.
|
|
215
221
|
*/
|
|
@@ -306,6 +312,12 @@ public object ReactNativeFeatureFlags {
|
|
|
306
312
|
@JvmStatic
|
|
307
313
|
public fun enableViewRecyclingForView(): Boolean = accessor.enableViewRecyclingForView()
|
|
308
314
|
|
|
315
|
+
/**
|
|
316
|
+
* Set clipping to drawingRect of ScrollView.
|
|
317
|
+
*/
|
|
318
|
+
@JvmStatic
|
|
319
|
+
public fun enableVirtualViewClippingWithoutScrollViewClipping(): Boolean = accessor.enableVirtualViewClippingWithoutScrollViewClipping()
|
|
320
|
+
|
|
309
321
|
/**
|
|
310
322
|
* Enables the experimental version of `VirtualViewContainerState`.
|
|
311
323
|
*/
|
|
@@ -366,6 +378,12 @@ public object ReactNativeFeatureFlags {
|
|
|
366
378
|
@JvmStatic
|
|
367
379
|
public fun overrideBySynchronousMountPropsAtMountingAndroid(): Boolean = accessor.overrideBySynchronousMountPropsAtMountingAndroid()
|
|
368
380
|
|
|
381
|
+
/**
|
|
382
|
+
* Enable reporting Performance Issues (`detail.rnPerfIssue`). Displayed in the V2 Performance Monitor and the "Performance Issues" sub-panel in DevTools.
|
|
383
|
+
*/
|
|
384
|
+
@JvmStatic
|
|
385
|
+
public fun perfIssuesEnabled(): Boolean = accessor.perfIssuesEnabled()
|
|
386
|
+
|
|
369
387
|
/**
|
|
370
388
|
* Enable the V2 in-app Performance Monitor. This flag is global and should not be changed across React Host lifetimes.
|
|
371
389
|
*/
|