UNPKG

react-native-tvos

Version:
60 lines (52 loc) 2.07 kB
/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow strict-local * @format */ import type {HostComponent} from '../../../src/private/types/HostComponent'; import type {HostInstance} from '../../../src/private/types/HostInstance'; import * as NativeComponentRegistry from '../../NativeComponent/NativeComponentRegistry'; import codegenNativeCommands from '../../Utilities/codegenNativeCommands'; import {type ViewProps as Props} from './ViewPropTypes'; const ViewNativeComponent: HostComponent<Props> = NativeComponentRegistry.get<Props>('RCTView', () => ({ uiViewClassName: 'RCTView', })); interface NativeCommands { +focus: (viewRef: HostInstance) => void; +blur: (viewRef: HostInstance) => void; +hotspotUpdate: (viewRef: HostInstance, x: number, y: number) => void; +setPressed: (viewRef: HostInstance, pressed: boolean) => void; // Focus Guide API +setDestinations: ( viewRef: React.ElementRef<HostComponent<mixed>>, destinations: Array<number>, // Node handles are basically integers ) => void; +requestTVFocus: (viewRef: React.ElementRef<HostComponent<mixed>>) => void; } export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({ supportedCommands: [ 'focus', 'blur', 'hotspotUpdate', 'setPressed', 'setDestinations', 'requestTVFocus', ], }); /** * `ViewNativeComponent` is an internal React Native host component, and is * exported to provide lower-level access for libraries. * * @warning `<unstable_NativeView>` provides no semver guarantees and is not * intended to be used in app code. Please use * [`<View>`](https://reactnative.dev/docs/view) instead. */ // Additional note: Our long term plan is to reduce the overhead of the <Text> // and <View> wrappers so that we no longer have any reason to export these APIs. export default ViewNativeComponent; export type ViewNativeComponentType = HostComponent<Props>;