useHoverState.js 802 B

1234567891011121314151617181920
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useHoverState;
  7. var _context = require("@rc-component/context");
  8. var _TableContext = _interopRequireDefault(require("../context/TableContext"));
  9. /** Check if cell is in hover range */
  10. function inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {
  11. var cellEndRow = cellStartRow + cellRowSpan - 1;
  12. return cellStartRow <= endRow && cellEndRow >= startRow;
  13. }
  14. function useHoverState(rowIndex, rowSpan) {
  15. return (0, _context.useContext)(_TableContext.default, function (ctx) {
  16. var hovering = inHoverRange(rowIndex, rowSpan || 1, ctx.hoverStartRow, ctx.hoverEndRow);
  17. return [hovering, ctx.onHover];
  18. });
  19. }