/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
v0.81.2
packages/react-native-test-library/src/SampleNativeComponent.js
59 строк
2 KB
Rubén Norte
Create specific module in RN to define the types for host instances and host components that ReactNativeTypes defines (#49601)
24 фев 2025, 16:32
24 фев 2025, 16:32
e630b2c
Код
Авторство
О чём код?
/** * 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<Int32>, boolValues: $ReadOnlyArray<boolean>, floats: $ReadOnlyArray<Float>, doubles: $ReadOnlyArray<Double>, yesNos: $ReadOnlyArray<'yep' | 'nope'>, strings: $ReadOnlyArray<string>, latLons: $ReadOnlyArray<{lat: Double, lon: Double}>, multiArrays: $ReadOnlyArray<$ReadOnlyArray<Int32>>, }>; type NativeProps = $ReadOnly<{ ...ViewProps, opacity?: Float, values: $ReadOnlyArray<Int32>, // Events onIntArrayChanged?: ?BubblingEventHandler<Event>, }>; export type NativeComponentType = HostComponent<NativeProps>; interface NativeCommands { +changeBackgroundColor: ( viewRef: React.ElementRef<NativeComponentType>, color: string, ) => void; } export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({ supportedCommands: ['changeBackgroundColor'], }); export default (codegenNativeComponent<NativeProps>( 'SampleNativeComponent', ): NativeComponentType);