Files
react-native/packages/rn-tester/js/examples/TextInput/ExampleTextInput.js
T
Sam Zhou e4368154a5 Turn on react.ref_as_prop=experimental.store_ref_in_props
Summary: Changelog: [Internal]

Reviewed By: marcoww6

Differential Revision: D82932016

fbshipit-source-id: a391bdc06eef60d3054b8440c4ccfbaf62bc931a
2025-09-22 14:46:56 -07:00

60 lines
1.3 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';
type LooseOmit<O: interface {}, K: $Keys<$FlowFixMe>> = Pick<
O,
Exclude<$Keys<O>, K>,
>;
const ExampleTextInput: component(
ref?: React.RefSetter<null | React.ElementRef<typeof TextInput>>,
...props: LooseOmit<React.ElementProps<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;