1*999ead72SEvan Baconimport React, { ComponentType, forwardRef } from 'react';
292f6de58SWill Schurman
3*999ead72SEvan Baconimport View from '../primitives/RNWView';
492f6de58SWill Schurmanimport { ViewProps } from '../primitives/View';
555058f92SEvan Bacon
6*999ead72SEvan Baconfunction createView(nativeProps: ViewProps & { __element: string }): ComponentType<ViewProps> {
7*999ead72SEvan Bacon  return forwardRef((props: ViewProps, ref) => {
8*999ead72SEvan Bacon    return <View {...nativeProps} {...props} ref={ref} />;
955058f92SEvan Bacon  }) as ComponentType<ViewProps>;
10*999ead72SEvan Bacon}
1155058f92SEvan Bacon
12*999ead72SEvan Baconexport const Table = createView({ __element: 'table' });
13*999ead72SEvan BaconTable.displayName = 'Table';
1455058f92SEvan Bacon
15*999ead72SEvan Baconexport const THead = createView({ __element: 'thead' });
16*999ead72SEvan BaconTHead.displayName = 'THead';
1755058f92SEvan Bacon
18*999ead72SEvan Baconexport const TBody = createView({ __element: 'tbody' });
19*999ead72SEvan BaconTBody.displayName = 'TBody';
2055058f92SEvan Bacon
21*999ead72SEvan Baconexport const TFoot = createView({ __element: 'tfoot' });
22*999ead72SEvan BaconTFoot.displayName = 'TFoot';
2355058f92SEvan Bacon
24*999ead72SEvan Baconexport const TH = createView({ __element: 'th' });
25*999ead72SEvan BaconTH.displayName = 'TH';
2655058f92SEvan Bacon
27*999ead72SEvan Baconexport const TR = createView({ __element: 'tr' });
28*999ead72SEvan BaconTR.displayName = 'TR';
2955058f92SEvan Bacon
30*999ead72SEvan Baconexport const TD = createView({ __element: 'td' });
31*999ead72SEvan BaconTD.displayName = 'TD';
3255058f92SEvan Bacon
33*999ead72SEvan Baconexport const Caption = createView({ __element: 'caption' });
34*999ead72SEvan BaconCaption.displayName = 'Caption';
35