import React, { useMemo, useState } from "react"; import { TouchableOpacity } from "react-native"; import { Link } from "../Link"; import { View } from "../View"; import styles from "./styles"; type TableRowProps = { children: React.ReactNode; clickHandler?: (rowData: any) => void; rowData: any; rowLinkProps?: (rowData: any) => Record; rowProps: any; }; const TableRow = ({ rowData, rowLinkProps, rowProps, clickHandler, children, }: TableRowProps) => { const { style, ...props } = rowProps; const [hover, setHover] = useState(false); const onMouseEnter = () => { if (!hover) { setHover(true); } }; const onMouseLeave = () => { if (hover) { setHover(false); } }; const linkProps = useMemo( () => (rowLinkProps ? rowLinkProps(rowData) : null), [rowData] ); const Row = ( {children} ); if (linkProps) { return {Row}; } if (clickHandler) { return ( // @ts-ignore { clickHandler(rowData); }} > {Row} ); } return Row; }; export default TableRow;