/** * 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 'react-native'; import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes'; import type { BubblingEventHandler, Double, Float, Int32, } from 'react-native/Libraries/Types/CodegenTypes'; import * as React from 'react'; import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands'; import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; type Event = $ReadOnly<{ values: $ReadOnlyArray, boolValues: $ReadOnlyArray, floats: $ReadOnlyArray, doubles: $ReadOnlyArray, yesNos: $ReadOnlyArray<'yep' | 'nope'>, strings: $ReadOnlyArray, latLons: $ReadOnlyArray<{lat: Double, lon: Double}>, multiArrays: $ReadOnlyArray<$ReadOnlyArray>, }>; type NativeProps = $ReadOnly<{ ...ViewProps, opacity?: Float, values: $ReadOnlyArray, // Events onIntArrayChanged?: ?BubblingEventHandler, }>; export type NativeComponentType = HostComponent; interface NativeCommands { +changeBackgroundColor: ( viewRef: React.ElementRef, color: string, ) => void; } export const Commands: NativeCommands = codegenNativeCommands({ supportedCommands: ['changeBackgroundColor'], }); export default (codegenNativeComponent( 'SampleNativeComponent', ): NativeComponentType);