155058f92SEvan Baconimport React, { ComponentType, forwardRef } from 'react'; 255058f92SEvan Baconimport { StyleSheet } from 'react-native'; 3*92f6de58SWill Schurman 455058f92SEvan Baconimport { em } from '../css/units'; 5*92f6de58SWill Schurmanimport { TableText, TableTextProps } from '../primitives/Table'; 6*92f6de58SWill Schurmanimport Text, { TextProps } from '../primitives/Text'; 7*92f6de58SWill Schurmanimport View, { ViewProps } from '../primitives/View'; 855058f92SEvan Bacon 955058f92SEvan Baconexport const Table = forwardRef((props: ViewProps, ref) => { 1055058f92SEvan Bacon return <View {...props} ref={ref} />; 1155058f92SEvan Bacon}) as ComponentType<ViewProps>; 1255058f92SEvan Bacon 1355058f92SEvan Baconexport const THead = forwardRef((props: ViewProps, ref) => { 1455058f92SEvan Bacon return <View {...props} ref={ref} />; 1555058f92SEvan Bacon}) as ComponentType<ViewProps>; 1655058f92SEvan Bacon 1755058f92SEvan Baconexport const TBody = forwardRef((props: ViewProps, ref) => { 1855058f92SEvan Bacon return <View {...props} ref={ref} />; 1955058f92SEvan Bacon}) as ComponentType<ViewProps>; 2055058f92SEvan Bacon 2155058f92SEvan Baconexport const TFoot = forwardRef((props: ViewProps, ref) => { 2255058f92SEvan Bacon return <View {...props} ref={ref} />; 2355058f92SEvan Bacon}) as ComponentType<ViewProps>; 2455058f92SEvan Bacon 2555058f92SEvan Baconexport const TH = forwardRef((props: TableTextProps, ref: any) => { 2655058f92SEvan Bacon return <TableText {...props} style={[styles.th, props.style]} ref={ref} />; 2755058f92SEvan Bacon}) as ComponentType<TableTextProps>; 2855058f92SEvan Bacon 2955058f92SEvan Baconexport const TR = forwardRef((props: ViewProps, ref) => { 3055058f92SEvan Bacon return <View {...props} style={[styles.tr, props.style]} ref={ref} />; 3155058f92SEvan Bacon}) as ComponentType<ViewProps>; 3255058f92SEvan Bacon 3355058f92SEvan Baconexport const TD = forwardRef((props: TableTextProps, ref: any) => { 3455058f92SEvan Bacon return <TableText {...props} style={[styles.td, props.style]} ref={ref} />; 3555058f92SEvan Bacon}) as ComponentType<TableTextProps>; 3655058f92SEvan Bacon 3755058f92SEvan Baconexport const Caption = forwardRef((props: TextProps, ref: any) => { 3855058f92SEvan Bacon return <Text {...props} style={[styles.caption, props.style]} ref={ref} />; 3955058f92SEvan Bacon}) as ComponentType<TextProps>; 4055058f92SEvan Bacon 4155058f92SEvan Baconconst styles = StyleSheet.create({ 4255058f92SEvan Bacon caption: { 4355058f92SEvan Bacon textAlign: 'center', 4455058f92SEvan Bacon fontSize: em(1) as number, 4555058f92SEvan Bacon }, 4655058f92SEvan Bacon th: { 4755058f92SEvan Bacon textAlign: 'center', 4855058f92SEvan Bacon fontWeight: 'bold', 4955058f92SEvan Bacon flex: 1, 5055058f92SEvan Bacon fontSize: em(1) as number, 5155058f92SEvan Bacon }, 5255058f92SEvan Bacon tr: { 5355058f92SEvan Bacon flexDirection: 'row', 5455058f92SEvan Bacon }, 5555058f92SEvan Bacon td: { 5655058f92SEvan Bacon flex: 1, 5755058f92SEvan Bacon fontSize: em(1) as number, 5855058f92SEvan Bacon }, 5955058f92SEvan Bacon}); 60