useHoverState.js 570 B

12345678910111213
  1. import { useContext } from '@rc-component/context';
  2. import TableContext from "../context/TableContext";
  3. /** Check if cell is in hover range */
  4. function inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {
  5. var cellEndRow = cellStartRow + cellRowSpan - 1;
  6. return cellStartRow <= endRow && cellEndRow >= startRow;
  7. }
  8. export default function useHoverState(rowIndex, rowSpan) {
  9. return useContext(TableContext, function (ctx) {
  10. var hovering = inHoverRange(rowIndex, rowSpan || 1, ctx.hoverStartRow, ctx.hoverEndRow);
  11. return [hovering, ctx.onHover];
  12. });
  13. }