react-native-tvos 0.86.2-0 → 0.86.3-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/TV/TVFocusGuideView.js +31 -0
- package/Libraries/Components/TV/useFocusEnterLeave.js +112 -0
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/README.md +2 -0
- package/React/Base/RCTVersion.m +1 -1
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +30 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +10 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +7 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/react/nativemodule/dom/NativeDOM.cpp +10 -4
- package/ReactCommon/react/renderer/core/EventEmitter.cpp +20 -4
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +1 -1
- package/ReactCommon/yoga/Yoga.podspec +1 -1
- package/package.json +10 -10
- package/sdks/.hermesv1version +1 -1
- package/sdks/hermes-engine/hermes-engine.podspec +6 -1
- package/sdks/hermes-engine/version.properties +1 -1
- package/types/public/ReactNativeTVTypes.d.ts +12 -1
- package/types_generated/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +101 -0
- package/types_generated/Libraries/Alert/Alert.d.ts +55 -0
- package/types_generated/Libraries/Animated/Animated.d.ts +14 -0
- package/types_generated/Libraries/Animated/AnimatedEvent.d.ts +30 -0
- package/types_generated/Libraries/Animated/AnimatedExports.d.ts +191 -0
- package/types_generated/Libraries/Animated/AnimatedImplementation.d.ts +128 -0
- package/types_generated/Libraries/Animated/AnimatedPlatformConfig.d.ts +13 -0
- package/types_generated/Libraries/Animated/Easing.d.ts +171 -0
- package/types_generated/Libraries/Animated/animations/Animation.d.ts +35 -0
- package/types_generated/Libraries/Animated/animations/DecayAnimation.d.ts +42 -0
- package/types_generated/Libraries/Animated/animations/SpringAnimation.d.ts +130 -0
- package/types_generated/Libraries/Animated/animations/TimingAnimation.d.ts +54 -0
- package/types_generated/Libraries/Animated/components/AnimatedFlatList.d.ts +22 -0
- package/types_generated/Libraries/Animated/components/AnimatedImage.d.ts +18 -0
- package/types_generated/Libraries/Animated/components/AnimatedScrollView.d.ts +23 -0
- package/types_generated/Libraries/Animated/components/AnimatedSectionList.d.ts +22 -0
- package/types_generated/Libraries/Animated/components/AnimatedText.d.ts +18 -0
- package/types_generated/Libraries/Animated/components/AnimatedView.d.ts +19 -0
- package/types_generated/Libraries/Animated/createAnimatedComponent.d.ts +44 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedAddition.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedColor.d.ts +80 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedDiffClamp.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedDivision.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedInterpolation.d.ts +38 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedModulo.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedMultiplication.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedNode.d.ts +47 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedProps.d.ts +30 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedStyle.d.ts +32 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedSubtraction.d.ts +22 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedTracking.d.ts +21 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedValue.d.ts +126 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedValueXY.d.ts +135 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedWithChildren.d.ts +15 -0
- package/types_generated/Libraries/Animated/useAnimatedColor.d.ts +16 -0
- package/types_generated/Libraries/Animated/useAnimatedValue.d.ts +15 -0
- package/types_generated/Libraries/Animated/useAnimatedValueXY.d.ts +18 -0
- package/types_generated/Libraries/AppState/AppState.d.ts +63 -0
- package/types_generated/Libraries/BatchedBridge/BatchedBridge.d.ts +17 -0
- package/types_generated/Libraries/BatchedBridge/MessageQueue.d.ts +39 -0
- package/types_generated/Libraries/BatchedBridge/NativeModules.d.ts +20 -0
- package/types_generated/Libraries/Blob/Blob.d.ts +80 -0
- package/types_generated/Libraries/Blob/BlobTypes.d.ts +27 -0
- package/types_generated/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +232 -0
- package/types_generated/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.d.ts +20 -0
- package/types_generated/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +84 -0
- package/types_generated/Libraries/Components/Button.d.ts +247 -0
- package/types_generated/Libraries/Components/Clipboard/Clipboard.d.ts +38 -0
- package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +17 -0
- package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.d.ts +27 -0
- package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.d.ts +176 -0
- package/types_generated/Libraries/Components/Keyboard/Keyboard.d.ts +146 -0
- package/types_generated/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +73 -0
- package/types_generated/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +23 -0
- package/types_generated/Libraries/Components/Pressable/Pressable.d.ts +146 -0
- package/types_generated/Libraries/Components/Pressable/useAndroidRippleForView.d.ts +48 -0
- package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +32 -0
- package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.d.ts +14 -0
- package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.d.ts +50 -0
- package/types_generated/Libraries/Components/RefreshControl/RefreshControl.d.ts +113 -0
- package/types_generated/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +33 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollView.d.ts +581 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollViewContext.d.ts +24 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponent.d.ts +21 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponentType.d.ts +140 -0
- package/types_generated/Libraries/Components/ScrollView/ScrollViewStickyHeader.d.ts +36 -0
- package/types_generated/Libraries/Components/StatusBar/StatusBar.d.ts +222 -0
- package/types_generated/Libraries/Components/Switch/AndroidSwitchNativeComponent.d.ts +14 -0
- package/types_generated/Libraries/Components/Switch/Switch.d.ts +138 -0
- package/types_generated/Libraries/Components/Switch/SwitchNativeComponent.d.ts +14 -0
- package/types_generated/Libraries/Components/TV/TVEventControl.d.ts +23 -0
- package/types_generated/Libraries/Components/TV/TVEventHandler.d.ts +21 -0
- package/types_generated/Libraries/Components/TV/TVFocusGuideView.d.ts +96 -0
- package/types_generated/Libraries/Components/TV/TVTextScrollView.d.ts +97 -0
- package/types_generated/Libraries/Components/TV/TVViewPropTypes.d.ts +123 -0
- package/types_generated/Libraries/Components/TV/tagForComponentOrHandle.d.ts +24 -0
- package/types_generated/Libraries/Components/TV/useTVEventHandler.d.ts +20 -0
- package/types_generated/Libraries/Components/TextInput/InputAccessoryView.d.ts +86 -0
- package/types_generated/Libraries/Components/TextInput/TextInput.d.ts +47 -0
- package/types_generated/Libraries/Components/TextInput/TextInput.flow.d.ts +1005 -0
- package/types_generated/Libraries/Components/TextInput/TextInputState.d.ts +54 -0
- package/types_generated/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +99 -0
- package/types_generated/Libraries/Components/Touchable/Touchable.d.ts +257 -0
- package/types_generated/Libraries/Components/Touchable/TouchableHighlight.d.ts +51 -0
- package/types_generated/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +192 -0
- package/types_generated/Libraries/Components/Touchable/TouchableOpacity.d.ts +35 -0
- package/types_generated/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +121 -0
- package/types_generated/Libraries/Components/View/View.d.ts +30 -0
- package/types_generated/Libraries/Components/View/ViewAccessibility.d.ts +415 -0
- package/types_generated/Libraries/Components/View/ViewNativeComponent.d.ts +39 -0
- package/types_generated/Libraries/Components/View/ViewPropTypes.d.ts +367 -0
- package/types_generated/Libraries/Core/Devtools/symbolicateStackTrace.d.ts +27 -0
- package/types_generated/Libraries/Core/ExceptionsManager.d.ts +43 -0
- package/types_generated/Libraries/Core/ExtendedError.d.ts +26 -0
- package/types_generated/Libraries/Core/NativeExceptionsManager.d.ts +17 -0
- package/types_generated/Libraries/Core/RawEventEmitter.d.ts +26 -0
- package/types_generated/Libraries/Core/ReactFiberErrorDialog.d.ts +27 -0
- package/types_generated/Libraries/Core/ReactNativeVersion.d.ts +48 -0
- package/types_generated/Libraries/Core/registerCallableModule.d.ts +18 -0
- package/types_generated/Libraries/EventEmitter/NativeEventEmitter.d.ts +42 -0
- package/types_generated/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +19 -0
- package/types_generated/Libraries/EventEmitter/RCTEventEmitter.d.ts +18 -0
- package/types_generated/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +21 -0
- package/types_generated/Libraries/Image/AssetSourceResolver.d.ts +71 -0
- package/types_generated/Libraries/Image/Image.d.ts +18 -0
- package/types_generated/Libraries/Image/ImageBackground.d.ts +44 -0
- package/types_generated/Libraries/Image/ImageProps.d.ts +512 -0
- package/types_generated/Libraries/Image/ImageResizeMode.d.ts +17 -0
- package/types_generated/Libraries/Image/ImageSource.d.ts +94 -0
- package/types_generated/Libraries/Image/ImageTypes.flow.d.ts +61 -0
- package/types_generated/Libraries/Interaction/InteractionManager.d.ts +117 -0
- package/types_generated/Libraries/Interaction/PanResponder.d.ts +228 -0
- package/types_generated/Libraries/LayoutAnimation/LayoutAnimation.d.ts +76 -0
- package/types_generated/Libraries/Linking/Linking.d.ts +68 -0
- package/types_generated/Libraries/Lists/FlatList.d.ts +317 -0
- package/types_generated/Libraries/Lists/SectionList.d.ts +172 -0
- package/types_generated/Libraries/Lists/VirtualizedList.d.ts +19 -0
- package/types_generated/Libraries/Lists/VirtualizedSectionList.d.ts +19 -0
- package/types_generated/Libraries/LogBox/Data/LogBoxData.d.ts +78 -0
- package/types_generated/Libraries/LogBox/Data/LogBoxLog.d.ts +71 -0
- package/types_generated/Libraries/LogBox/Data/LogBoxSymbolication.d.ts +17 -0
- package/types_generated/Libraries/LogBox/Data/parseLogBoxLog.d.ts +49 -0
- package/types_generated/Libraries/LogBox/LogBox.d.ts +29 -0
- package/types_generated/Libraries/Modal/Modal.d.ts +110 -0
- package/types_generated/Libraries/NativeComponent/NativeComponentRegistry.d.ts +50 -0
- package/types_generated/Libraries/NativeModules/specs/NativeDialogManagerAndroid.d.ts +17 -0
- package/types_generated/Libraries/Network/FormData.d.ts +56 -0
- package/types_generated/Libraries/Network/RCTNetworking.d.ts +25 -0
- package/types_generated/Libraries/Network/RCTNetworkingEventDefinitions.flow.d.ts +22 -0
- package/types_generated/Libraries/Network/XMLHttpRequest.d.ts +114 -0
- package/types_generated/Libraries/Network/convertRequestBody.d.ts +21 -0
- package/types_generated/Libraries/Performance/Systrace.d.ts +61 -0
- package/types_generated/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +129 -0
- package/types_generated/Libraries/Pressability/Pressability.d.ts +241 -0
- package/types_generated/Libraries/Pressability/usePressability.d.ts +27 -0
- package/types_generated/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +323 -0
- package/types_generated/Libraries/ReactNative/AppRegistry.d.ts +14 -0
- package/types_generated/Libraries/ReactNative/AppRegistry.flow.d.ts +43 -0
- package/types_generated/Libraries/ReactNative/AppRegistryImpl.d.ts +73 -0
- package/types_generated/Libraries/ReactNative/DisplayMode.d.ts +24 -0
- package/types_generated/Libraries/ReactNative/I18nManager.d.ts +23 -0
- package/types_generated/Libraries/ReactNative/IPerformanceLogger.flow.d.ts +57 -0
- package/types_generated/Libraries/ReactNative/NativeI18nManager.d.ts +17 -0
- package/types_generated/Libraries/ReactNative/NativeUIManager.d.ts +17 -0
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.d.ts +31 -0
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.d.ts +15 -0
- package/types_generated/Libraries/ReactNative/RendererImplementation.d.ts +36 -0
- package/types_generated/Libraries/ReactNative/RendererProxy.d.ts +13 -0
- package/types_generated/Libraries/ReactNative/RootTag.d.ts +22 -0
- package/types_generated/Libraries/ReactNative/UIManager.d.ts +17 -0
- package/types_generated/Libraries/ReactNative/requireNativeComponent.d.ts +25 -0
- package/types_generated/Libraries/ReactPrivate/ReactNativePrivateInterface.d.ts +33 -0
- package/types_generated/Libraries/Renderer/shims/ReactFabric.d.ts +17 -0
- package/types_generated/Libraries/Renderer/shims/ReactNativeTypes.d.ts +155 -0
- package/types_generated/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.d.ts +41 -0
- package/types_generated/Libraries/Settings/Settings.d.ts +21 -0
- package/types_generated/Libraries/Share/Share.d.ts +85 -0
- package/types_generated/Libraries/StyleSheet/EdgeInsetsPropType.d.ts +15 -0
- package/types_generated/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +17 -0
- package/types_generated/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +27 -0
- package/types_generated/Libraries/StyleSheet/PointPropType.d.ts +16 -0
- package/types_generated/Libraries/StyleSheet/Rect.d.ts +22 -0
- package/types_generated/Libraries/StyleSheet/StyleSheet.d.ts +153 -0
- package/types_generated/Libraries/StyleSheet/StyleSheetExports.d.ts +94 -0
- package/types_generated/Libraries/StyleSheet/StyleSheetTypes.d.ts +851 -0
- package/types_generated/Libraries/StyleSheet/flattenStyle.d.ts +19 -0
- package/types_generated/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.d.ts +17 -0
- package/types_generated/Libraries/StyleSheet/private/_TransformStyle.d.ts +76 -0
- package/types_generated/Libraries/StyleSheet/processColor.d.ts +18 -0
- package/types_generated/Libraries/Text/Text.d.ts +30 -0
- package/types_generated/Libraries/Text/TextAncestorContext.d.ts +20 -0
- package/types_generated/Libraries/Text/TextNativeComponent.d.ts +41 -0
- package/types_generated/Libraries/Text/TextProps.d.ts +220 -0
- package/types_generated/Libraries/TurboModule/RCTExport.d.ts +35 -0
- package/types_generated/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
- package/types_generated/Libraries/Types/CodegenTypes.d.ts +24 -0
- package/types_generated/Libraries/Types/CodegenTypesNamespace.d.ts +14 -0
- package/types_generated/Libraries/Types/CoreEventTypes.d.ts +355 -0
- package/types_generated/Libraries/Types/RootTagTypes.d.ts +13 -0
- package/types_generated/Libraries/Types/UIManagerJSInterface.d.ts +17 -0
- package/types_generated/Libraries/UTFSequence.d.ts +39 -0
- package/types_generated/Libraries/Utilities/Appearance.d.ts +31 -0
- package/types_generated/Libraries/Utilities/BackHandler.d.ts +27 -0
- package/types_generated/Libraries/Utilities/DevSettings.d.ts +34 -0
- package/types_generated/Libraries/Utilities/DeviceInfo.d.ts +17 -0
- package/types_generated/Libraries/Utilities/Dimensions.d.ts +54 -0
- package/types_generated/Libraries/Utilities/NativeAppearance.d.ts +17 -0
- package/types_generated/Libraries/Utilities/NativeDeviceInfo.d.ts +14 -0
- package/types_generated/Libraries/Utilities/PixelRatio.d.ts +110 -0
- package/types_generated/Libraries/Utilities/Platform.d.ts +16 -0
- package/types_generated/Libraries/Utilities/PlatformTypes.d.ts +134 -0
- package/types_generated/Libraries/Utilities/codegenNativeCommands.d.ts +19 -0
- package/types_generated/Libraries/Utilities/codegenNativeComponent.d.ts +24 -0
- package/types_generated/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.d.ts +33 -0
- package/types_generated/Libraries/Utilities/differ/deepDiffer.d.ts +19 -0
- package/types_generated/Libraries/Utilities/useColorScheme.d.ts +15 -0
- package/types_generated/Libraries/Utilities/useWindowDimensions.d.ts +15 -0
- package/types_generated/Libraries/Vibration/Vibration.d.ts +29 -0
- package/types_generated/Libraries/vendor/core/ErrorUtils.d.ts +39 -0
- package/types_generated/Libraries/vendor/emitter/EventEmitter.d.ts +67 -0
- package/types_generated/index.d.ts +184 -0
- package/types_generated/src/private/components/virtualcollection/FlingConstants.d.ts +20 -0
- package/types_generated/src/private/components/virtualcollection/Virtual.d.ts +46 -0
- package/types_generated/src/private/components/virtualcollection/VirtualCollectionView.d.ts +81 -0
- package/types_generated/src/private/components/virtualcollection/column/VirtualColumn.d.ts +23 -0
- package/types_generated/src/private/components/virtualcollection/column/VirtualColumnGenerator.d.ts +17 -0
- package/types_generated/src/private/components/virtualcollection/dom/getScrollParent.d.ts +21 -0
- package/types_generated/src/private/components/virtualcollection/row/VirtualRow.d.ts +23 -0
- package/types_generated/src/private/components/virtualview/VirtualView.d.ts +75 -0
- package/types_generated/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.d.ts +107 -0
- package/types_generated/src/private/components/virtualview/VirtualViewNativeComponent.d.ts +107 -0
- package/types_generated/src/private/devsupport/devmenu/DevMenu.d.ts +28 -0
- package/types_generated/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.d.ts +53 -0
- package/types_generated/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.d.ts +36 -0
- package/types_generated/src/private/specs_DEPRECATED/components/SwitchNativeComponent.d.ts +51 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeAppearance.d.ts +26 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.d.ts +46 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.d.ts +37 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.d.ts +45 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeI18nManager.d.ts +27 -0
- package/types_generated/src/private/specs_DEPRECATED/modules/NativeUIManager.d.ts +109 -0
- package/types_generated/src/private/styles/composeStyles.d.ts +19 -0
- package/types_generated/src/private/types/HostComponent.d.ts +19 -0
- package/types_generated/src/private/types/HostInstance.d.ts +92 -0
- package/types_generated/src/private/webapis/dom/events/CustomEvent.d.ts +27 -0
- package/types_generated/src/private/webapis/dom/events/Event.d.ts +50 -0
- package/types_generated/src/private/webapis/dom/events/EventTarget.d.ts +36 -0
- package/types_generated/src/private/webapis/dom/nodes/ReactNativeDocument.d.ts +33 -0
- package/types_generated/src/private/webapis/dom/nodes/ReactNativeElement.d.ts +36 -0
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyCharacterData.d.ts +30 -0
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyElement.d.ts +54 -0
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyNode.d.ts +129 -0
- package/types_generated/src/private/webapis/dom/nodes/ReadOnlyText.d.ts +24 -0
- package/types_generated/src/private/webapis/dom/nodes/internals/NodeInternals.d.ts +36 -0
- package/types_generated/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.d.ts +23 -0
- package/types_generated/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.d.ts +22 -0
- package/types_generated/src/private/webapis/dom/nodes/specs/NativeDOM.d.ts +229 -0
- package/types_generated/src/private/webapis/dom/oldstylecollections/HTMLCollection.d.ts +22 -0
- package/types_generated/src/private/webapis/dom/oldstylecollections/NodeList.d.ts +25 -0
- package/types_generated/src/private/webapis/geometry/DOMRect.d.ts +46 -0
- package/types_generated/src/private/webapis/geometry/DOMRectReadOnly.d.ts +73 -0
- package/types_generated/src/private/webapis/utils/ArrayLikeUtils.d.ts +27 -0
- package/types_generated/tsconfig.json +3 -0
- package/types_generated/tsconfig.test.json +16 -0
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import type {BlurEvent, FocusEvent} from '../../Types/CoreEventTypes';
|
|
11
12
|
import type {ViewProps} from '../View/ViewPropTypes';
|
|
12
13
|
import type {ComponentOrHandleType} from './tagForComponentOrHandle';
|
|
13
14
|
|
|
@@ -16,6 +17,7 @@ import useMergeRefs from '../../Utilities/useMergeRefs';
|
|
|
16
17
|
import View from '../View/View';
|
|
17
18
|
import {Commands} from '../View/ViewNativeComponent';
|
|
18
19
|
import tagForComponentOrHandle from './tagForComponentOrHandle';
|
|
20
|
+
import useFocusEnterLeave from './useFocusEnterLeave';
|
|
19
21
|
|
|
20
22
|
const StyleSheet = require('../../StyleSheet/StyleSheet').default;
|
|
21
23
|
const React = require('react');
|
|
@@ -51,6 +53,20 @@ type TVFocusGuideViewProps = $ReadOnly<{
|
|
|
51
53
|
* When set to false, this view and all its subviews will be NOT focusable.
|
|
52
54
|
*/
|
|
53
55
|
focusable?: boolean | void,
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Fires once when focus enters this focus guide's subtree from outside.
|
|
59
|
+
* Unlike `onFocus`, which bubbles and fires for every descendant, this does
|
|
60
|
+
* not fire again when focus moves between descendants. Boundary-crossing
|
|
61
|
+
* only, same idea as `onMouseEnter` vs `onMouseOver`.
|
|
62
|
+
*/
|
|
63
|
+
onFocusEnter?: ?(event: FocusEvent) => void,
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Fires once when focus leaves this focus guide's subtree entirely. Does
|
|
67
|
+
* not fire when focus moves between descendants. Pairs with `onFocusEnter`.
|
|
68
|
+
*/
|
|
69
|
+
onFocusLeave?: ?(event: BlurEvent) => void,
|
|
54
70
|
}>;
|
|
55
71
|
|
|
56
72
|
export type TVFocusGuideViewImperativeMethods = $ReadOnly<{
|
|
@@ -63,6 +79,10 @@ function TVFocusGuideView({
|
|
|
63
79
|
destinations: destinationsProp,
|
|
64
80
|
autoFocus,
|
|
65
81
|
focusable,
|
|
82
|
+
onFocusEnter,
|
|
83
|
+
onFocusLeave,
|
|
84
|
+
onFocusCapture,
|
|
85
|
+
onBlurCapture,
|
|
66
86
|
ref,
|
|
67
87
|
...props
|
|
68
88
|
}: TVFocusGuideViewProps): React.Node {
|
|
@@ -103,6 +123,15 @@ function TVFocusGuideView({
|
|
|
103
123
|
|
|
104
124
|
const mergedRef = useMergeRefs(setLocalRef, ref);
|
|
105
125
|
|
|
126
|
+
// Collapse the bubbled per-descendant focus/blur into a single enter when
|
|
127
|
+
// focus crosses into the guide's subtree and a single leave when it exits.
|
|
128
|
+
const {handleFocusCapture, handleBlurCapture} = useFocusEnterLeave(
|
|
129
|
+
onFocusEnter,
|
|
130
|
+
onFocusLeave,
|
|
131
|
+
onFocusCapture,
|
|
132
|
+
onBlurCapture,
|
|
133
|
+
);
|
|
134
|
+
|
|
106
135
|
React.useEffect(() => {
|
|
107
136
|
if (focusable === false) {
|
|
108
137
|
setDestinations([]);
|
|
@@ -131,6 +160,8 @@ function TVFocusGuideView({
|
|
|
131
160
|
isTVSelectable={tvOSSelectable}
|
|
132
161
|
// Android TV only prop
|
|
133
162
|
tvFocusable={focusable}
|
|
163
|
+
onFocusCapture={handleFocusCapture}
|
|
164
|
+
onBlurCapture={handleBlurCapture}
|
|
134
165
|
/>
|
|
135
166
|
);
|
|
136
167
|
}
|
|
@@ -0,0 +1,112 @@
|
|
|
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
|
+
* @flow strict-local
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {BlurEvent, FocusEvent} from '../../Types/CoreEventTypes';
|
|
12
|
+
|
|
13
|
+
import * as React from 'react';
|
|
14
|
+
|
|
15
|
+
type FocusEnterLeaveState = {
|
|
16
|
+
entered: boolean,
|
|
17
|
+
pendingLeave: ?TimeoutID,
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type FocusEnterLeaveHandlers = {
|
|
21
|
+
handleFocusCapture: ?(event: FocusEvent) => void,
|
|
22
|
+
handleBlurCapture: ?(event: BlurEvent) => void,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Collapses the per-descendant focus/blur events into a single enter (focus
|
|
27
|
+
* crosses into the subtree) and a single leave (focus fully exits). A
|
|
28
|
+
* child-to-child move fires blur then focus back to back, so the deferred
|
|
29
|
+
* leave gets cancelled by the incoming focus and nothing fires.
|
|
30
|
+
*
|
|
31
|
+
* Hooks the capture phase, not bubble: capture reaches the container before
|
|
32
|
+
* any descendant sees the event, so a descendant calling stopPropagation
|
|
33
|
+
* can't leave us desynced.
|
|
34
|
+
*/
|
|
35
|
+
export default function useFocusEnterLeave(
|
|
36
|
+
onFocusEnter: ?(event: FocusEvent) => void,
|
|
37
|
+
onFocusLeave: ?(event: BlurEvent) => void,
|
|
38
|
+
onFocusCapture: ?(event: FocusEvent) => void,
|
|
39
|
+
onBlurCapture: ?(event: BlurEvent) => void,
|
|
40
|
+
): FocusEnterLeaveHandlers {
|
|
41
|
+
const stateRef = React.useRef<FocusEnterLeaveState>({
|
|
42
|
+
entered: false,
|
|
43
|
+
pendingLeave: null,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const activeHandlers =
|
|
47
|
+
onFocusEnter !== undefined || onFocusLeave !== undefined;
|
|
48
|
+
|
|
49
|
+
const handleFocusCapture = React.useCallback(
|
|
50
|
+
(event: FocusEvent) => {
|
|
51
|
+
const state = stateRef.current;
|
|
52
|
+
if (state.pendingLeave != null) {
|
|
53
|
+
clearTimeout(state.pendingLeave);
|
|
54
|
+
state.pendingLeave = null;
|
|
55
|
+
}
|
|
56
|
+
if (!state.entered) {
|
|
57
|
+
state.entered = true;
|
|
58
|
+
onFocusEnter?.(event);
|
|
59
|
+
}
|
|
60
|
+
onFocusCapture?.(event);
|
|
61
|
+
},
|
|
62
|
+
[onFocusEnter, onFocusCapture],
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
const handleBlurCapture = React.useCallback(
|
|
66
|
+
(event: BlurEvent) => {
|
|
67
|
+
const state = stateRef.current;
|
|
68
|
+
if (state.pendingLeave != null) {
|
|
69
|
+
clearTimeout(state.pendingLeave);
|
|
70
|
+
}
|
|
71
|
+
// Defer: if focus lands on another descendant this same tick, the focus
|
|
72
|
+
// handler clears this before it runs.
|
|
73
|
+
state.pendingLeave = setTimeout(() => {
|
|
74
|
+
state.pendingLeave = null;
|
|
75
|
+
if (state.entered) {
|
|
76
|
+
state.entered = false;
|
|
77
|
+
onFocusLeave?.(event);
|
|
78
|
+
}
|
|
79
|
+
}, 0);
|
|
80
|
+
onBlurCapture?.(event);
|
|
81
|
+
},
|
|
82
|
+
[onFocusLeave, onBlurCapture],
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
// Reset on unmount so a remounted instance starts clean and no deferred
|
|
86
|
+
// leave fires after we're gone.
|
|
87
|
+
// If no active handlers, return without doing anything
|
|
88
|
+
React.useEffect(() => {
|
|
89
|
+
if (!activeHandlers) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const state = stateRef.current;
|
|
93
|
+
return () => {
|
|
94
|
+
if (state.pendingLeave != null) {
|
|
95
|
+
clearTimeout(state.pendingLeave);
|
|
96
|
+
state.pendingLeave = null;
|
|
97
|
+
}
|
|
98
|
+
state.entered = false;
|
|
99
|
+
};
|
|
100
|
+
}, [activeHandlers]);
|
|
101
|
+
|
|
102
|
+
// Nothing to track: hand back the caller's own capture handlers untouched.
|
|
103
|
+
// (Kept after the hooks above so the hook count stays stable per render.)
|
|
104
|
+
if (onFocusEnter == null && onFocusLeave == null) {
|
|
105
|
+
return {
|
|
106
|
+
handleFocusCapture: onFocusCapture,
|
|
107
|
+
handleBlurCapture: onBlurCapture,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return {handleFocusCapture, handleBlurCapture};
|
|
112
|
+
}
|
package/README.md
CHANGED
|
@@ -255,6 +255,8 @@ class Game2048 extends React.Component {
|
|
|
255
255
|
| autoFocus | boolean? | If true, `TVFocusGuide` will automatically manage focus for you. It will redirect the focus to the first focusable child on the first visit. It also remembers the last focused child and redirects the focus to it on the subsequent visits. `destinations` prop takes precedence over this prop when used together. |
|
|
256
256
|
| focusable | boolean? | When set to false, this view and all its subviews will be NOT focusable. |
|
|
257
257
|
| trapFocus* (Up, Down, Left, Right) | Prevents focus escaping from the container for the given directions. |
|
|
258
|
+
| onFocusEnter | function? | Fires once when focus enters the FocusGuideView's subtree from outside. Unlike `onFocus`, it does not fire again when focus moves between descendants. |
|
|
259
|
+
| onFocusLeave | function? | Fires once when focus leaves the FocusGuideView's subtree entirely. Does not fire when focus moves between descendants. |
|
|
258
260
|
|
|
259
261
|
More information on the focus handling improvements above can be found in [this article](https://medium.com/xite-engineering/revolutionizing-focus-management-in-tv-applications-with-react-native-10ba69bd90).
|
|
260
262
|
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -492,6 +492,34 @@ static BOOL RCTLayerTransformCollapsesAxis(CALayer *layer)
|
|
|
492
492
|
return _props->isTVSelectable;
|
|
493
493
|
}
|
|
494
494
|
|
|
495
|
+
// Directional focus destinations are looked up in the containing root view when
|
|
496
|
+
// `updateProps` runs. A destination set while this view is not attached yet --
|
|
497
|
+
// e.g. a nextFocus* value delivered together with the view's creation -- resolves
|
|
498
|
+
// to nil there, and `updateProps` never retries because the prop value does not
|
|
499
|
+
// change. Re-resolve pending destinations lazily: `enableDirectionalFocusGuides`
|
|
500
|
+
// only does work while the view is focused, at which point the hierarchy is
|
|
501
|
+
// guaranteed to be attached.
|
|
502
|
+
- (void)resolvePendingNextFocusTargets
|
|
503
|
+
{
|
|
504
|
+
UIView *rootView = [self containingRootView];
|
|
505
|
+
|
|
506
|
+
if (rootView == nil) {
|
|
507
|
+
return;
|
|
508
|
+
}
|
|
509
|
+
if (_nextFocusUp == nil && _props->nextFocusUp.has_value()) {
|
|
510
|
+
_nextFocusUp = [rootView viewWithTag:_props->nextFocusUp.value()];
|
|
511
|
+
}
|
|
512
|
+
if (_nextFocusDown == nil && _props->nextFocusDown.has_value()) {
|
|
513
|
+
_nextFocusDown = [rootView viewWithTag:_props->nextFocusDown.value()];
|
|
514
|
+
}
|
|
515
|
+
if (_nextFocusLeft == nil && _props->nextFocusLeft.has_value()) {
|
|
516
|
+
_nextFocusLeft = [rootView viewWithTag:_props->nextFocusLeft.value()];
|
|
517
|
+
}
|
|
518
|
+
if (_nextFocusRight == nil && _props->nextFocusRight.has_value()) {
|
|
519
|
+
_nextFocusRight = [rootView viewWithTag:_props->nextFocusRight.value()];
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
|
|
495
523
|
// In tvOS, to support directional focus APIs, we add a UIFocusGuide for each
|
|
496
524
|
// side of the view where a nextFocus has been set. Set layout constraints to
|
|
497
525
|
// make the guide 1 px thick, and set the destination to the nextFocus object.
|
|
@@ -503,6 +531,8 @@ static BOOL RCTLayerTransformCollapsesAxis(CALayer *layer)
|
|
|
503
531
|
if (!self.isFocused) {
|
|
504
532
|
return;
|
|
505
533
|
}
|
|
534
|
+
|
|
535
|
+
[self resolvePendingNextFocusTargets];
|
|
506
536
|
if (self->_nextFocusUp != nil) {
|
|
507
537
|
if (self.focusGuideUp == nil) {
|
|
508
538
|
self.focusGuideUp = [UIFocusGuide new];
|
package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt
CHANGED
|
@@ -900,7 +900,16 @@ internal constructor(
|
|
|
900
900
|
return
|
|
901
901
|
}
|
|
902
902
|
|
|
903
|
-
val viewState =
|
|
903
|
+
val viewState = getNullableViewState(reactTag)
|
|
904
|
+
if (viewState == null) {
|
|
905
|
+
ReactSoftExceptionLogger.logSoftException(
|
|
906
|
+
ReactSoftExceptionLogger.Categories.SURFACE_MOUNTING_MANAGER_MISSING_VIEWSTATE,
|
|
907
|
+
ReactNoCrashSoftException(
|
|
908
|
+
"Unable to find viewState for tag $reactTag for updateOverflowInset"
|
|
909
|
+
),
|
|
910
|
+
)
|
|
911
|
+
return
|
|
912
|
+
}
|
|
904
913
|
// Do not layout Root Views
|
|
905
914
|
if (viewState.isRoot) {
|
|
906
915
|
return
|
|
@@ -87,11 +87,15 @@ public open class IntentModule(reactContext: ReactApplicationContext) :
|
|
|
87
87
|
override fun onHostResume() {
|
|
88
88
|
reactApplicationContext.removeLifecycleEventListener(this)
|
|
89
89
|
synchronized(this@IntentModule) {
|
|
90
|
-
|
|
90
|
+
// getInitialURL can re-enter and re-add to pendingOpenURLPromises when the activity
|
|
91
|
+
// is still null at resume, so drain a snapshot (after clearing the list and listener)
|
|
92
|
+
// to avoid mutating the list being iterated (ConcurrentModificationException).
|
|
93
|
+
val pendingPromises = ArrayList(pendingOpenURLPromises)
|
|
94
|
+
pendingOpenURLPromises.clear()
|
|
95
|
+
initialURLListener = null
|
|
96
|
+
for (pendingPromise in pendingPromises) {
|
|
91
97
|
getInitialURL(pendingPromise)
|
|
92
98
|
}
|
|
93
|
-
initialURLListener = null
|
|
94
|
-
pendingOpenURLPromises.clear()
|
|
95
99
|
}
|
|
96
100
|
}
|
|
97
101
|
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
|
|
15
15
|
#define REACT_NATIVE_VERSION_MAJOR 0
|
|
16
16
|
#define REACT_NATIVE_VERSION_MINOR 86
|
|
17
|
-
#define REACT_NATIVE_VERSION_PATCH
|
|
17
|
+
#define REACT_NATIVE_VERSION_PATCH 3
|
|
18
18
|
|
|
19
19
|
namespace facebook::react {
|
|
20
20
|
|
|
21
21
|
struct ReactNativeVersionType {
|
|
22
22
|
int32_t Major = 0;
|
|
23
23
|
int32_t Minor = 86;
|
|
24
|
-
int32_t Patch =
|
|
24
|
+
int32_t Patch = 3;
|
|
25
25
|
std::string_view Prerelease = "0";
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -198,10 +198,6 @@ jsi::Value NativeDOM::getParentNode(
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
auto shadowNode = getShadowNode(rt, nativeNodeReference);
|
|
201
|
-
if (isRootShadowNode(*shadowNode)) {
|
|
202
|
-
// The parent of the root node is the document.
|
|
203
|
-
return jsi::Value{shadowNode->getSurfaceId()};
|
|
204
|
-
}
|
|
205
201
|
|
|
206
202
|
auto currentRevision =
|
|
207
203
|
getCurrentShadowTreeRevision(rt, shadowNode->getSurfaceId());
|
|
@@ -209,6 +205,16 @@ jsi::Value NativeDOM::getParentNode(
|
|
|
209
205
|
return jsi::Value::undefined();
|
|
210
206
|
}
|
|
211
207
|
|
|
208
|
+
// The parent of the surface's root node is the document. Only the actual
|
|
209
|
+
// root node qualifies: nested nodes that carry the `RootNodeKind` trait
|
|
210
|
+
// (e.g. <Modal>, portals/overlays) still have a real parent in the shadow
|
|
211
|
+
// tree and must report it. Otherwise capture/bubble event propagation is
|
|
212
|
+
// silently severed at that boundary (a listener on an ancestor rendered
|
|
213
|
+
// above the modal would never receive descendant focus/blur, etc.).
|
|
214
|
+
if (ShadowNode::sameFamily(*currentRevision, *shadowNode)) {
|
|
215
|
+
return jsi::Value{shadowNode->getSurfaceId()};
|
|
216
|
+
}
|
|
217
|
+
|
|
212
218
|
auto parentShadowNode = dom::getParentNode(currentRevision, *shadowNode);
|
|
213
219
|
if (parentShadowNode == nullptr) {
|
|
214
220
|
return jsi::Value::undefined();
|
|
@@ -134,11 +134,19 @@ void EventEmitter::dispatchEvent(
|
|
|
134
134
|
return;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
SharedEventTarget eventTarget;
|
|
138
|
+
std::weak_ptr<const ShadowNodeFamily> shadowNodeFamily;
|
|
139
|
+
{
|
|
140
|
+
std::scoped_lock lock(DispatchMutex());
|
|
141
|
+
eventTarget = eventTarget_;
|
|
142
|
+
shadowNodeFamily = shadowNodeFamily_;
|
|
143
|
+
}
|
|
144
|
+
|
|
137
145
|
eventDispatcher->dispatchEvent(RawEvent(
|
|
138
146
|
normalizeEventType(std::move(type)),
|
|
139
147
|
std::move(payload),
|
|
140
|
-
|
|
141
|
-
|
|
148
|
+
std::move(eventTarget),
|
|
149
|
+
std::move(shadowNodeFamily),
|
|
142
150
|
category,
|
|
143
151
|
false,
|
|
144
152
|
eventTimestamp));
|
|
@@ -180,11 +188,19 @@ void EventEmitter::dispatchUniqueEvent(
|
|
|
180
188
|
return;
|
|
181
189
|
}
|
|
182
190
|
|
|
191
|
+
SharedEventTarget eventTarget;
|
|
192
|
+
std::weak_ptr<const ShadowNodeFamily> shadowNodeFamily;
|
|
193
|
+
{
|
|
194
|
+
std::scoped_lock lock(DispatchMutex());
|
|
195
|
+
eventTarget = eventTarget_;
|
|
196
|
+
shadowNodeFamily = shadowNodeFamily_;
|
|
197
|
+
}
|
|
198
|
+
|
|
183
199
|
eventDispatcher->dispatchUniqueEvent(RawEvent(
|
|
184
200
|
normalizeEventType(std::move(type)),
|
|
185
201
|
std::move(payload),
|
|
186
|
-
|
|
187
|
-
|
|
202
|
+
std::move(eventTarget),
|
|
203
|
+
std::move(shadowNodeFamily),
|
|
188
204
|
RawEvent::Category::Continuous,
|
|
189
205
|
true,
|
|
190
206
|
eventTimestamp));
|
|
@@ -361,7 +361,7 @@ UIFont *RCTFontWithFontProperties(RCTFontProperties fontProperties)
|
|
|
361
361
|
font = [UIFont fontWithName:fontProperties.family size:effectiveFontSize];
|
|
362
362
|
if (font != nullptr) {
|
|
363
363
|
fontNames = [UIFont fontNamesForFamilyName:font.familyName];
|
|
364
|
-
fontWeight = (fontWeight != 0.0)
|
|
364
|
+
fontWeight = (fontWeight != 0.0) ? fontWeight : RCTGetFontWeight(font);
|
|
365
365
|
} else {
|
|
366
366
|
// Failback to system font.
|
|
367
367
|
font = RCTDefaultFontWithFontProperties(fontProperties);
|
|
@@ -61,6 +61,6 @@ Pod::Spec.new do |spec|
|
|
|
61
61
|
# Fabric must be able to access private headers (which should not be included in the umbrella header)
|
|
62
62
|
all_header_files = 'yoga/**/*.h'
|
|
63
63
|
all_header_files = File.join('ReactCommon/yoga', all_header_files) if ENV['INSTALL_YOGA_WITHOUT_PATH_OPTION']
|
|
64
|
-
spec.private_header_files = Dir.glob(all_header_files) - Dir.glob(public_header_files)
|
|
64
|
+
spec.private_header_files = Dir.glob(all_header_files).sort - Dir.glob(public_header_files).sort
|
|
65
65
|
spec.preserve_paths = [all_header_files]
|
|
66
66
|
end
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tvos",
|
|
3
|
-
"version": "0.86.
|
|
3
|
+
"version": "0.86.3-0",
|
|
4
4
|
"description": "A framework for building native apps using React",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"featureflags-check": "node ./scripts/featureflags/index.js --verify-unchanged"
|
|
155
155
|
},
|
|
156
156
|
"peerDependencies": {
|
|
157
|
-
"@react-native/jest-preset": "0.86.
|
|
157
|
+
"@react-native/jest-preset": "0.86.3",
|
|
158
158
|
"@types/react": "^19.1.1",
|
|
159
159
|
"react": "^19.2.3"
|
|
160
160
|
},
|
|
@@ -167,12 +167,12 @@
|
|
|
167
167
|
}
|
|
168
168
|
},
|
|
169
169
|
"dependencies": {
|
|
170
|
-
"@react-native/assets-registry": "0.86.
|
|
171
|
-
"@react-native/codegen": "0.86.
|
|
172
|
-
"@react-native/community-cli-plugin": "0.86.
|
|
173
|
-
"@react-native/gradle-plugin": "0.86.
|
|
174
|
-
"@react-native/js-polyfills": "0.86.
|
|
175
|
-
"@react-native/normalize-colors": "0.86.
|
|
170
|
+
"@react-native/assets-registry": "0.86.3",
|
|
171
|
+
"@react-native/codegen": "0.86.3",
|
|
172
|
+
"@react-native/community-cli-plugin": "0.86.3",
|
|
173
|
+
"@react-native/gradle-plugin": "0.86.3",
|
|
174
|
+
"@react-native/js-polyfills": "0.86.3",
|
|
175
|
+
"@react-native/normalize-colors": "0.86.3",
|
|
176
176
|
"abort-controller": "^3.0.0",
|
|
177
177
|
"anser": "^1.4.9",
|
|
178
178
|
"ansi-regex": "^5.0.0",
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
"base64-js": "^1.5.1",
|
|
181
181
|
"commander": "^12.0.0",
|
|
182
182
|
"flow-enums-runtime": "^0.0.6",
|
|
183
|
-
"hermes-compiler": "250829098.0.
|
|
183
|
+
"hermes-compiler": "250829098.0.17",
|
|
184
184
|
"invariant": "^2.2.4",
|
|
185
185
|
"memoize-one": "^5.0.0",
|
|
186
186
|
"metro-runtime": "^0.84.3",
|
|
@@ -198,7 +198,7 @@
|
|
|
198
198
|
"whatwg-fetch": "^3.0.0",
|
|
199
199
|
"ws": "^7.5.10",
|
|
200
200
|
"yargs": "^17.6.2",
|
|
201
|
-
"@react-native-tvos/virtualized-lists": "0.86.
|
|
201
|
+
"@react-native-tvos/virtualized-lists": "0.86.3-0"
|
|
202
202
|
},
|
|
203
203
|
"codegenConfig": {
|
|
204
204
|
"libraries": [
|
package/sdks/.hermesv1version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
hermes-v250829098.0.
|
|
1
|
+
hermes-v250829098.0.17
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
# LICENSE file in the root directory of this source tree.
|
|
5
5
|
|
|
6
6
|
require "json"
|
|
7
|
+
require "pathname"
|
|
7
8
|
require_relative "./hermes-utils.rb"
|
|
8
9
|
|
|
9
10
|
begin
|
|
@@ -91,9 +92,13 @@ Pod::Spec.new do |spec|
|
|
|
91
92
|
hermes_compiler_path = File.dirname(Pod::Executable.execute_command('node', ['-p',
|
|
92
93
|
"require.resolve(\"hermes-compiler\", {paths: [\"#{react_native_path}\"]})", __dir__]).strip
|
|
93
94
|
)
|
|
95
|
+
hermesc_path = File.join(hermes_compiler_path, 'hermesc', 'osx-bin', 'hermesc')
|
|
96
|
+
|
|
97
|
+
pods_root = Pod::Config.instance.sandbox.root
|
|
98
|
+
relative_hermesc = Pathname.new(hermesc_path).relative_path_from(pods_root)
|
|
94
99
|
|
|
95
100
|
spec.user_target_xcconfig = {
|
|
96
|
-
'HERMES_CLI_PATH' => "
|
|
101
|
+
'HERMES_CLI_PATH' => "$(PODS_ROOT)/#{relative_hermesc}"
|
|
97
102
|
}
|
|
98
103
|
end
|
|
99
104
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
HERMES_VERSION_NAME=0.17.0
|
|
2
|
-
HERMES_V1_VERSION_NAME=250829098.0.
|
|
2
|
+
HERMES_V1_VERSION_NAME=250829098.0.17
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type { View, ScrollViewProps, HostComponent, EventSubscription, TVParallaxProperties } from 'react-native';
|
|
2
|
+
import type { View, ScrollViewProps, HostComponent, EventSubscription, TVParallaxProperties, FocusEvent, BlurEvent } from 'react-native';
|
|
3
3
|
|
|
4
4
|
declare module 'react-native' {
|
|
5
5
|
export type FocusDestination = null | number | React.Component<any, any> | React.ComponentClass<any>;
|
|
@@ -151,6 +151,17 @@ declare module 'react-native' {
|
|
|
151
151
|
* @deprecated Don't use it, no longer necessary.
|
|
152
152
|
*/
|
|
153
153
|
safePadding?: 'both' | 'vertical' | 'horizontal' | null | undefined;
|
|
154
|
+
/**
|
|
155
|
+
* Fires once when focus enters this focus guide's subtree from outside.
|
|
156
|
+
* Unlike `onFocus`, which bubbles and fires for every descendant, this
|
|
157
|
+
* does not fire again when focus moves between descendants.
|
|
158
|
+
*/
|
|
159
|
+
onFocusEnter?: ((event: FocusEvent) => void) | undefined;
|
|
160
|
+
/**
|
|
161
|
+
* Fires once when focus leaves this focus guide's subtree entirely. Does
|
|
162
|
+
* not fire when focus moves between descendants. Pairs with `onFocusEnter`.
|
|
163
|
+
*/
|
|
164
|
+
onFocusLeave?: ((event: BlurEvent) => void) | undefined;
|
|
154
165
|
}
|
|
155
166
|
|
|
156
167
|
export type FocusGuideMethods = {
|
|
@@ -0,0 +1,101 @@
|
|
|
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
|
+
* @generated SignedSource<<95a43b38d9ff7bdac53651637184abce>>
|
|
8
|
+
*
|
|
9
|
+
* This file was translated from Flow by scripts/js-api/build-types/index.js.
|
|
10
|
+
* Original file: packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import type { ProcessedColorValue } from "../StyleSheet/processColor";
|
|
14
|
+
import type { ColorValue } from "../StyleSheet/StyleSheet";
|
|
15
|
+
export type ActionSheetIOSOptions = Readonly<{
|
|
16
|
+
title?: string | undefined;
|
|
17
|
+
message?: string | undefined;
|
|
18
|
+
options: Array<string>;
|
|
19
|
+
destructiveButtonIndex?: (number | undefined) | (Array<number> | undefined);
|
|
20
|
+
cancelButtonIndex?: number | undefined;
|
|
21
|
+
anchor?: number | undefined;
|
|
22
|
+
tintColor?: ColorValue | ProcessedColorValue;
|
|
23
|
+
cancelButtonTintColor?: ColorValue | ProcessedColorValue;
|
|
24
|
+
disabledButtonTintColor?: ColorValue | ProcessedColorValue;
|
|
25
|
+
userInterfaceStyle?: string;
|
|
26
|
+
disabledButtonIndices?: Array<number>;
|
|
27
|
+
}>;
|
|
28
|
+
export type ShareActionSheetIOSOptions = Readonly<{
|
|
29
|
+
message?: string | undefined;
|
|
30
|
+
url?: string | undefined;
|
|
31
|
+
subject?: string | undefined;
|
|
32
|
+
anchor?: number | undefined;
|
|
33
|
+
tintColor?: number | undefined;
|
|
34
|
+
cancelButtonTintColor?: number | undefined;
|
|
35
|
+
disabledButtonTintColor?: number | undefined;
|
|
36
|
+
excludedActivityTypes?: Array<string> | undefined;
|
|
37
|
+
userInterfaceStyle?: string | undefined;
|
|
38
|
+
}>;
|
|
39
|
+
export type ShareActionSheetError = Readonly<{
|
|
40
|
+
domain: string;
|
|
41
|
+
code: string;
|
|
42
|
+
userInfo?: Object | undefined;
|
|
43
|
+
message: string;
|
|
44
|
+
}>;
|
|
45
|
+
declare const ActionSheetIOS: {
|
|
46
|
+
/**
|
|
47
|
+
* Display an iOS action sheet.
|
|
48
|
+
*
|
|
49
|
+
* The `options` object must contain one or more of:
|
|
50
|
+
*
|
|
51
|
+
* - `options` (array of strings) - a list of button titles (required)
|
|
52
|
+
* - `cancelButtonIndex` (int) - index of cancel button in `options`
|
|
53
|
+
* - `destructiveButtonIndex` (int or array of ints) - index or indices of destructive buttons in `options`
|
|
54
|
+
* - `title` (string) - a title to show above the action sheet
|
|
55
|
+
* - `message` (string) - a message to show below the title
|
|
56
|
+
* - `disabledButtonIndices` (array of numbers) - a list of button indices which should be disabled
|
|
57
|
+
*
|
|
58
|
+
* The 'callback' function takes one parameter, the zero-based index
|
|
59
|
+
* of the selected item.
|
|
60
|
+
*
|
|
61
|
+
* See https://reactnative.dev/docs/actionsheetios#showactionsheetwithoptions
|
|
62
|
+
*/
|
|
63
|
+
showActionSheetWithOptions(options: ActionSheetIOSOptions, callback: (buttonIndex: number) => void): void;
|
|
64
|
+
/**
|
|
65
|
+
* Display the iOS share sheet. The `options` object should contain
|
|
66
|
+
* one or both of `message` and `url` and can additionally have
|
|
67
|
+
* a `subject` or `excludedActivityTypes`:
|
|
68
|
+
*
|
|
69
|
+
* - `url` (string) - a URL to share
|
|
70
|
+
* - `message` (string) - a message to share
|
|
71
|
+
* - `subject` (string) - a subject for the message
|
|
72
|
+
* - `excludedActivityTypes` (array) - the activities to exclude from
|
|
73
|
+
* the ActionSheet
|
|
74
|
+
* - `tintColor` (color) - tint color of the buttons
|
|
75
|
+
*
|
|
76
|
+
* The 'failureCallback' function takes one parameter, an error object.
|
|
77
|
+
* The only property defined on this object is an optional `stack` property
|
|
78
|
+
* of type `string`.
|
|
79
|
+
*
|
|
80
|
+
* The 'successCallback' function takes two parameters:
|
|
81
|
+
*
|
|
82
|
+
* - a boolean value signifying success or failure
|
|
83
|
+
* - a string that, in the case of success, indicates the method of sharing
|
|
84
|
+
*
|
|
85
|
+
* See https://reactnative.dev/docs/actionsheetios#showshareactionsheetwithoptions
|
|
86
|
+
*/
|
|
87
|
+
showShareActionSheetWithOptions(options: ShareActionSheetIOSOptions, failureCallback: Function | ((error: ShareActionSheetError) => void), successCallback: Function | ((success: boolean, method: null | undefined | string) => void)): void;
|
|
88
|
+
/**
|
|
89
|
+
* Dismisses the most upper iOS action sheet presented, if no action sheet is
|
|
90
|
+
* present a warning is displayed.
|
|
91
|
+
*/
|
|
92
|
+
dismissActionSheet: () => void;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Display action sheets and share sheets on iOS.
|
|
96
|
+
*
|
|
97
|
+
* See https://reactnative.dev/docs/actionsheetios
|
|
98
|
+
*/
|
|
99
|
+
declare const $$ActionSheetIOS: typeof ActionSheetIOS;
|
|
100
|
+
declare type $$ActionSheetIOS = typeof $$ActionSheetIOS;
|
|
101
|
+
export default $$ActionSheetIOS;
|