/** * 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>, }>; 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', ) as MyNativeViewType;