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