@decisiv/ui-components 2.0.1-alpha.163 → 2.0.1-alpha.164
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,GAAG,EAIH,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxD,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,GAAG,EAIH,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxD,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,IAAI,koJA+IT,CAAC;AAqBF,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1D,eAAe,IAAI,CAAC"}
|
|
@@ -62,10 +62,17 @@ var Tabs = (0, _react.forwardRef)(function (_ref, ref) {
|
|
|
62
62
|
renderHiddenTabsContent = _ref$renderHiddenTabs === void 0 ? true : _ref$renderHiddenTabs,
|
|
63
63
|
rest = _objectWithoutProperties(_ref, ["size", "children", "onChange", "selectedId", "defaultSelectedId", "renderHiddenTabsContent"]);
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
// This is a ref to store the first tab id. It is used to store the value if
|
|
66
|
+
// some state changes and the tab gets remounted.
|
|
67
|
+
var _useState = (0, _react.useState)(),
|
|
66
68
|
_useState2 = _slicedToArray(_useState, 2),
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
firstRegisteredId = _useState2[0],
|
|
70
|
+
setFirstRegisteredId = _useState2[1];
|
|
71
|
+
|
|
72
|
+
var _useState3 = (0, _react.useState)(new Map()),
|
|
73
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
74
|
+
registeredTabs = _useState4[0],
|
|
75
|
+
setRegisteredTabs = _useState4[1];
|
|
69
76
|
|
|
70
77
|
var enabledIds = (0, _react.useMemo)(function () {
|
|
71
78
|
return Array.from(registeredTabs).filter(function (_ref2) {
|
|
@@ -88,15 +95,18 @@ var Tabs = (0, _react.forwardRef)(function (_ref, ref) {
|
|
|
88
95
|
_useMemo2 = _slicedToArray(_useMemo, 1),
|
|
89
96
|
firstTabId = _useMemo2[0];
|
|
90
97
|
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
uncontrolledActiveId =
|
|
94
|
-
setUncontrolledActiveId =
|
|
98
|
+
var _useState5 = (0, _react.useState)(defaultSelectedId),
|
|
99
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
100
|
+
uncontrolledActiveId = _useState6[0],
|
|
101
|
+
setUncontrolledActiveId = _useState6[1];
|
|
95
102
|
|
|
96
103
|
var activeId = (0, _react.useMemo)(function () {
|
|
97
|
-
return selectedId || uncontrolledActiveId || firstTabId;
|
|
98
|
-
}, [selectedId, uncontrolledActiveId,
|
|
104
|
+
return selectedId || uncontrolledActiveId || firstRegisteredId || firstTabId;
|
|
105
|
+
}, [selectedId, uncontrolledActiveId, firstRegisteredId]);
|
|
99
106
|
var register = (0, _react.useCallback)(function (id, data) {
|
|
107
|
+
setFirstRegisteredId(function (oldState) {
|
|
108
|
+
return !oldState && !data.isDisabled ? id : undefined;
|
|
109
|
+
});
|
|
100
110
|
setRegisteredTabs(function (oldState) {
|
|
101
111
|
var newMap = new Map(oldState);
|
|
102
112
|
newMap.set(id, data);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _react =
|
|
3
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
4
4
|
|
|
5
5
|
var _react2 = require("@testing-library/react");
|
|
6
6
|
|
|
@@ -8,7 +8,17 @@ var _ = _interopRequireWildcard(require("."));
|
|
|
8
8
|
|
|
9
9
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
|
10
10
|
|
|
11
|
-
function
|
|
11
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
|
12
|
+
|
|
13
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
|
14
|
+
|
|
15
|
+
function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
16
|
+
|
|
17
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
+
|
|
19
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
20
|
+
|
|
21
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
12
22
|
|
|
13
23
|
var getVisibleTextContents = function getVisibleTextContents(container) {
|
|
14
24
|
var selectedButton = container.querySelector('[aria-selected="true"]');
|
|
@@ -339,4 +349,46 @@ describe('Tabs', function () {
|
|
|
339
349
|
|
|
340
350
|
expect(onClick).toBeCalled();
|
|
341
351
|
});
|
|
352
|
+
it('keeps selected tab when the tab gets re-rendered', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
353
|
+
var TestCase, _render14, container;
|
|
354
|
+
|
|
355
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
356
|
+
while (1) {
|
|
357
|
+
switch (_context.prev = _context.next) {
|
|
358
|
+
case 0:
|
|
359
|
+
TestCase = function TestCase() {
|
|
360
|
+
var _useState = (0, _react.useState)('Tab 1'),
|
|
361
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
362
|
+
title = _useState2[0],
|
|
363
|
+
setTitle = _useState2[1];
|
|
364
|
+
|
|
365
|
+
return _react.default.createElement(_react.default.StrictMode, null, _react.default.createElement("button", {
|
|
366
|
+
onClick: function onClick() {
|
|
367
|
+
return setTitle('Tab 1 - Updated');
|
|
368
|
+
},
|
|
369
|
+
type: "button"
|
|
370
|
+
}, "update title"), _react.default.createElement(_.default, {
|
|
371
|
+
renderHiddenTabsContent: false
|
|
372
|
+
}, _react.default.createElement(_.Tab, {
|
|
373
|
+
id: "1",
|
|
374
|
+
title: title
|
|
375
|
+
}, _react.default.createElement("div", null, "This is the first tab content."), _react.default.createElement("div", null, "This is the title", title)), _react.default.createElement(_.Tab, {
|
|
376
|
+
id: "2",
|
|
377
|
+
title: "Tab 2"
|
|
378
|
+
}, "This is the second tab content.")));
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
_render14 = (0, _react2.render)(_react.default.createElement(TestCase, null)), container = _render14.container;
|
|
382
|
+
|
|
383
|
+
_react2.fireEvent.click((0, _react2.getByText)(container, /update title/i));
|
|
384
|
+
|
|
385
|
+
expect((0, _react2.getByText)(container, /this is the first tab content/i)).toBeInTheDocument();
|
|
386
|
+
|
|
387
|
+
case 4:
|
|
388
|
+
case "end":
|
|
389
|
+
return _context.stop();
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}, _callee);
|
|
393
|
+
})));
|
|
342
394
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decisiv/ui-components",
|
|
3
|
-
"version": "2.0.1-alpha.
|
|
3
|
+
"version": "2.0.1-alpha.164+7cbb87f",
|
|
4
4
|
"description": "Decisiv's design system React components",
|
|
5
5
|
"author": "Decisiv UI Development Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
73
|
"private": false,
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "7cbb87f937aaf8d30f932d2efd8bd0713a3c0500"
|
|
75
75
|
}
|