@pingux/astro 1.13.0-alpha.0 → 1.13.0-alpha.3
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.
- package/lib/cjs/components/CopyText/CopyText.js +1 -2
- package/lib/cjs/components/IconButtonToggle/IconButtonToggle.js +78 -0
- package/lib/cjs/components/IconButtonToggle/IconButtonToggle.stories.js +76 -0
- package/lib/cjs/components/IconButtonToggle/IconButtonToggle.test.js +60 -0
- package/lib/cjs/components/IconButtonToggle/index.js +18 -0
- package/lib/cjs/components/TextField/TextField.stories.js +2 -1
- package/lib/cjs/hooks/index.js +18 -0
- package/lib/cjs/hooks/useComponentToggle/index.js +18 -0
- package/lib/cjs/hooks/useComponentToggle/useComponentToggle.js +70 -0
- package/lib/cjs/hooks/useComponentToggle/useComponentToggle.test.js +133 -0
- package/lib/cjs/index.js +72 -49
- package/lib/cjs/recipes/OneWayToBidirectionalArrow.stories.js +160 -0
- package/lib/cjs/styles/variants/boxes.js +5 -1
- package/lib/cjs/styles/variants/buttons.js +12 -4
- package/lib/components/CopyText/CopyText.js +1 -2
- package/lib/components/IconButtonToggle/IconButtonToggle.js +59 -0
- package/lib/components/IconButtonToggle/IconButtonToggle.stories.js +40 -0
- package/lib/components/IconButtonToggle/IconButtonToggle.test.js +46 -0
- package/lib/components/IconButtonToggle/index.js +1 -0
- package/lib/components/TextField/TextField.stories.js +2 -1
- package/lib/hooks/index.js +2 -0
- package/lib/hooks/useComponentToggle/index.js +1 -0
- package/lib/hooks/useComponentToggle/useComponentToggle.js +55 -0
- package/lib/hooks/useComponentToggle/useComponentToggle.test.js +105 -0
- package/lib/index.js +2 -0
- package/lib/recipes/OneWayToBidirectionalArrow.stories.js +137 -0
- package/lib/styles/variants/boxes.js +5 -1
- package/lib/styles/variants/buttons.js +12 -4
- package/package.json +1 -1
@@ -58,8 +58,7 @@ var TooltipWrapper = function TooltipWrapper(_ref) {
|
|
58
58
|
return (0, _react2.jsx)(_index.TooltipTrigger, (0, _extends2["default"])({
|
59
59
|
key: tooltip,
|
60
60
|
direction: "top",
|
61
|
-
isNotFlippable: true
|
62
|
-
offset: 5
|
61
|
+
isNotFlippable: true
|
63
62
|
}, others), children, (0, _react2.jsx)(_index.Tooltip, null, tooltip));
|
64
63
|
};
|
65
64
|
|
@@ -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"));
|
package/lib/cjs/hooks/index.js
CHANGED
@@ -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
|
+
})));
|