react-native-tvos 0.72.4-0rc0 → 0.72.5-0
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/Components/Pressable/Pressable.js +11 -5
- package/Libraries/Components/ScrollView/ScrollView.d.ts +7 -0
- package/Libraries/Components/ScrollView/ScrollView.js +8 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +1 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/README-core.md +147 -0
- package/README.md +32 -39
- package/React/Base/RCTBundleURLProvider.h +33 -2
- package/React/Base/RCTBundleURLProvider.mm +78 -15
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/RCTTiming.mm +5 -0
- package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +4 -0
- package/React/Fabric/RCTThirdPartyFabricComponentsProvider.h +29 -0
- package/React/Fabric/RCTThirdPartyFabricComponentsProvider.mm +29 -0
- package/React/Views/ScrollView/RCTScrollView.h +1 -0
- package/React/Views/ScrollView/RCTScrollView.m +12 -0
- package/React/Views/ScrollView/RCTScrollViewManager.m +1 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/hermes-engine/build.gradle +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/MaintainVisibleScrollPositionHelper.java +4 -0
- package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -0
- package/ReactCommon/React-Fabric.podspec +1 -1
- package/ReactCommon/ReactCommon.podspec +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/jsc/JSCRuntime.cpp +10 -0
- package/ReactCommon/react/debug/React-debug.podspec +1 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
- package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
- package/ReactCommon/react/renderer/components/rncore/ComponentDescriptors.h +29 -0
- package/ReactCommon/react/renderer/components/rncore/EventEmitters.cpp +111 -0
- package/ReactCommon/react/renderer/components/rncore/EventEmitters.h +186 -0
- package/ReactCommon/react/renderer/components/rncore/Props.cpp +157 -0
- package/ReactCommon/react/renderer/components/rncore/Props.h +395 -0
- package/ReactCommon/react/renderer/components/rncore/RCTComponentViewHelpers.h +257 -0
- package/ReactCommon/react/renderer/components/rncore/ShadowNodes.cpp +26 -0
- package/ReactCommon/react/renderer/components/rncore/ShadowNodes.h +111 -0
- package/ReactCommon/react/renderer/components/rncore/States.cpp +18 -0
- package/ReactCommon/react/renderer/components/rncore/States.h +141 -0
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +15 -1
- package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +1 -0
- package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +2 -0
- package/ReactCommon/react/renderer/core/RawPropsParser.cpp +1 -0
- package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +4 -4
- package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
- package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
- package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -1
- package/ReactCommon/react/utils/React-utils.podspec +1 -1
- package/package.json +7 -6
- package/scripts/cocoapods/helpers.rb +16 -0
- package/scripts/cocoapods/utils.rb +98 -8
- package/scripts/react_native_pods.rb +6 -2
- package/sdks/.hermesversion +1 -1
- package/sdks/hermes-engine/utils/build-apple-framework.sh +8 -1
- package/sdks/hermes-engine/utils/build-hermes-xcode.sh +8 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/template/ios/HelloWorld.xcodeproj/project.pbxproj +95 -13
- package/template/package.json +5 -4
- package/types/index.d.ts +1 -0
- package/types/public/ReactNativeTVTypes.d.ts +192 -0
- package/scripts/cocoapods/__tests__/codegen-test.rb +0 -242
- package/scripts/cocoapods/__tests__/codegen_utils-test.rb +0 -602
- package/scripts/cocoapods/__tests__/fabric-test.rb +0 -68
- package/scripts/cocoapods/__tests__/flipper-test.rb +0 -161
- package/scripts/cocoapods/__tests__/jsengine-test.rb +0 -130
- package/scripts/cocoapods/__tests__/local_podspec_patch-test.rb +0 -167
- package/scripts/cocoapods/__tests__/new_architecture-test.rb +0 -303
- package/scripts/cocoapods/__tests__/test_utils/CodegenScriptPhaseExtractorMock.rb +0 -21
- package/scripts/cocoapods/__tests__/test_utils/CodegenUtilsMock.rb +0 -108
- package/scripts/cocoapods/__tests__/test_utils/DirMock.rb +0 -72
- package/scripts/cocoapods/__tests__/test_utils/EnvironmentMock.rb +0 -21
- package/scripts/cocoapods/__tests__/test_utils/FileMock.rb +0 -113
- package/scripts/cocoapods/__tests__/test_utils/FileUtilsMock.rb +0 -40
- package/scripts/cocoapods/__tests__/test_utils/FinderMock.rb +0 -28
- package/scripts/cocoapods/__tests__/test_utils/InstallerMock.rb +0 -222
- package/scripts/cocoapods/__tests__/test_utils/LocalPodspecPatchMock.rb +0 -14
- package/scripts/cocoapods/__tests__/test_utils/Open3Mock.rb +0 -43
- package/scripts/cocoapods/__tests__/test_utils/PathnameMock.rb +0 -42
- package/scripts/cocoapods/__tests__/test_utils/PodMock.rb +0 -144
- package/scripts/cocoapods/__tests__/test_utils/SpecMock.rb +0 -30
- package/scripts/cocoapods/__tests__/test_utils/SysctlCheckerMock.rb +0 -21
- package/scripts/cocoapods/__tests__/test_utils/TargetDefinitionMock.rb +0 -12
- package/scripts/cocoapods/__tests__/test_utils/podSpy.rb +0 -39
- package/scripts/cocoapods/__tests__/test_utils/systemUtils.rb +0 -14
- package/scripts/cocoapods/__tests__/utils-test.rb +0 -766
- package/scripts/codegen/__test_fixtures__/fixtures.js +0 -132
- package/scripts/codegen/__tests__/generate-artifacts-executor-test.js +0 -500
- package/scripts/codegen/__tests__/generate-specs-cli-executor-test.js +0 -88
|
@@ -22,10 +22,12 @@ void RCTBundleURLProviderAllowPackagerServerAccess(BOOL allowed)
|
|
|
22
22
|
kRCTAllowPackagerAccess = allowed;
|
|
23
23
|
}
|
|
24
24
|
#endif
|
|
25
|
+
static NSString *const kRCTPlatformName = @"ios";
|
|
25
26
|
static NSString *const kRCTPackagerSchemeKey = @"RCT_packager_scheme";
|
|
26
27
|
static NSString *const kRCTJsLocationKey = @"RCT_jsLocation";
|
|
27
28
|
static NSString *const kRCTEnableDevKey = @"RCT_enableDev";
|
|
28
29
|
static NSString *const kRCTEnableMinificationKey = @"RCT_enableMinification";
|
|
30
|
+
static NSString *const kRCTInlineSourceMapKey = @"RCT_inlineSourceMap";
|
|
29
31
|
|
|
30
32
|
@implementation RCTBundleURLProvider
|
|
31
33
|
|
|
@@ -187,6 +189,7 @@ static NSURL *serverRootWithHostPort(NSString *hostPort, NSString *scheme)
|
|
|
187
189
|
packagerScheme:[self packagerScheme]
|
|
188
190
|
enableDev:[self enableDev]
|
|
189
191
|
enableMinification:[self enableMinification]
|
|
192
|
+
inlineSourceMap:[self inlineSourceMap]
|
|
190
193
|
modulesOnly:NO
|
|
191
194
|
runModule:YES];
|
|
192
195
|
}
|
|
@@ -199,6 +202,7 @@ static NSURL *serverRootWithHostPort(NSString *hostPort, NSString *scheme)
|
|
|
199
202
|
packagerScheme:[self packagerScheme]
|
|
200
203
|
enableDev:[self enableDev]
|
|
201
204
|
enableMinification:[self enableMinification]
|
|
205
|
+
inlineSourceMap:[self inlineSourceMap]
|
|
202
206
|
modulesOnly:YES
|
|
203
207
|
runModule:NO];
|
|
204
208
|
}
|
|
@@ -238,13 +242,29 @@ static NSURL *serverRootWithHostPort(NSString *hostPort, NSString *scheme)
|
|
|
238
242
|
return [[self class] resourceURLForResourcePath:path
|
|
239
243
|
packagerHost:packagerServerHostPort
|
|
240
244
|
scheme:packagerServerScheme
|
|
241
|
-
|
|
245
|
+
queryItems:nil];
|
|
242
246
|
}
|
|
243
247
|
|
|
244
248
|
+ (NSURL *)jsBundleURLForBundleRoot:(NSString *)bundleRoot
|
|
245
249
|
packagerHost:(NSString *)packagerHost
|
|
246
250
|
enableDev:(BOOL)enableDev
|
|
247
251
|
enableMinification:(BOOL)enableMinification
|
|
252
|
+
{
|
|
253
|
+
return [self jsBundleURLForBundleRoot:bundleRoot
|
|
254
|
+
packagerHost:packagerHost
|
|
255
|
+
packagerScheme:nil
|
|
256
|
+
enableDev:enableDev
|
|
257
|
+
enableMinification:enableMinification
|
|
258
|
+
inlineSourceMap:NO
|
|
259
|
+
modulesOnly:NO
|
|
260
|
+
runModule:YES];
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
+ (NSURL *)jsBundleURLForBundleRoot:(NSString *)bundleRoot
|
|
264
|
+
packagerHost:(NSString *)packagerHost
|
|
265
|
+
enableDev:(BOOL)enableDev
|
|
266
|
+
enableMinification:(BOOL)enableMinification
|
|
267
|
+
inlineSourceMap:(BOOL)inlineSourceMap
|
|
248
268
|
|
|
249
269
|
{
|
|
250
270
|
return [self jsBundleURLForBundleRoot:bundleRoot
|
|
@@ -252,6 +272,7 @@ static NSURL *serverRootWithHostPort(NSString *hostPort, NSString *scheme)
|
|
|
252
272
|
packagerScheme:nil
|
|
253
273
|
enableDev:enableDev
|
|
254
274
|
enableMinification:enableMinification
|
|
275
|
+
inlineSourceMap:inlineSourceMap
|
|
255
276
|
modulesOnly:NO
|
|
256
277
|
runModule:YES];
|
|
257
278
|
}
|
|
@@ -263,27 +284,45 @@ static NSURL *serverRootWithHostPort(NSString *hostPort, NSString *scheme)
|
|
|
263
284
|
enableMinification:(BOOL)enableMinification
|
|
264
285
|
modulesOnly:(BOOL)modulesOnly
|
|
265
286
|
runModule:(BOOL)runModule
|
|
287
|
+
{
|
|
288
|
+
return [self jsBundleURLForBundleRoot:bundleRoot
|
|
289
|
+
packagerHost:packagerHost
|
|
290
|
+
packagerScheme:nil
|
|
291
|
+
enableDev:enableDev
|
|
292
|
+
enableMinification:enableMinification
|
|
293
|
+
inlineSourceMap:NO
|
|
294
|
+
modulesOnly:modulesOnly
|
|
295
|
+
runModule:runModule];
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
+ (NSURL *)jsBundleURLForBundleRoot:(NSString *)bundleRoot
|
|
299
|
+
packagerHost:(NSString *)packagerHost
|
|
300
|
+
packagerScheme:(NSString *)scheme
|
|
301
|
+
enableDev:(BOOL)enableDev
|
|
302
|
+
enableMinification:(BOOL)enableMinification
|
|
303
|
+
inlineSourceMap:(BOOL)inlineSourceMap
|
|
304
|
+
modulesOnly:(BOOL)modulesOnly
|
|
305
|
+
runModule:(BOOL)runModule
|
|
266
306
|
{
|
|
267
307
|
NSString *path = [NSString stringWithFormat:@"/%@.bundle", bundleRoot];
|
|
308
|
+
BOOL lazy = enableDev;
|
|
309
|
+
NSArray<NSURLQueryItem *> *queryItems = @[
|
|
310
|
+
[[NSURLQueryItem alloc] initWithName:@"platform" value:kRCTPlatformName],
|
|
311
|
+
[[NSURLQueryItem alloc] initWithName:@"dev" value:enableDev ? @"true" : @"false"],
|
|
312
|
+
[[NSURLQueryItem alloc] initWithName:@"minify" value:enableMinification ? @"true" : @"false"],
|
|
313
|
+
[[NSURLQueryItem alloc] initWithName:@"inlineSourceMap" value:inlineSourceMap ? @"true" : @"false"],
|
|
314
|
+
[[NSURLQueryItem alloc] initWithName:@"modulesOnly" value:modulesOnly ? @"true" : @"false"],
|
|
315
|
+
[[NSURLQueryItem alloc] initWithName:@"runModule" value:runModule ? @"true" : @"false"],
|
|
268
316
|
#ifdef HERMES_BYTECODE_VERSION
|
|
269
|
-
|
|
270
|
-
#
|
|
271
|
-
|
|
272
|
-
#endif
|
|
273
|
-
|
|
274
|
-
// When we support only iOS 8 and above, use queryItems for a better API.
|
|
275
|
-
NSString *query = [NSString stringWithFormat:@"platform=ios&dev=%@&minify=%@&modulesOnly=%@&runModule=%@%@",
|
|
276
|
-
enableDev ? @"true" : @"false",
|
|
277
|
-
enableMinification ? @"true" : @"false",
|
|
278
|
-
modulesOnly ? @"true" : @"false",
|
|
279
|
-
runModule ? @"true" : @"false",
|
|
280
|
-
runtimeBytecodeVersion];
|
|
317
|
+
[[NSURLQueryItem alloc] initWithName:@"runtimeBytecodeVersion" value:HERMES_BYTECODE_VERSION],
|
|
318
|
+
#endif
|
|
319
|
+
];
|
|
281
320
|
|
|
282
321
|
NSString *bundleID = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleIdentifierKey];
|
|
283
322
|
if (bundleID) {
|
|
284
|
-
|
|
323
|
+
queryItems = [queryItems arrayByAddingObject:[[NSURLQueryItem alloc] initWithName:@"app" value:bundleID]];
|
|
285
324
|
}
|
|
286
|
-
return [[self class] resourceURLForResourcePath:path packagerHost:packagerHost scheme:scheme
|
|
325
|
+
return [[self class] resourceURLForResourcePath:path packagerHost:packagerHost scheme:scheme queryItems:queryItems];
|
|
287
326
|
}
|
|
288
327
|
|
|
289
328
|
+ (NSURL *)resourceURLForResourcePath:(NSString *)path
|
|
@@ -300,6 +339,20 @@ static NSURL *serverRootWithHostPort(NSString *hostPort, NSString *scheme)
|
|
|
300
339
|
return components.URL;
|
|
301
340
|
}
|
|
302
341
|
|
|
342
|
+
+ (NSURL *)resourceURLForResourcePath:(NSString *)path
|
|
343
|
+
packagerHost:(NSString *)packagerHost
|
|
344
|
+
scheme:(NSString *)scheme
|
|
345
|
+
queryItems:(NSArray<NSURLQueryItem *> *)queryItems
|
|
346
|
+
{
|
|
347
|
+
NSURLComponents *components = [NSURLComponents componentsWithURL:serverRootWithHostPort(packagerHost, scheme)
|
|
348
|
+
resolvingAgainstBaseURL:NO];
|
|
349
|
+
components.path = path;
|
|
350
|
+
if (queryItems != nil) {
|
|
351
|
+
components.queryItems = queryItems;
|
|
352
|
+
}
|
|
353
|
+
return components.URL;
|
|
354
|
+
}
|
|
355
|
+
|
|
303
356
|
- (void)updateValue:(id)object forKey:(NSString *)key
|
|
304
357
|
{
|
|
305
358
|
[[NSUserDefaults standardUserDefaults] setObject:object forKey:key];
|
|
@@ -317,6 +370,11 @@ static NSURL *serverRootWithHostPort(NSString *hostPort, NSString *scheme)
|
|
|
317
370
|
return [[NSUserDefaults standardUserDefaults] boolForKey:kRCTEnableMinificationKey];
|
|
318
371
|
}
|
|
319
372
|
|
|
373
|
+
- (BOOL)inlineSourceMap
|
|
374
|
+
{
|
|
375
|
+
return [[NSUserDefaults standardUserDefaults] boolForKey:kRCTInlineSourceMapKey];
|
|
376
|
+
}
|
|
377
|
+
|
|
320
378
|
- (NSString *)jsLocation
|
|
321
379
|
{
|
|
322
380
|
return [[NSUserDefaults standardUserDefaults] stringForKey:kRCTJsLocationKey];
|
|
@@ -346,6 +404,11 @@ static NSURL *serverRootWithHostPort(NSString *hostPort, NSString *scheme)
|
|
|
346
404
|
[self updateValue:@(enableMinification) forKey:kRCTEnableMinificationKey];
|
|
347
405
|
}
|
|
348
406
|
|
|
407
|
+
- (void)setInlineSourceMap:(BOOL)inlineSourceMap
|
|
408
|
+
{
|
|
409
|
+
[self updateValue:@(inlineSourceMap) forKey:kRCTInlineSourceMapKey];
|
|
410
|
+
}
|
|
411
|
+
|
|
349
412
|
- (void)setPackagerScheme:(NSString *)packagerScheme
|
|
350
413
|
{
|
|
351
414
|
[self updateValue:packagerScheme forKey:kRCTPackagerSchemeKey];
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -23,8 +23,8 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
23
23
|
__rnVersion = @{
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
25
|
RCTVersionMinor: @(72),
|
|
26
|
-
RCTVersionPatch: @(
|
|
27
|
-
RCTVersionPrerelease: @"
|
|
26
|
+
RCTVersionPatch: @(5),
|
|
27
|
+
RCTVersionPrerelease: @"0",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -128,6 +128,11 @@ RCT_EXPORT_MODULE()
|
|
|
128
128
|
_paused = YES;
|
|
129
129
|
_timers = [NSMutableDictionary new];
|
|
130
130
|
_inBackground = NO;
|
|
131
|
+
RCTExecuteOnMainQueue(^{
|
|
132
|
+
if (!self->_inBackground && [RCTSharedApplication() applicationState] == UIApplicationStateBackground) {
|
|
133
|
+
[self appDidMoveToBackground];
|
|
134
|
+
}
|
|
135
|
+
});
|
|
131
136
|
|
|
132
137
|
for (NSString *name in @[
|
|
133
138
|
UIApplicationWillResignActiveNotification,
|
|
@@ -232,6 +232,10 @@ static void RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrol
|
|
|
232
232
|
if (oldScrollViewProps.indicatorStyle != newScrollViewProps.indicatorStyle) {
|
|
233
233
|
_scrollView.indicatorStyle = RCTUIScrollViewIndicatorStyleFromProps(newScrollViewProps);
|
|
234
234
|
}
|
|
235
|
+
|
|
236
|
+
if (oldScrollViewProps.showsScrollIndex != newScrollViewProps.showsScrollIndex) {
|
|
237
|
+
_scrollView.indexDisplayMode = newScrollViewProps.showsScrollIndex ? UIScrollViewIndexDisplayModeAutomatic : UIScrollViewIndexDisplayModeAlwaysHidden;
|
|
238
|
+
}
|
|
235
239
|
|
|
236
240
|
if (oldScrollViewProps.scrollEventThrottle != newScrollViewProps.scrollEventThrottle) {
|
|
237
241
|
// Zero means "send value only once per significant logical event".
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by GenerateRCTThirdPartyFabricComponentsProviderH
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#pragma GCC diagnostic push
|
|
12
|
+
#pragma GCC diagnostic ignored "-Wreturn-type-c-linkage"
|
|
13
|
+
|
|
14
|
+
#import <React/RCTComponentViewProtocol.h>
|
|
15
|
+
|
|
16
|
+
#ifdef __cplusplus
|
|
17
|
+
extern "C" {
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
Class<RCTComponentViewProtocol> RCTThirdPartyFabricComponentsProvider(const char *name);
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
#ifdef __cplusplus
|
|
25
|
+
}
|
|
26
|
+
#endif
|
|
27
|
+
|
|
28
|
+
#pragma GCC diagnostic pop
|
|
29
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by GenerateRCTThirdPartyFabricComponentsProviderCpp
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
// OSS-compatibility layer
|
|
12
|
+
|
|
13
|
+
#import "RCTThirdPartyFabricComponentsProvider.h"
|
|
14
|
+
|
|
15
|
+
#import <string>
|
|
16
|
+
#import <unordered_map>
|
|
17
|
+
|
|
18
|
+
Class<RCTComponentViewProtocol> RCTThirdPartyFabricComponentsProvider(const char *name) {
|
|
19
|
+
static std::unordered_map<std::string, Class (*)(void)> sFabricComponentsClassMap = {
|
|
20
|
+
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
auto p = sFabricComponentsClassMap.find(name);
|
|
24
|
+
if (p != sFabricComponentsClassMap.end()) {
|
|
25
|
+
auto classFunc = p->second;
|
|
26
|
+
return classFunc();
|
|
27
|
+
}
|
|
28
|
+
return nil;
|
|
29
|
+
}
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
@property (nonatomic, assign) BOOL snapToEnd;
|
|
57
57
|
@property (nonatomic, copy) NSString *snapToAlignment;
|
|
58
58
|
@property (nonatomic, assign) BOOL inverted;
|
|
59
|
+
@property (nonatomic, assign) BOOL showsScrollIndex;
|
|
59
60
|
|
|
60
61
|
// NOTE: currently these event props are only declared so we can export the
|
|
61
62
|
// event names to JS - we don't call the blocks directly because scroll events
|
|
@@ -487,6 +487,18 @@ static inline void RCTApplyTransformationAccordingLayoutDirection(
|
|
|
487
487
|
if ([changedProps containsObject:@"contentSize"]) {
|
|
488
488
|
[self updateContentSizeIfNeeded];
|
|
489
489
|
}
|
|
490
|
+
if ([changedProps containsObject:@"showsScrollIndex"]) {
|
|
491
|
+
[self updateScrollIndex];
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
- (void)updateScrollIndex
|
|
496
|
+
{
|
|
497
|
+
if (self.showsScrollIndex) {
|
|
498
|
+
self.scrollView.indexDisplayMode = UIScrollViewIndexDisplayModeAutomatic;
|
|
499
|
+
} else {
|
|
500
|
+
self.scrollView.indexDisplayMode = UIScrollViewIndexDisplayModeAlwaysHidden;
|
|
501
|
+
}
|
|
490
502
|
}
|
|
491
503
|
|
|
492
504
|
- (BOOL)centerContent
|
|
@@ -100,6 +100,7 @@ RCT_EXPORT_VIEW_PROPERTY(onScrollEndDrag, RCTDirectEventBlock)
|
|
|
100
100
|
RCT_EXPORT_VIEW_PROPERTY(onMomentumScrollBegin, RCTDirectEventBlock)
|
|
101
101
|
RCT_EXPORT_VIEW_PROPERTY(onMomentumScrollEnd, RCTDirectEventBlock)
|
|
102
102
|
RCT_EXPORT_VIEW_PROPERTY(inverted, BOOL)
|
|
103
|
+
RCT_EXPORT_VIEW_PROPERTY(showsScrollIndex, BOOL)
|
|
103
104
|
#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 /* __IPHONE_13_0 */
|
|
104
105
|
RCT_EXPORT_VIEW_PROPERTY(automaticallyAdjustsScrollIndicatorInsets, BOOL)
|
|
105
106
|
#endif
|
|
@@ -47,7 +47,7 @@ def hermesDir = System.getenv("REACT_NATIVE_OVERRIDE_HERMES_DIR") ?: new File(re
|
|
|
47
47
|
def hermesBuildDir = new File("$buildDir/hermes")
|
|
48
48
|
|
|
49
49
|
def hermesVersion = "main"
|
|
50
|
-
def hermesVersionFile = new File(reactNativeRootDir, "node_modules/react-native-core/sdks/.hermesversion")
|
|
50
|
+
def hermesVersionFile = new File(reactNativeRootDir, "../../node_modules/react-native-core/sdks/.hermesversion")
|
|
51
51
|
if (hermesVersionFile.exists()) {
|
|
52
52
|
hermesVersion = hermesVersionFile.text
|
|
53
53
|
}
|
|
@@ -103,6 +103,10 @@ public class MaintainVisibleScrollPositionHelper<ScrollViewT extends ViewGroup &
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
View firstVisibleView = mFirstVisibleView.get();
|
|
106
|
+
if (firstVisibleView == null) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
106
110
|
Rect newFrame = new Rect();
|
|
107
111
|
firstVisibleView.getHitRect(newFrame);
|
|
108
112
|
|
|
@@ -8,6 +8,11 @@ set(CMAKE_VERBOSE_MAKEFILE on)
|
|
|
8
8
|
|
|
9
9
|
project(ReactAndroid)
|
|
10
10
|
|
|
11
|
+
# Convert input paths to CMake format (with forward slashes)
|
|
12
|
+
file(TO_CMAKE_PATH "${REACT_ANDROID_DIR}" REACT_ANDROID_DIR)
|
|
13
|
+
file(TO_CMAKE_PATH "${REACT_BUILD_DIR}" REACT_BUILD_DIR)
|
|
14
|
+
file(TO_CMAKE_PATH "${REACT_COMMON_DIR}" REACT_COMMON_DIR)
|
|
15
|
+
|
|
11
16
|
# If you have ccache installed, we're going to honor it.
|
|
12
17
|
find_program(CCACHE_FOUND ccache)
|
|
13
18
|
if(CCACHE_FOUND)
|
|
@@ -37,7 +37,7 @@ Pod::Spec.new do |s|
|
|
|
37
37
|
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
|
|
38
38
|
"GCC_WARN_PEDANTIC" => "YES" }
|
|
39
39
|
if ENV['USE_FRAMEWORKS']
|
|
40
|
-
s.header_mappings_dir =
|
|
40
|
+
s.header_mappings_dir = './'
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
# TODO (T48588859): Restructure this target to align with dir structure: "react/nativemodule/..."
|
|
@@ -17,8 +17,8 @@ namespace facebook::react {
|
|
|
17
17
|
constexpr struct {
|
|
18
18
|
int32_t Major = 0;
|
|
19
19
|
int32_t Minor = 72;
|
|
20
|
-
int32_t Patch =
|
|
21
|
-
std::string_view Prerelease = "
|
|
20
|
+
int32_t Patch = 5;
|
|
21
|
+
std::string_view Prerelease = "0";
|
|
22
22
|
} ReactNativeVersion;
|
|
23
23
|
|
|
24
24
|
} // namespace facebook::react
|
|
@@ -309,6 +309,9 @@ class JSCRuntime : public jsi::Runtime {
|
|
|
309
309
|
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0
|
|
310
310
|
#define _JSC_NO_ARRAY_BUFFERS
|
|
311
311
|
#endif
|
|
312
|
+
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 160400
|
|
313
|
+
#define _JSC_HAS_INSPECTABLE
|
|
314
|
+
#endif
|
|
312
315
|
#endif
|
|
313
316
|
#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
|
|
314
317
|
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11
|
|
@@ -405,6 +408,13 @@ JSCRuntime::JSCRuntime(JSGlobalContextRef ctx)
|
|
|
405
408
|
stringCounter_(0)
|
|
406
409
|
#endif
|
|
407
410
|
{
|
|
411
|
+
#ifndef NDEBUG
|
|
412
|
+
#ifdef _JSC_HAS_INSPECTABLE
|
|
413
|
+
if (__builtin_available(macOS 13.3, iOS 16.4, tvOS 16.4, *)) {
|
|
414
|
+
JSGlobalContextSetInspectable(ctx_, true);
|
|
415
|
+
}
|
|
416
|
+
#endif
|
|
417
|
+
#endif
|
|
408
418
|
}
|
|
409
419
|
|
|
410
420
|
JSCRuntime::~JSCRuntime() {
|
|
@@ -37,7 +37,7 @@ Pod::Spec.new do |s|
|
|
|
37
37
|
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
|
|
38
38
|
"GCC_WARN_PEDANTIC" => "YES" }
|
|
39
39
|
if ENV['USE_FRAMEWORKS']
|
|
40
|
-
s.header_mappings_dir =
|
|
40
|
+
s.header_mappings_dir = './'
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
s.source_files = "ReactCommon/**/*.{mm,cpp,h}"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateComponentDescriptorH.js
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#pragma once
|
|
12
|
+
|
|
13
|
+
#include <react/renderer/components/rncore/ShadowNodes.h>
|
|
14
|
+
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
|
15
|
+
|
|
16
|
+
namespace facebook {
|
|
17
|
+
namespace react {
|
|
18
|
+
|
|
19
|
+
using AndroidHorizontalScrollContentViewComponentDescriptor = ConcreteComponentDescriptor<AndroidHorizontalScrollContentViewShadowNode>;
|
|
20
|
+
using AndroidSwipeRefreshLayoutComponentDescriptor = ConcreteComponentDescriptor<AndroidSwipeRefreshLayoutShadowNode>;
|
|
21
|
+
using PullToRefreshViewComponentDescriptor = ConcreteComponentDescriptor<PullToRefreshViewShadowNode>;
|
|
22
|
+
using AndroidDrawerLayoutComponentDescriptor = ConcreteComponentDescriptor<AndroidDrawerLayoutShadowNode>;
|
|
23
|
+
using ActivityIndicatorViewComponentDescriptor = ConcreteComponentDescriptor<ActivityIndicatorViewShadowNode>;
|
|
24
|
+
using UnimplementedNativeViewComponentDescriptor = ConcreteComponentDescriptor<UnimplementedNativeViewShadowNode>;
|
|
25
|
+
using SwitchComponentDescriptor = ConcreteComponentDescriptor<SwitchShadowNode>;
|
|
26
|
+
using TraceUpdateOverlayComponentDescriptor = ConcreteComponentDescriptor<TraceUpdateOverlayShadowNode>;
|
|
27
|
+
|
|
28
|
+
} // namespace react
|
|
29
|
+
} // namespace facebook
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateEventEmitterCpp.js
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#include <react/renderer/components/rncore/EventEmitters.h>
|
|
12
|
+
|
|
13
|
+
namespace facebook {
|
|
14
|
+
namespace react {
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
void AndroidSwipeRefreshLayoutEventEmitter::onRefresh(OnRefresh event) const {
|
|
20
|
+
dispatchEvent("refresh", [](jsi::Runtime &runtime) {
|
|
21
|
+
auto payload = jsi::Object(runtime);
|
|
22
|
+
|
|
23
|
+
return payload;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
void PullToRefreshViewEventEmitter::onRefresh(OnRefresh event) const {
|
|
27
|
+
dispatchEvent("refresh", [](jsi::Runtime &runtime) {
|
|
28
|
+
auto payload = jsi::Object(runtime);
|
|
29
|
+
|
|
30
|
+
return payload;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void AndroidDrawerLayoutEventEmitter::onDrawerSlide(OnDrawerSlide event) const {
|
|
35
|
+
dispatchEvent("drawerSlide", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
36
|
+
auto payload = jsi::Object(runtime);
|
|
37
|
+
payload.setProperty(runtime, "offset", event.offset);
|
|
38
|
+
return payload;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
void AndroidDrawerLayoutEventEmitter::onDrawerStateChanged(OnDrawerStateChanged event) const {
|
|
42
|
+
dispatchEvent("drawerStateChanged", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
43
|
+
auto payload = jsi::Object(runtime);
|
|
44
|
+
payload.setProperty(runtime, "drawerState", event.drawerState);
|
|
45
|
+
return payload;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
void AndroidDrawerLayoutEventEmitter::onDrawerOpen(OnDrawerOpen event) const {
|
|
49
|
+
dispatchEvent("drawerOpen", [](jsi::Runtime &runtime) {
|
|
50
|
+
auto payload = jsi::Object(runtime);
|
|
51
|
+
|
|
52
|
+
return payload;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
void AndroidDrawerLayoutEventEmitter::onDrawerClose(OnDrawerClose event) const {
|
|
56
|
+
dispatchEvent("drawerClose", [](jsi::Runtime &runtime) {
|
|
57
|
+
auto payload = jsi::Object(runtime);
|
|
58
|
+
|
|
59
|
+
return payload;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
void SwitchEventEmitter::onChange(OnChange event) const {
|
|
65
|
+
dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
66
|
+
auto payload = jsi::Object(runtime);
|
|
67
|
+
payload.setProperty(runtime, "value", event.value);
|
|
68
|
+
payload.setProperty(runtime, "target", event.target);
|
|
69
|
+
return payload;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
void AndroidSwitchEventEmitter::onChange(OnChange event) const {
|
|
73
|
+
dispatchEvent("change", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
74
|
+
auto payload = jsi::Object(runtime);
|
|
75
|
+
payload.setProperty(runtime, "value", event.value);
|
|
76
|
+
payload.setProperty(runtime, "target", event.target);
|
|
77
|
+
return payload;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
void ModalHostViewEventEmitter::onRequestClose(OnRequestClose event) const {
|
|
82
|
+
dispatchEvent("requestClose", [](jsi::Runtime &runtime) {
|
|
83
|
+
auto payload = jsi::Object(runtime);
|
|
84
|
+
|
|
85
|
+
return payload;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
void ModalHostViewEventEmitter::onShow(OnShow event) const {
|
|
89
|
+
dispatchEvent("show", [](jsi::Runtime &runtime) {
|
|
90
|
+
auto payload = jsi::Object(runtime);
|
|
91
|
+
|
|
92
|
+
return payload;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
void ModalHostViewEventEmitter::onDismiss(OnDismiss event) const {
|
|
96
|
+
dispatchEvent("dismiss", [](jsi::Runtime &runtime) {
|
|
97
|
+
auto payload = jsi::Object(runtime);
|
|
98
|
+
|
|
99
|
+
return payload;
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
void ModalHostViewEventEmitter::onOrientationChange(OnOrientationChange event) const {
|
|
103
|
+
dispatchEvent("orientationChange", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
104
|
+
auto payload = jsi::Object(runtime);
|
|
105
|
+
payload.setProperty(runtime, "orientation", toString(event.orientation));
|
|
106
|
+
return payload;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
} // namespace react
|
|
111
|
+
} // namespace facebook
|