@algolia/satellite 1.10.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,12 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.DataTable = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
12
  var _compact = _interopRequireDefault(require("lodash/compact"));
13
13
  var _get = _interopRequireDefault(require("lodash/get"));
14
+ var _react = require("react");
14
15
  var _Fields = require("../../../Fields");
15
16
  var _Satellite = require("../../../Satellite");
16
17
  var _satellitePrefixer = _interopRequireDefault(require("../../../styles/helpers/satellitePrefixer"));
@@ -82,6 +83,14 @@ var DataTable = exports.DataTable = function DataTable(_ref) {
82
83
  console.warn("You can only have one selected item at a time in single `selectMode`.");
83
84
  }
84
85
  }
86
+ var _useState = (0, _react.useState)(),
87
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
88
+ hoveredRowId = _useState2[0],
89
+ setHoveredRowId = _useState2[1];
90
+ (0, _react.useEffect)(function () {
91
+ // Reset hovered row when data changes to avoid inconsistent state
92
+ setHoveredRowId(undefined);
93
+ }, [data]);
85
94
  var computedColumns = (0, _compact["default"])([selectMode === "single" && {
86
95
  id: "_internal_singleSelect",
87
96
  accessor: "_internal_singleSelect",
@@ -156,12 +165,14 @@ var DataTable = exports.DataTable = function DataTable(_ref) {
156
165
  var rows = data.map(function (item, index) {
157
166
  var _ref4;
158
167
  var id = typeof getItemIdInternal === "string" ? String((0, _get["default"])(item, getItemIdInternal, DEFAULT_GET_ITEM_ID(item, index))) : getItemIdInternal(item, index);
168
+ var hovered = hoveredRowId === id;
159
169
  var sanitizedSelection = (_ref4 = selectMode === "single" ? selection === null || selection === void 0 ? void 0 : selection.slice(0, 1) : selectMode === "none" ? [] : selection) !== null && _ref4 !== void 0 ? _ref4 : [];
160
170
  var selected = sanitizedSelection.includes(id);
161
171
  var selectable = selectMode !== "none" && (!canSelectItem || canSelectItem(item, index));
162
172
  return {
163
173
  item: item,
164
174
  id: id,
175
+ hovered: hovered,
165
176
  selected: selected,
166
177
  selectable: selectable
167
178
  };
@@ -183,6 +194,7 @@ var DataTable = exports.DataTable = function DataTable(_ref) {
183
194
  return false;
184
195
  };
185
196
  var onRowHoverChange = function onRowHoverChange(row) {
197
+ setHoveredRowId(row === null || row === void 0 ? void 0 : row.id);
186
198
  onRowHoveredChanged === null || onRowHoveredChanged === void 0 || onRowHoveredChanged(row);
187
199
  };
188
200
  var onToggleSort = function onToggleSort(columnId, direction) {
@@ -9,6 +9,8 @@ export interface Row<Item> {
9
9
  item: Item;
10
10
  /** The row id */
11
11
  id: string;
12
+ /** Is the row hovered? */
13
+ hovered: boolean;
12
14
  /** Is the row selected? */
13
15
  selected: boolean;
14
16
  /** Can the row be selected? */
@@ -1,12 +1,13 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
3
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
6
6
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
7
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
8
  import compact from "lodash/compact";
9
9
  import get from "lodash/get";
10
+ import { useEffect, useState } from "react";
10
11
  import { Checkbox, RadioButton } from "../../../Fields";
11
12
  import { useLocale } from "../../../Satellite";
12
13
  import stl from "../../../styles/helpers/satellitePrefixer";
@@ -75,6 +76,14 @@ export var DataTable = function DataTable(_ref) {
75
76
  console.warn("You can only have one selected item at a time in single `selectMode`.");
76
77
  }
77
78
  }
79
+ var _useState = useState(),
80
+ _useState2 = _slicedToArray(_useState, 2),
81
+ hoveredRowId = _useState2[0],
82
+ setHoveredRowId = _useState2[1];
83
+ useEffect(function () {
84
+ // Reset hovered row when data changes to avoid inconsistent state
85
+ setHoveredRowId(undefined);
86
+ }, [data]);
78
87
  var computedColumns = compact([selectMode === "single" && {
79
88
  id: "_internal_singleSelect",
80
89
  accessor: "_internal_singleSelect",
@@ -149,12 +158,14 @@ export var DataTable = function DataTable(_ref) {
149
158
  var rows = data.map(function (item, index) {
150
159
  var _ref4;
151
160
  var id = typeof getItemIdInternal === "string" ? String(get(item, getItemIdInternal, DEFAULT_GET_ITEM_ID(item, index))) : getItemIdInternal(item, index);
161
+ var hovered = hoveredRowId === id;
152
162
  var sanitizedSelection = (_ref4 = selectMode === "single" ? selection === null || selection === void 0 ? void 0 : selection.slice(0, 1) : selectMode === "none" ? [] : selection) !== null && _ref4 !== void 0 ? _ref4 : [];
153
163
  var selected = sanitizedSelection.includes(id);
154
164
  var selectable = selectMode !== "none" && (!canSelectItem || canSelectItem(item, index));
155
165
  return {
156
166
  item: item,
157
167
  id: id,
168
+ hovered: hovered,
158
169
  selected: selected,
159
170
  selectable: selectable
160
171
  };
@@ -176,6 +187,7 @@ export var DataTable = function DataTable(_ref) {
176
187
  return false;
177
188
  };
178
189
  var onRowHoverChange = function onRowHoverChange(row) {
190
+ setHoveredRowId(row === null || row === void 0 ? void 0 : row.id);
179
191
  onRowHoveredChanged === null || onRowHoveredChanged === void 0 || onRowHoveredChanged(row);
180
192
  };
181
193
  var onToggleSort = function onToggleSort(columnId, direction) {
@@ -9,6 +9,8 @@ export interface Row<Item> {
9
9
  item: Item;
10
10
  /** The row id */
11
11
  id: string;
12
+ /** Is the row hovered? */
13
+ hovered: boolean;
12
14
  /** Is the row selected? */
13
15
  selected: boolean;
14
16
  /** Can the row be selected? */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@algolia/satellite",
3
- "version": "1.10.0",
3
+ "version": "1.10.1",
4
4
  "description": "Algolia design system React components",
5
5
  "sideEffects": false,
6
6
  "scripts": {