react-native-tvos 0.77.0-0rc1 → 0.77.1-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.
Files changed (74) hide show
  1. package/Libraries/Animated/animations/Animation.js +1 -1
  2. package/Libraries/Components/Pressable/Pressable.d.ts +2 -2
  3. package/Libraries/Components/Pressable/Pressable.js +3 -3
  4. package/Libraries/Components/ScrollView/ScrollView.js +3 -2
  5. package/Libraries/Components/TV/TVFocusGuideView.js +2 -6
  6. package/Libraries/Components/TextInput/TextInput.js +1 -1
  7. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  8. package/Libraries/Components/Touchable/TouchableOpacity.js +1 -2
  9. package/Libraries/Components/View/View.js +2 -3
  10. package/Libraries/Components/View/ViewNativeComponent.js +2 -2
  11. package/Libraries/Components/View/ViewPropTypes.d.ts +4 -2
  12. package/Libraries/Core/ReactNativeVersion.js +2 -2
  13. package/Libraries/Core/setUpDeveloperTools.js +2 -3
  14. package/Libraries/Image/RCTImageLoader.mm +9 -1
  15. package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
  16. package/Libraries/LogBox/UI/LogBoxButton.js +2 -2
  17. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  18. package/Libraries/Pressability/Pressability.js +2 -2
  19. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +1 -1
  20. package/Libraries/Utilities/BackHandler.ios.js +3 -8
  21. package/Libraries/Utilities/HMRClient.js +0 -28
  22. package/Libraries/Utilities/HMRClientProdShim.js +0 -1
  23. package/Libraries/Utilities/setAndForwardRef.js +2 -2
  24. package/React/Base/RCTConvert.mm +3 -1
  25. package/React/Base/RCTVersion.m +2 -2
  26. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +89 -40
  27. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +11 -1
  28. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +5 -2
  29. package/React/Views/RCTTVView.m +5 -2
  30. package/React/Views/ScrollView/RCTScrollView.m +63 -26
  31. package/ReactAndroid/api/ReactAndroid.api +5 -0
  32. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +13 -3
  33. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +0 -13
  34. package/ReactAndroid/gradle.properties +2 -2
  35. package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.java +12 -13
  36. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +8 -0
  37. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +8 -0
  38. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +37 -0
  39. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +1 -1
  40. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +6 -2
  41. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +15 -8
  42. package/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.kt +18 -0
  43. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  44. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +9 -8
  45. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +22 -2
  46. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +16 -2
  47. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactClippingViewManager.kt +0 -3
  48. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +33 -0
  49. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +12 -0
  50. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  51. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +13 -4
  52. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +5 -0
  53. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +27 -9
  54. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +6 -0
  55. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  56. package/ReactCommon/react/renderer/attributedstring/conversions.h +5 -0
  57. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +12 -0
  58. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
  59. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +7 -3
  60. package/ReactCommon/react/runtime/ReactInstance.cpp +39 -35
  61. package/ReactCommon/react/runtime/ReactInstance.h +2 -1
  62. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +3 -2
  63. package/index.js +5 -5
  64. package/package.json +13 -10
  65. package/scripts/cocoapods/utils.rb +6 -6
  66. package/scripts/codegen/generate-artifacts-executor.js +10 -0
  67. package/sdks/hermes-engine/hermes-engine.podspec +1 -1
  68. package/sdks/hermes-engine/hermes-utils.rb +2 -2
  69. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  70. package/sdks/hermesc/osx-bin/hermes +0 -0
  71. package/sdks/hermesc/osx-bin/hermesc +0 -0
  72. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  73. package/src/private/featureflags/ReactNativeFeatureFlags.js +2 -2
  74. package/types/public/ReactNativeTVTypes.d.ts +9 -7
@@ -165,7 +165,7 @@ export default class Animation {
165
165
  const callback = this.#onEnd;
166
166
  if (callback != null) {
167
167
  this.#onEnd = null;
168
- queueMicrotask(() => callback(result));
168
+ callback(result);
169
169
  }
170
170
  }
171
171
  }
@@ -20,7 +20,7 @@ import {
20
20
  import {View} from '../View/View';
21
21
  import {AccessibilityProps} from '../View/ViewAccessibility';
22
22
  import {ViewProps} from '../View/ViewPropTypes';
23
- import {TVParallaxProperties} from '../../../types/public/ReactNativeTVTypes';
23
+ import {TVParallaxProperties} from '../../../types/index';
24
24
 
25
25
  export interface PressableStateCallbackType {
26
26
  readonly pressed: boolean;
@@ -166,7 +166,7 @@ export interface PressableProps
166
166
  *
167
167
  * @platform ios
168
168
  */
169
- tvParallaxProperties?: TVParallaxProperties;
169
+ tvParallaxProperties?: TVParallaxProperties | undefined;
170
170
  }
171
171
 
172
172
  // TODO use React.AbstractComponent when available
@@ -9,12 +9,13 @@
9
9
  */
10
10
 
11
11
  import type {
12
- FocusEvent,
13
12
  BlurEvent,
13
+ FocusEvent,
14
14
  LayoutEvent,
15
15
  MouseEvent,
16
16
  PressEvent,
17
17
  } from '../../Types/CoreEventTypes';
18
+ import type {TVParallaxPropertiesType} from '../TV/TVViewPropTypes';
18
19
  import type {
19
20
  AccessibilityActionEvent,
20
21
  AccessibilityActionInfo,
@@ -27,9 +28,8 @@ import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
27
28
  import usePressability from '../../Pressability/usePressability';
28
29
  import {type RectOrSize} from '../../StyleSheet/Rect';
29
30
  import useMergeRefs from '../../Utilities/useMergeRefs';
30
- import View from '../View/View';
31
- import type {TVParallaxPropertiesType} from '../TV/TVViewPropTypes';
32
31
  import tagForComponentOrHandle from '../TV/tagForComponentOrHandle';
32
+ import View from '../View/View';
33
33
  import useAndroidRippleForView, {
34
34
  type RippleConfig,
35
35
  } from './useAndroidRippleForView';
@@ -1921,5 +1921,6 @@ Wrapper.displayName = 'ScrollView';
1921
1921
  // $FlowExpectedError[prop-missing]
1922
1922
  Wrapper.Context = ScrollViewContext;
1923
1923
 
1924
- module.exports = ((Wrapper: $FlowFixMe): typeof Wrapper &
1925
- ScrollViewComponentStatics);
1924
+ //module.exports = ((Wrapper: $FlowFixMe): typeof Wrapper &
1925
+ // ScrollViewComponentStatics);
1926
+ module.exports = ((Wrapper: $FlowFixMe): $FlowFixMe);
@@ -8,7 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
12
11
  import type {ViewProps} from '../View/ViewPropTypes';
13
12
  import type {ComponentOrHandleType} from './tagForComponentOrHandle';
14
13
 
@@ -55,7 +54,7 @@ type TVFocusGuideViewProps = $ReadOnly<{
55
54
 
56
55
  export type TVFocusGuideViewImperativeMethods = $ReadOnly<{
57
56
  setDestinations: (
58
- destinations: (?React.ElementRef<HostComponent<mixed>>)[],
57
+ destinations: ComponentOrHandleType[],
59
58
  ) => void,
60
59
  }>;
61
60
 
@@ -143,10 +142,7 @@ const styles = StyleSheet.create({
143
142
  },
144
143
  });
145
144
 
146
- const ForwardedTVFocusGuideView: React.AbstractComponent<
147
- TVFocusGuideViewProps,
148
- React.ElementRef<typeof View> & TVFocusGuideViewImperativeMethods,
149
- > = React.forwardRef(TVFocusGuideView);
145
+ const ForwardedTVFocusGuideView: $FlowFixMe = React.forwardRef(TVFocusGuideView);
150
146
  ForwardedTVFocusGuideView.displayName = 'TVFocusGuideView';
151
147
 
152
148
  module.exports = ForwardedTVFocusGuideView;
@@ -20,7 +20,6 @@ import type {TextInputType} from './TextInput.flow';
20
20
 
21
21
  import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
22
22
  import usePressability from '../../Pressability/usePressability';
23
- import warnOnce from '../../Utilities/warnOnce';
24
23
  import flattenStyle from '../../StyleSheet/flattenStyle';
25
24
  import StyleSheet, {
26
25
  type ColorValue,
@@ -31,6 +30,7 @@ import Text from '../../Text/Text';
31
30
  import TextAncestor from '../../Text/TextAncestor';
32
31
  import Platform from '../../Utilities/Platform';
33
32
  import useMergeRefs from '../../Utilities/useMergeRefs';
33
+ import warnOnce from '../../Utilities/warnOnce';
34
34
  import TextInputState from './TextInputState';
35
35
  import invariant from 'invariant';
36
36
  import nullthrows from 'nullthrows';
@@ -18,8 +18,8 @@ import Pressability, {
18
18
  import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
19
19
  import {findHostInstance_DEPRECATED} from '../../ReactNative/RendererProxy';
20
20
  import processColor from '../../StyleSheet/processColor';
21
- import tagForComponentOrHandle from '../TV/tagForComponentOrHandle';
22
21
  import Platform from '../../Utilities/Platform';
22
+ import tagForComponentOrHandle from '../TV/tagForComponentOrHandle';
23
23
  import {Commands} from '../View/ViewNativeComponent';
24
24
  import invariant from 'invariant';
25
25
  import * as React from 'react';
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
12
+ import type {TVParallaxPropertiesType} from '../TV/TVViewPropTypes';
12
13
  import typeof TouchableWithoutFeedback from './TouchableWithoutFeedback';
13
14
 
14
15
  import Animated from '../../Animated/Animated';
@@ -19,9 +20,7 @@ import Pressability, {
19
20
  import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
20
21
  import flattenStyle from '../../StyleSheet/flattenStyle';
21
22
  import Platform from '../../Utilities/Platform';
22
- import type {TVParallaxPropertiesType} from '../TV/TVViewPropTypes';
23
23
  import tagForComponentOrHandle from '../TV/tagForComponentOrHandle';
24
-
25
24
  import * as React from 'react';
26
25
 
27
26
  type TVProps = $ReadOnly<{|
@@ -11,11 +11,10 @@
11
11
  import type {ViewProps} from './ViewPropTypes';
12
12
 
13
13
  import TextAncestor from '../../Text/TextAncestor';
14
+ import setAndForwardRef from '../../Utilities/setAndForwardRef';
14
15
  import ViewNativeComponent from './ViewNativeComponent';
15
- import * as React from 'react';
16
16
  import {Commands} from './ViewNativeComponent';
17
-
18
- import setAndForwardRef from '../../Utilities/setAndForwardRef';
17
+ import * as React from 'react';
19
18
 
20
19
  export type Props = ViewProps;
21
20
 
@@ -27,10 +27,10 @@ interface NativeCommands {
27
27
  +setPressed: (viewRef: HostInstance, pressed: boolean) => void;
28
28
  // Focus Guide API
29
29
  +setDestinations: (
30
- viewRef: React.ElementRef<HostComponent<mixed>>,
30
+ viewRef: $FlowFixMe,
31
31
  destinations: Array<number>, // Node handles are basically integers
32
32
  ) => void;
33
- +requestTVFocus: (viewRef: React.ElementRef<HostComponent<mixed>>) => void;
33
+ +requestTVFocus: (viewRef: $FlowFixMe) => void;
34
34
  }
35
35
 
36
36
  export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
@@ -17,6 +17,8 @@ import {
17
17
  PointerEvents,
18
18
  FocusEvents,
19
19
  PressEvents,
20
+ NativeFocusEvent,
21
+ NativeBlurEvent,
20
22
  } from '../../Types/CoreEventTypes';
21
23
  import {Touchable} from '../Touchable/Touchable';
22
24
  import {AccessibilityProps} from './ViewAccessibility';
@@ -227,6 +229,6 @@ export interface ViewProps
227
229
  */
228
230
  experimental_layoutConformance?: 'strict' | 'classic' | undefined;
229
231
 
230
- readonly onFocus?: BubblingEventHandler<Event> | undefined;
231
- readonly onBlur?: BubblingEventHandler<Event> | undefined;
232
+ readonly onFocus?: BubblingEventHandler<NativeFocusEvent> | undefined;
233
+ readonly onBlur?: BubblingEventHandler<NativeBlurEvent> | undefined;
232
234
  }
@@ -16,8 +16,8 @@ const version: $ReadOnly<{
16
16
  }> = {
17
17
  major: 0,
18
18
  minor: 77,
19
- patch: 0,
20
- prerelease: '0rc1',
19
+ patch: 1,
20
+ prerelease: '0',
21
21
  };
22
22
 
23
23
  module.exports = {version};
@@ -42,9 +42,8 @@ if (__DEV__) {
42
42
  if (!Platform.isTesting) {
43
43
  const HMRClient = require('../Utilities/HMRClient');
44
44
 
45
- if (global.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__) {
46
- HMRClient.unstable_notifyFuseboxConsoleEnabled();
47
- } else if (console._isPolyfilled) {
45
+ // TODO(T214991636): Remove legacy Metro log forwarding
46
+ if (console._isPolyfilled) {
48
47
  // We assume full control over the console and send JavaScript logs to Metro.
49
48
  [
50
49
  'trace',
@@ -477,7 +477,15 @@ static UIImage *RCTResizeImageIfNeeded(UIImage *image, CGSize size, CGFloat scal
477
477
 
478
478
  // Add missing png extension
479
479
  if (request.URL.fileURL && request.URL.pathExtension.length == 0) {
480
- mutableRequest.URL = [request.URL URLByAppendingPathExtension:@"png"];
480
+ // Check if there exists a file with that url on disk already
481
+ // This should fix issue https://github.com/facebook/react-native/issues/46870
482
+ if ([[NSFileManager defaultManager] fileExistsAtPath:request.URL.path]) {
483
+ mutableRequest.URL = request.URL;
484
+ } else {
485
+ // This is the default behavior in case there is no file on disk with no extension.
486
+ // We assume that the extension is `png`.
487
+ mutableRequest.URL = [request.URL URLByAppendingPathExtension:@"png"];
488
+ }
481
489
  }
482
490
  if (_redirectDelegate != nil) {
483
491
  mutableRequest.URL = [_redirectDelegate redirectAssetsURL:mutableRequest.URL];
@@ -10,8 +10,8 @@
10
10
 
11
11
  import SafeAreaView from '../../src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE';
12
12
  import View from '../Components/View/View';
13
- import Platform from '../Utilities/Platform';
14
13
  import StyleSheet from '../StyleSheet/StyleSheet';
14
+ import Platform from '../Utilities/Platform';
15
15
  import * as LogBoxData from './Data/LogBoxData';
16
16
  import LogBoxLog from './Data/LogBoxLog';
17
17
  import LogBoxLogNotification from './UI/LogBoxNotification';
@@ -12,11 +12,11 @@ import type {EdgeInsetsProp} from '../../StyleSheet/EdgeInsetsPropType';
12
12
  import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
13
13
  import type {PressEvent} from '../../Types/CoreEventTypes';
14
14
 
15
- import TouchableWithoutFeedback from '../../Components/Touchable/TouchableWithoutFeedback';
16
15
  import TouchableHighlight from '../../Components/Touchable/TouchableHighlight';
17
- import Platform from '../../Utilities/Platform';
16
+ import TouchableWithoutFeedback from '../../Components/Touchable/TouchableWithoutFeedback';
18
17
  import View from '../../Components/View/View';
19
18
  import StyleSheet from '../../StyleSheet/StyleSheet';
19
+ import Platform from '../../Utilities/Platform';
20
20
  import * as LogBoxStyle from './LogBoxStyle';
21
21
  import * as React from 'react';
22
22
 
@@ -9,8 +9,8 @@
9
9
  */
10
10
 
11
11
  import View from '../../Components/View/View';
12
- import Platform from '../../Utilities/Platform';
13
12
  import StyleSheet from '../../StyleSheet/StyleSheet';
13
+ import Platform from '../../Utilities/Platform';
14
14
  import * as LogBoxData from '../Data/LogBoxData';
15
15
  import LogBoxLog from '../Data/LogBoxLog';
16
16
  import LogBoxButton from './LogBoxButton';
@@ -439,7 +439,7 @@ export default class Pressability {
439
439
  _createEventHandlers(): EventHandlers {
440
440
  const tvPressEventHandlers = {
441
441
  onPressIn: (evt: any): void => {
442
- if (this._config.disabled === false) {
442
+ if (this._config.disabled === true) {
443
443
  return;
444
444
  }
445
445
 
@@ -460,7 +460,7 @@ export default class Pressability {
460
460
  }, delayLongPress + delayPressIn);
461
461
  },
462
462
  onPressOut: (evt: any): void => {
463
- if (this._config.disabled === false) {
463
+ if (this._config.disabled === true) {
464
464
  return;
465
465
  }
466
466
  this._cancelLongPressDelayTimeout();
@@ -480,7 +480,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
480
480
  _maxLength.integerValue - (NSInteger)backedTextInputView.attributedText.string.length + (NSInteger)range.length,
481
481
  0);
482
482
 
483
- if (text.length > _maxLength.integerValue) {
483
+ if (text.length > allowedLength) {
484
484
  // If we typed/pasted more than one character, limit the text inputted.
485
485
  if (text.length > 1) {
486
486
  if (allowedLength > 0) {
@@ -103,16 +103,11 @@ if (Platform.isTV) {
103
103
  ): {remove: () => void, ...} {
104
104
  _backPressSubscriptions.add(_handler);
105
105
  return {
106
- remove: () => BackHandler.removeEventListener(_eventName, _handler),
106
+ remove: (): void => {
107
+ _backPressSubscriptions.delete(_handler);
108
+ },
107
109
  };
108
110
  },
109
-
110
- removeEventListener: function (
111
- _eventName: BackPressEventName,
112
- _handler: () => ?boolean,
113
- ) {
114
- _backPressSubscriptions.delete(_handler);
115
- },
116
111
  };
117
112
  }
118
113
 
@@ -26,7 +26,6 @@ let hmrUnavailableReason: string | null = null;
26
26
  let currentCompileErrorMessage: string | null = null;
27
27
  let didConnect: boolean = false;
28
28
  let pendingLogs: Array<[LogLevel, $ReadOnlyArray<mixed>]> = [];
29
- let pendingFuseboxConsoleNotification = false;
30
29
 
31
30
  type LogLevel =
32
31
  | 'trace'
@@ -52,7 +51,6 @@ export type HMRClientNativeInterface = {|
52
51
  isEnabled: boolean,
53
52
  scheme?: string,
54
53
  ): void,
55
- unstable_notifyFuseboxConsoleEnabled(): void,
56
54
  |};
57
55
 
58
56
  /**
@@ -142,29 +140,6 @@ const HMRClient: HMRClientNativeInterface = {
142
140
  }
143
141
  },
144
142
 
145
- unstable_notifyFuseboxConsoleEnabled() {
146
- if (!hmrClient) {
147
- pendingFuseboxConsoleNotification = true;
148
- return;
149
- }
150
- hmrClient.send(
151
- JSON.stringify({
152
- type: 'log',
153
- level: 'info',
154
- data: [
155
- '\n' +
156
- '\u001B[7m' +
157
- ' \u001B[1m💡 JavaScript logs have moved!\u001B[22m They can now be ' +
158
- 'viewed in React Native DevTools. Tip: Type \u001B[1mj\u001B[22m in ' +
159
- 'the terminal to open (requires Google Chrome or Microsoft Edge).' +
160
- '\u001B[27m' +
161
- '\n',
162
- ],
163
- }),
164
- );
165
- pendingFuseboxConsoleNotification = false;
166
- },
167
-
168
143
  // Called once by the bridge on startup, even if Fast Refresh is off.
169
144
  // It creates the HMR client but doesn't actually set up the socket yet.
170
145
  setup(
@@ -341,9 +316,6 @@ function flushEarlyLogs(client: MetroHMRClient) {
341
316
  pendingLogs.forEach(([level, data]) => {
342
317
  HMRClient.log(level, data);
343
318
  });
344
- if (pendingFuseboxConsoleNotification) {
345
- HMRClient.unstable_notifyFuseboxConsoleEnabled();
346
- }
347
319
  } finally {
348
320
  pendingLogs.length = 0;
349
321
  }
@@ -25,7 +25,6 @@ const HMRClientProdShim: HMRClientNativeInterface = {
25
25
  disable() {},
26
26
  registerBundle() {},
27
27
  log() {},
28
- unstable_notifyFuseboxConsoleEnabled() {},
29
28
  };
30
29
 
31
30
  module.exports = HMRClientProdShim;
@@ -10,10 +10,10 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- import type {ElementRef, Ref} from 'react';
13
+ import type {ElementRef} from 'react';
14
14
 
15
15
  type Args = $ReadOnly<{|
16
- getForwardedRef: () => ?Ref<any>,
16
+ getForwardedRef: () => ?ElementRef<any>,
17
17
  setLocalRef: (ref: ElementRef<any>) => mixed,
18
18
  |}>;
19
19
 
@@ -529,17 +529,19 @@ RCT_ENUM_CONVERTER(
529
529
  }),
530
530
  NSNotFound,
531
531
  unsignedIntegerValue)
532
+ #endif
532
533
  RCT_ENUM_CONVERTER(
533
534
  UIModalPresentationStyle,
534
535
  (@{
535
536
  @"fullScreen" : @(UIModalPresentationFullScreen),
537
+ #if !TARGET_OS_TV
536
538
  @"pageSheet" : @(UIModalPresentationPageSheet),
537
539
  @"formSheet" : @(UIModalPresentationFormSheet),
540
+ #endif
538
541
  @"overFullScreen" : @(UIModalPresentationOverFullScreen),
539
542
  }),
540
543
  UIModalPresentationFullScreen,
541
544
  integerValue)
542
- #endif
543
545
 
544
546
  RCT_ENUM_CONVERTER(
545
547
  UIViewContentMode,
@@ -23,8 +23,8 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(77),
26
- RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"0rc1",
26
+ RCTVersionPatch: @(1),
27
+ RCTVersionPrerelease: @"0",
28
28
  };
29
29
  });
30
30
  return __rnVersion;