import * as React from "react"; import { Text as NativeText, TextStyle, StyleProp, StyleSheet, } from "react-native"; import { DefaultTheme, ThemeContext } from "styled-components"; type Props = React.ComponentProps & { children?: React.ReactNode, style?: StyleProp; /** * @optional */ theme?: DefaultTheme; }; // @component-group Typography /** * Text component which follows styles from the theme. * * @extends Text props https://reactnative.dev/docs/text#props */ // eslint-disable-next-line @typescript-eslint/ban-types const Text: React.RefForwardingComponent<{}, Props> = ( { style, ...rest }: Props, ref ) => { const root = React.useRef(null); const theme = React.useContext(ThemeContext); React.useImperativeHandle(ref, () => ({ setNativeProps: (args: Record) => root.current?.setNativeProps(args), })); return ( ); }; const styles = StyleSheet.create({ text: { textAlign: "left", }, }); export default React.forwardRef(Text);