@pingux/astro 1.12.0-alpha.4 → 1.13.0-alpha.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.
Files changed (26) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/lib/cjs/components/Breadcrumbs/Breadcrumbs.js +2 -1
  3. package/lib/cjs/components/IconButtonToggle/IconButtonToggle.js +78 -0
  4. package/lib/cjs/components/IconButtonToggle/IconButtonToggle.stories.js +76 -0
  5. package/lib/cjs/components/IconButtonToggle/IconButtonToggle.test.js +60 -0
  6. package/lib/cjs/components/IconButtonToggle/index.js +18 -0
  7. package/lib/cjs/hooks/index.js +18 -0
  8. package/lib/cjs/hooks/useComponentToggle/index.js +18 -0
  9. package/lib/cjs/hooks/useComponentToggle/useComponentToggle.js +70 -0
  10. package/lib/cjs/hooks/useComponentToggle/useComponentToggle.test.js +133 -0
  11. package/lib/cjs/index.js +72 -49
  12. package/lib/cjs/recipes/OneWayToBidirectionalArrow.stories.js +160 -0
  13. package/lib/cjs/styles/variants/buttons.js +8 -1
  14. package/lib/components/Breadcrumbs/Breadcrumbs.js +2 -1
  15. package/lib/components/IconButtonToggle/IconButtonToggle.js +59 -0
  16. package/lib/components/IconButtonToggle/IconButtonToggle.stories.js +40 -0
  17. package/lib/components/IconButtonToggle/IconButtonToggle.test.js +46 -0
  18. package/lib/components/IconButtonToggle/index.js +1 -0
  19. package/lib/hooks/index.js +2 -0
  20. package/lib/hooks/useComponentToggle/index.js +1 -0
  21. package/lib/hooks/useComponentToggle/useComponentToggle.js +55 -0
  22. package/lib/hooks/useComponentToggle/useComponentToggle.test.js +105 -0
  23. package/lib/index.js +2 -0
  24. package/lib/recipes/OneWayToBidirectionalArrow.stories.js +137 -0
  25. package/lib/styles/variants/buttons.js +8 -1
  26. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.12.0](https://gitlab.corp.pingidentity.com/ux/pingux/compare/@pingux/astro@1.11.0...@pingux/astro@1.12.0) (2022-05-11)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * [UIP-5384] Adjust the focus styles for text and link variant of button ([63de6fe](https://gitlab.corp.pingidentity.com/ux/pingux/commit/63de6fec3d3b2d6b1ae2b018434c29957aa74617))
12
+ * [UIP-5411] Stop Image src from being cached ([a83a84a](https://gitlab.corp.pingidentity.com/ux/pingux/commit/a83a84af94052e70ed0a814d44f166345618ae7a))
13
+
14
+
15
+ ### Features
16
+
17
+ * [UIP-5302] Template for New Nav and Header ([7cfe695](https://gitlab.corp.pingidentity.com/ux/pingux/commit/7cfe6955a4f0bcf0bdd545418f4985c33e7f2d62))
18
+
19
+
20
+
21
+
22
+
6
23
  # [1.11.0](https://gitlab.corp.pingidentity.com/ux/pingux/compare/@pingux/astro@1.10.0...@pingux/astro@1.11.0) (2022-05-05)
7
24
 
8
25
 
@@ -101,7 +101,8 @@ var Breadcrumbs = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
101
101
  ref: breadcrumbsRef,
102
102
  isRow: true,
103
103
  sx: {
104
- overflow: 'auto'
104
+ overflow: 'auto',
105
+ paddingInlineStart: 'unset'
105
106
  },
106
107
  as: "ol"
107
108
  }, (0, _utils.mergeProps)(wrapperProps, others)), (0, _isArray["default"])(filteredChildren) ? (0, _map["default"])(filteredChildren).call(filteredChildren, createBreadcrumb) : createBreadcrumb(children)));
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ exports["default"] = void 0;
12
+
13
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
+
15
+ var _react = _interopRequireDefault(require("react"));
16
+
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+
19
+ var _IconButton = _interopRequireDefault(require("../IconButton"));
20
+
21
+ var _Icon = _interopRequireDefault(require("../Icon"));
22
+
23
+ var _hooks = require("../../hooks");
24
+
25
+ var _react2 = require("@emotion/react");
26
+
27
+ var IconButtonToggle = function IconButtonToggle(props) {
28
+ var toggledIcon = props.toggledIcon,
29
+ defaultIcon = props.defaultIcon,
30
+ buttonProps = props.buttonProps,
31
+ iconProps = props.iconProps,
32
+ isToggled = props.isToggled,
33
+ onToggle = props.onToggle,
34
+ title = props.title;
35
+ var conditionalRenderProps = {
36
+ ComponentToRenderIfTrue: toggledIcon,
37
+ ComponentToRenderIfFalse: defaultIcon,
38
+ condition: isToggled,
39
+ onConditionChange: onToggle
40
+ };
41
+
42
+ var _useComponentToggle = (0, _hooks.useComponentToggle)(conditionalRenderProps),
43
+ handleConditionChange = _useComponentToggle.handleConditionChange,
44
+ RenderedComponent = _useComponentToggle.RenderedComponent;
45
+
46
+ return (0, _react2.jsx)(_IconButton["default"], (0, _extends2["default"])({
47
+ onPress: handleConditionChange
48
+ }, buttonProps, {
49
+ title: title
50
+ }), (0, _react2.jsx)(_Icon["default"], (0, _extends2["default"])({
51
+ icon: RenderedComponent
52
+ }, iconProps)));
53
+ };
54
+
55
+ IconButtonToggle.propTypes = {
56
+ /** Props object that is spread into the icon element. */
57
+ iconProps: _propTypes["default"].shape({}),
58
+
59
+ /** Props object that is spread into the button element. */
60
+ buttonProps: _propTypes["default"].shape({}),
61
+
62
+ /** The icon that will render by default. */
63
+ defaultIcon: _propTypes["default"].elementType.isRequired,
64
+
65
+ /** The icon that will render after toggling the icon. */
66
+ toggledIcon: _propTypes["default"].elementType.isRequired,
67
+
68
+ /** Whether or not the icon is toggled. (use only when controlled) */
69
+ isToggled: _propTypes["default"].bool,
70
+
71
+ /** Function that is passed into the IconButton within this component. */
72
+ onToggle: _propTypes["default"].func,
73
+
74
+ /** Content will be displayed in a tooltip on hover or focus. */
75
+ title: _propTypes["default"].string
76
+ };
77
+ var _default = IconButtonToggle;
78
+ exports["default"] = _default;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = exports.Default = exports.Controlled = void 0;
18
+
19
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
20
+
21
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
22
+
23
+ var _react = _interopRequireWildcard(require("react"));
24
+
25
+ var _EyeOutlineIcon = _interopRequireDefault(require("mdi-react/EyeOutlineIcon"));
26
+
27
+ var _EyeOffOutlineIcon = _interopRequireDefault(require("mdi-react/EyeOffOutlineIcon"));
28
+
29
+ var _ = _interopRequireDefault(require("."));
30
+
31
+ var _react2 = require("@emotion/react");
32
+
33
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
34
+
35
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
36
+
37
+ var _default = {
38
+ title: 'IconButtonToggle',
39
+ component: _["default"]
40
+ };
41
+ exports["default"] = _default;
42
+
43
+ var Default = function Default(args) {
44
+ return (0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, args, {
45
+ toggledIcon: _EyeOutlineIcon["default"],
46
+ defaultIcon: _EyeOffOutlineIcon["default"],
47
+ buttonProps: {
48
+ 'aria-label': 'eye icon'
49
+ }
50
+ }));
51
+ };
52
+
53
+ exports.Default = Default;
54
+
55
+ var Controlled = function Controlled(args) {
56
+ var _useState = (0, _react.useState)(false),
57
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
58
+ isToggled = _useState2[0],
59
+ onToggledChange = _useState2[1];
60
+
61
+ var handleToggleChange = function handleToggleChange() {
62
+ onToggledChange(!isToggled);
63
+ };
64
+
65
+ return (0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, args, {
66
+ toggledIcon: _EyeOutlineIcon["default"],
67
+ defaultIcon: _EyeOffOutlineIcon["default"],
68
+ onToggle: handleToggleChange,
69
+ isToggled: isToggled,
70
+ buttonProps: {
71
+ 'aria-label': 'eye icon'
72
+ }
73
+ }));
74
+ };
75
+
76
+ exports.Controlled = Controlled;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
6
+
7
+ var _react = _interopRequireDefault(require("react"));
8
+
9
+ var _EyeOutlineIcon = _interopRequireDefault(require("mdi-react/EyeOutlineIcon"));
10
+
11
+ var _EyeOffOutlineIcon = _interopRequireDefault(require("mdi-react/EyeOffOutlineIcon"));
12
+
13
+ var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
14
+
15
+ var _testWrapper = require("../../utils/testUtils/testWrapper");
16
+
17
+ var _ = _interopRequireDefault(require("."));
18
+
19
+ var _react2 = require("@emotion/react");
20
+
21
+ var iconTestId = 'test-icon';
22
+
23
+ var OnIcon = function OnIcon(props) {
24
+ return (0, _react2.jsx)(_EyeOutlineIcon["default"], (0, _extends2["default"])({
25
+ "data-testid": iconTestId
26
+ }, props));
27
+ };
28
+
29
+ var OffIcon = function OffIcon(props) {
30
+ return (0, _react2.jsx)(_EyeOffOutlineIcon["default"], (0, _extends2["default"])({
31
+ "data-testid": iconTestId
32
+ }, props));
33
+ };
34
+
35
+ var testId = 'test-button';
36
+ var defaultProps = {
37
+ buttonProps: {
38
+ 'data-testid': testId,
39
+ 'aria-label': 'Eye'
40
+ },
41
+ defaultIcon: OffIcon,
42
+ toggledIcon: OnIcon
43
+ };
44
+
45
+ var getComponent = function getComponent() {
46
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
47
+ return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, props)));
48
+ }; // Need to be added to each test file to test accessibility using axe.
49
+
50
+
51
+ (0, _testAxe["default"])(getComponent);
52
+ test('default icon button', function () {
53
+ getComponent();
54
+
55
+ var button = _testWrapper.screen.getByRole('button');
56
+
57
+ expect(button).toHaveAttribute('data-testid', testId);
58
+ expect(button).toBeInstanceOf(HTMLButtonElement);
59
+ expect(button).toBeInTheDocument();
60
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ _Object$defineProperty(exports, "default", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _IconButtonToggle["default"];
15
+ }
16
+ });
17
+
18
+ var _IconButtonToggle = _interopRequireDefault(require("./IconButtonToggle"));
@@ -22,6 +22,13 @@ _Object$defineProperty(exports, "useColumnStyles", {
22
22
  }
23
23
  });
24
24
 
25
+ _Object$defineProperty(exports, "useComponentToggle", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _useComponentToggle["default"];
29
+ }
30
+ });
31
+
25
32
  _Object$defineProperty(exports, "useDebounce", {
26
33
  enumerable: true,
27
34
  get: function get() {
@@ -78,6 +85,13 @@ _Object$defineProperty(exports, "useOverlayPanelState", {
78
85
  }
79
86
  });
80
87
 
88
+ _Object$defineProperty(exports, "useProgressiveState", {
89
+ enumerable: true,
90
+ get: function get() {
91
+ return _useProgressiveState["default"];
92
+ }
93
+ });
94
+
81
95
  _Object$defineProperty(exports, "usePropWarning", {
82
96
  enumerable: true,
83
97
  get: function get() {
@@ -122,6 +136,10 @@ var _useOverlayPanelState = _interopRequireDefault(require("./useOverlayPanelSta
122
136
 
123
137
  var _usePropWarning = _interopRequireDefault(require("./usePropWarning"));
124
138
 
139
+ var _useProgressiveState = _interopRequireDefault(require("./useProgressiveState"));
140
+
141
+ var _useComponentToggle = _interopRequireDefault(require("./useComponentToggle"));
142
+
125
143
  var _useNavBarPress = _interopRequireDefault(require("./useNavBarPress"));
126
144
 
127
145
  var _useRockerButton = _interopRequireDefault(require("./useRockerButton"));
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ _Object$defineProperty(exports, "default", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _useComponentToggle["default"];
15
+ }
16
+ });
17
+
18
+ var _useComponentToggle = _interopRequireDefault(require("./useComponentToggle"));
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ exports["default"] = void 0;
12
+
13
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
14
+
15
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
+
17
+ var _index = require("../index");
18
+
19
+ /**
20
+ * Returns one of two components that are supplied via props.
21
+ * A boolean value is used to determine which component to render.
22
+ * State can be handled by either props or within this hook if props are not provided.
23
+ * Also returns a function that inverts the boolean attribute, and calls a callback function.
24
+ * @param {Object} [props] Properties provided to the state
25
+ * @param {Boolean} [props.condition] Boolean that controls which component is returned.
26
+ * @param {Component} [props.ComponentToRenderIfTrue]
27
+ * Component that is returned when the condition is true.
28
+ * @param {Component} [props.ComponentToRenderIfFalse]
29
+ * Component that is returned when the condition is false.
30
+ * @param {Function} [props.onConditionChange]
31
+ * Callback function that is called, when the condition boolean changes, if it is provided .
32
+ * @returns {Object} `{ isOpen: Boolean, open: Function, close: Function, toggle: Function }`
33
+ * @returns {Object} `{ handleCondtionChange: Function, renderedComponent: Component, }`
34
+ */
35
+ var useComponentToggle = function useComponentToggle() {
36
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37
+ var ComponentToRenderIfTrue = props.ComponentToRenderIfTrue,
38
+ ComponentToRenderIfFalse = props.ComponentToRenderIfFalse,
39
+ condition = props.condition,
40
+ onConditionChange = props.onConditionChange;
41
+
42
+ var _useProgressiveState = (0, _index.useProgressiveState)(condition, function () {}),
43
+ _useProgressiveState2 = (0, _slicedToArray2["default"])(_useProgressiveState, 2),
44
+ isToggled = _useProgressiveState2[0],
45
+ setIsToggled = _useProgressiveState2[1];
46
+
47
+ var RenderedComponent = isToggled ? ComponentToRenderIfTrue : ComponentToRenderIfFalse;
48
+
49
+ var handleConditionChange = function handleConditionChange() {
50
+ setIsToggled(!isToggled);
51
+
52
+ if (onConditionChange) {
53
+ var _context;
54
+
55
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
56
+ args[_key] = arguments[_key];
57
+ }
58
+
59
+ onConditionChange.apply(void 0, (0, _concat["default"])(_context = [!isToggled]).call(_context, args));
60
+ }
61
+ };
62
+
63
+ return {
64
+ handleConditionChange: handleConditionChange,
65
+ RenderedComponent: RenderedComponent
66
+ };
67
+ };
68
+
69
+ var _default = useComponentToggle;
70
+ exports["default"] = _default;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
14
+
15
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
16
+
17
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
18
+
19
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
20
+
21
+ var _react = _interopRequireWildcard(require("react"));
22
+
23
+ var _reactHooks = require("@testing-library/react-hooks");
24
+
25
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
26
+
27
+ var _react2 = require("@testing-library/react");
28
+
29
+ var _useComponentToggle2 = _interopRequireDefault(require("./useComponentToggle"));
30
+
31
+ var _react3 = require("@emotion/react");
32
+
33
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
34
+
35
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
36
+
37
+ var callback = jest.fn();
38
+ var condition = false;
39
+ var defaultProps = {
40
+ condition: condition,
41
+ onConditionChange: callback,
42
+ ComponentToRenderIfTrue: 'true-string',
43
+ ComponentToRenderIfFalse: 'false-string'
44
+ };
45
+
46
+ var TestComponent = function TestComponent() {
47
+ var _useState = (0, _react.useState)(false),
48
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
49
+ thisCondition = _useState2[0],
50
+ setCondition = _useState2[1];
51
+
52
+ var conditionalRenderProps = {
53
+ condition: thisCondition,
54
+ onConditionChange: setCondition,
55
+ ComponentToRenderIfTrue: 'true-string',
56
+ ComponentToRenderIfFalse: 'false-string',
57
+ onConditionChangeProp: callback
58
+ };
59
+
60
+ var _useComponentToggle = (0, _useComponentToggle2["default"])(conditionalRenderProps),
61
+ handleConditionChange = _useComponentToggle.handleConditionChange,
62
+ RenderedComponent = _useComponentToggle.RenderedComponent;
63
+
64
+ return (0, _react3.jsx)("button", {
65
+ "data-testid": "test-div",
66
+ onClick: handleConditionChange,
67
+ onKeyDown: handleConditionChange
68
+ }, RenderedComponent);
69
+ };
70
+
71
+ var getComponent = function getComponent() {
72
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
73
+ return (0, _react2.render)((0, _react3.jsx)(TestComponent, (0, _extends2["default"])({}, props, defaultProps)));
74
+ };
75
+
76
+ test('default useField', function () {
77
+ (0, _reactHooks.renderHook)(function () {
78
+ return (0, _useComponentToggle2["default"])();
79
+ });
80
+ });
81
+ test('callback function should call, if provided', function () {
82
+ var _renderHook = (0, _reactHooks.renderHook)(function () {
83
+ return (0, _useComponentToggle2["default"])(defaultProps);
84
+ }),
85
+ result = _renderHook.result;
86
+
87
+ (0, _reactHooks.act)(function () {
88
+ return result.current.handleConditionChange();
89
+ });
90
+ expect(callback).toHaveBeenCalled();
91
+ });
92
+ test('expect hook to return correct data shape', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
93
+ var _renderHook2, result, _result$current, handleConditionChange, RenderedComponent;
94
+
95
+ return _regenerator["default"].wrap(function _callee$(_context) {
96
+ while (1) {
97
+ switch (_context.prev = _context.next) {
98
+ case 0:
99
+ _renderHook2 = (0, _reactHooks.renderHook)(function () {
100
+ return (0, _useComponentToggle2["default"])(defaultProps);
101
+ }), result = _renderHook2.result;
102
+ _result$current = result.current, handleConditionChange = _result$current.handleConditionChange, RenderedComponent = _result$current.RenderedComponent;
103
+ expect(handleConditionChange).toEqual(expect.any(Function));
104
+ expect(RenderedComponent).toEqual('false-string');
105
+
106
+ case 4:
107
+ case "end":
108
+ return _context.stop();
109
+ }
110
+ }
111
+ }, _callee);
112
+ })));
113
+ test('expect conditional toggling to work', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
114
+ var component;
115
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
116
+ while (1) {
117
+ switch (_context2.prev = _context2.next) {
118
+ case 0:
119
+ getComponent();
120
+ component = _react2.screen.getByTestId('test-div');
121
+ expect(component).toHaveTextContent('false-string');
122
+
123
+ _userEvent["default"].click(component);
124
+
125
+ expect(component).toHaveTextContent('true-string');
126
+
127
+ case 5:
128
+ case "end":
129
+ return _context2.stop();
130
+ }
131
+ }
132
+ }, _callee2);
133
+ })));