import React, { memo, useState } from 'react' import { Row as RowProps } from '@tanstack/react-table' import { Button, chakra, Fade } from '@chakra-ui/react' import { ExpandIcon } from 'assets/icons' type Props = { // eslint-disable-next-line @typescript-eslint/no-explicit-any row: RowProps isSelected: boolean bottomElement?: React.MutableRefObject onExpandButtonClick: () => void } const Row = ({ row, bottomElement, onExpandButtonClick }: Props) => { const [isExpandButtonVisible, setIsExpandButtonVisible] = useState(false) const showExpandButton = () => setIsExpandButtonVisible(true) const hideExpandButton = () => setIsExpandButtonVisible(false) return ( { if (bottomElement && bottomElement.current?.dataset.rowid !== row.id) bottomElement.current = ref }} onMouseEnter={showExpandButton} onClick={showExpandButton} onMouseLeave={hideExpandButton} > {row.getVisibleCells().map((cell, cellIndex) => ( {cell.renderCell()} ))} ) } export default memo( Row, (prev, next) => prev.row.id === next.row.id && prev.isSelected === next.isSelected )