Files
Sam Zhou 36a9b7eda7 Replace React.ElementProps in tests and examples (#54035)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54035

`React.ElementConfig` is often the better choice. See https://flow.org/en/docs/react/types/#toc-react-elementprops

Changelog: [Internal]

Reviewed By: panagosg7

Differential Revision: D83749631

fbshipit-source-id: 81b21c1a0dced5bc578d3a5752c303b57b467f7b
2025-10-02 13:48:56 -07:00

55 lines
1.2 KiB
JavaScript

/**
* 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 {RNTesterThemeContext} from '../../components/RNTesterTheme';
import React, {useContext} from 'react';
import {StyleSheet, TextInput} from 'react-native';
const ExampleTextInput: component(
ref?: React.RefSetter<null | React.ElementRef<typeof TextInput>>,
...props: Omit<React.ElementConfig<typeof TextInput>, 'ref'>
) = ({
ref,
...props
}: {
ref?: React.RefSetter<null | React.ElementRef<typeof TextInput>>,
...React.ElementConfig<typeof TextInput>,
}) => {
const theme = useContext(RNTesterThemeContext);
return (
<TextInput
ref={ref}
{...props}
style={[
{
backgroundColor: theme.SecondaryGroupedBackgroundColor,
borderColor: theme.QuaternaryLabelColor,
color: theme.LabelColor,
},
styles.input,
props.style,
]}
/>
);
};
const styles = StyleSheet.create({
input: {
borderWidth: 1,
flexGrow: 1,
flexShrink: 1,
fontSize: 13,
padding: 4,
},
});
export default ExampleTextInput;