/** * 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 {CodegenTypes, HostComponent, ViewProps} from 'react-native'; import * as React from 'react'; import {codegenNativeCommands, codegenNativeComponent} from 'react-native'; type Event = $ReadOnly<{ values: $ReadOnlyArray, boolValues: $ReadOnlyArray, floats: $ReadOnlyArray, doubles: $ReadOnlyArray, yesNos: $ReadOnlyArray<'yep' | 'nope'>, strings: $ReadOnlyArray, latLons: $ReadOnlyArray<{lat: CodegenTypes.Double, lon: CodegenTypes.Double}>, multiArrays: $ReadOnlyArray<$ReadOnlyArray>, }>; type LegacyStyleEvent = $ReadOnly<{ string: string, }>; type NativeProps = $ReadOnly<{ ...ViewProps, opacity?: CodegenTypes.Float, values: $ReadOnlyArray, // Events onIntArrayChanged?: ?CodegenTypes.BubblingEventHandler, onLegacyStyleEvent?: ?CodegenTypes.BubblingEventHandler< LegacyStyleEvent, 'alternativeLegacyName', >, }>; export type MyNativeViewType = HostComponent; interface NativeCommands { +callNativeMethodToChangeBackgroundColor: ( viewRef: React.ElementRef, color: string, ) => void; +callNativeMethodToAddOverlays: ( viewRef: React.ElementRef, overlayColors: $ReadOnlyArray, ) => void; +callNativeMethodToRemoveOverlays: ( viewRef: React.ElementRef, ) => void; +fireLagacyStyleEvent: (viewRef: React.ElementRef) => void; } export const Commands: NativeCommands = codegenNativeCommands({ supportedCommands: [ 'callNativeMethodToChangeBackgroundColor', 'callNativeMethodToAddOverlays', 'callNativeMethodToRemoveOverlays', 'fireLagacyStyleEvent', ], }); export default (codegenNativeComponent( 'RNTMyNativeView', ): MyNativeViewType);