@jobber/components 4.45.4 → 4.45.6-fix-data-l.0
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/dist/DataList/index.js +19 -4
- package/package.json +3 -3
package/dist/DataList/index.js
CHANGED
|
@@ -22,7 +22,6 @@ var useFocusTrap = require('@jobber/hooks/useFocusTrap');
|
|
|
22
22
|
var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
|
|
23
23
|
var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
|
|
24
24
|
var ReactDOM = require('react-dom');
|
|
25
|
-
var foundation = require('@jobber/design/foundation');
|
|
26
25
|
var Checkbox = require('../Checkbox-eac63b7f.js');
|
|
27
26
|
var reactRouterDom = require('react-router-dom');
|
|
28
27
|
var AnimatedSwitcher = require('../AnimatedSwitcher-d1e1ddcf.js');
|
|
@@ -394,9 +393,14 @@ function DataListActionsMenu({ visible = false, position, onRequestClose, childr
|
|
|
394
393
|
useRefocusOnActivator.useRefocusOnActivator(visible);
|
|
395
394
|
const focusTrapRef = useFocusTrap.useFocusTrap(visible);
|
|
396
395
|
useOnKeyDown.useOnKeyDown(onRequestClose, "Escape");
|
|
397
|
-
return ReactDOM.createPortal(React__default["default"].createElement(framerMotion.AnimatePresence, null, visible && (React__default["default"].createElement("div", { ref: focusTrapRef },
|
|
396
|
+
return ReactDOM.createPortal(React__default["default"].createElement(framerMotion.AnimatePresence, null, visible && (React__default["default"].createElement("div", { ref: focusTrapRef, onClick: handleClick },
|
|
398
397
|
React__default["default"].createElement(framerMotion.motion.div, { role: "menu", ref: setRef, variants: variants$1, initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: TRANSITION_DELAY_IN_SECONDS }, className: styles$6.menu, style: getPositionCssVars(), onClick: onRequestClose }, children),
|
|
399
398
|
React__default["default"].createElement("button", { className: styles$6.overlay, onClick: onRequestClose, "aria-label": "Close menu" })))), document.body);
|
|
399
|
+
function handleClick(event) {
|
|
400
|
+
// Prevent menu from firing the parent's onClick event when it is nested
|
|
401
|
+
// within a clickable list item
|
|
402
|
+
event.stopPropagation();
|
|
403
|
+
}
|
|
400
404
|
function getPositionCssVars() {
|
|
401
405
|
const { posX, posY } = getPosition();
|
|
402
406
|
return {
|
|
@@ -410,7 +414,7 @@ function DataListActionsMenu({ visible = false, position, onRequestClose, childr
|
|
|
410
414
|
const { x, y } = position;
|
|
411
415
|
const xIsOffScreen = x + width > window.innerWidth;
|
|
412
416
|
const yIsOffScreen = y + height > window.innerHeight;
|
|
413
|
-
const xOffSet = x + width - window.innerWidth +
|
|
417
|
+
const xOffSet = x + width - window.innerWidth + design.tokens["space-base"];
|
|
414
418
|
const yOffSet = y + height - window.innerHeight;
|
|
415
419
|
const newPosX = Math.floor(xIsOffScreen ? x - xOffSet : x);
|
|
416
420
|
const newPosY = Math.floor(yIsOffScreen ? y - yOffSet : y);
|
|
@@ -428,6 +432,9 @@ function DataListItemActionsOverflow({ actions, }) {
|
|
|
428
432
|
React__default["default"].createElement(Button.Button, { icon: "more", ariaLabel: "More actions", type: "secondary", variation: "subtle", onClick: handleMoreClick })),
|
|
429
433
|
React__default["default"].createElement(DataListActionsMenu, { visible: showMenu, position: menuPosition, onRequestClose: handleClose }, actions)));
|
|
430
434
|
function handleMoreClick(event) {
|
|
435
|
+
// Prevent firing the parent's onClick event when it is nested
|
|
436
|
+
// within a clickable list item
|
|
437
|
+
event.stopPropagation();
|
|
431
438
|
setShowMenu(true);
|
|
432
439
|
const rect = event.currentTarget.getBoundingClientRect();
|
|
433
440
|
const posX = rect.x;
|
|
@@ -520,7 +527,15 @@ function DataListItemClickableInternal({ onClick, url, to, children, }) {
|
|
|
520
527
|
return (React__default["default"].createElement("a", { className: styles$e.listItemClickable, href: href, onClick: handleClick }, children));
|
|
521
528
|
}
|
|
522
529
|
if (onClick) {
|
|
523
|
-
return (
|
|
530
|
+
return (
|
|
531
|
+
// A button can be nested within the list item. To prevent a button inside
|
|
532
|
+
// button error, we need to manually declare a div to be a button
|
|
533
|
+
React__default["default"].createElement("div", { role: "button", tabIndex: 0, className: styles$e.listItemClickable, onClick: handleClick, onKeyDown: e => {
|
|
534
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
535
|
+
e.preventDefault();
|
|
536
|
+
handleClick();
|
|
537
|
+
}
|
|
538
|
+
} }, children));
|
|
524
539
|
}
|
|
525
540
|
return React__default["default"].createElement(React__default["default"].Fragment, null, children);
|
|
526
541
|
function handleClick() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "4.45.
|
|
3
|
+
"version": "4.45.6-fix-data-l.0+ee94d52f",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@jobber/design": "^0.45.0",
|
|
23
|
-
"@jobber/formatters": "
|
|
23
|
+
"@jobber/formatters": "^0.2.2",
|
|
24
24
|
"@jobber/hooks": "^2.4.0",
|
|
25
25
|
"@popperjs/core": "^2.0.6",
|
|
26
26
|
"@std-proposal/temporal": "0.0.1",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"> 1%",
|
|
85
85
|
"IE 10"
|
|
86
86
|
],
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "ee94d52f9a0384925470c39abfd044c9dbc0eac3"
|
|
88
88
|
}
|