@jobber/components 4.22.2 → 4.22.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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Card = require('../Card-ece8c5a8.js');
5
+ var Card = require('../Card-4553732a.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('../style-inject.es-9d2f5f4e.js');
@@ -12,10 +12,11 @@ require('../Button-7698424c.js');
12
12
  require('react-router-dom');
13
13
  require('../Icon-405a216c.js');
14
14
  require('@jobber/design');
15
- require('../Menu-3e22db94.js');
15
+ require('../Menu-2b5fd0b2.js');
16
16
  require('uuid');
17
17
  require('framer-motion');
18
18
  require('@jobber/hooks/useOnKeyDown');
19
+ require('@jobber/hooks/useRefocusOnActivator');
19
20
 
20
21
 
21
22
 
@@ -5,7 +5,7 @@ var classnames = require('classnames');
5
5
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
6
6
  var Heading = require('./Heading-a1191b15.js');
7
7
  var Button = require('./Button-7698424c.js');
8
- var Menu = require('./Menu-3e22db94.js');
8
+ var Menu = require('./Menu-2b5fd0b2.js');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
11
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var Card = require('../Card-ece8c5a8.js');
6
+ var Card = require('../Card-4553732a.js');
7
7
  var Content = require('../Content-a6590328.js');
8
8
  var Emphasis = require('../Emphasis-76a10790.js');
9
9
  require('classnames');
@@ -14,10 +14,11 @@ require('../Button-7698424c.js');
14
14
  require('react-router-dom');
15
15
  require('../Icon-405a216c.js');
16
16
  require('@jobber/design');
17
- require('../Menu-3e22db94.js');
17
+ require('../Menu-2b5fd0b2.js');
18
18
  require('uuid');
19
19
  require('framer-motion');
20
20
  require('@jobber/hooks/useOnKeyDown');
21
+ require('@jobber/hooks/useRefocusOnActivator');
21
22
 
22
23
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
24
 
@@ -2,12 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Menu = require('../Menu-3e22db94.js');
5
+ var Menu = require('../Menu-2b5fd0b2.js');
6
6
  require('react');
7
7
  require('uuid');
8
8
  require('classnames');
9
9
  require('framer-motion');
10
10
  require('@jobber/hooks/useOnKeyDown');
11
+ require('@jobber/hooks/useRefocusOnActivator');
11
12
  require('../style-inject.es-9d2f5f4e.js');
12
13
  require('../Button-7698424c.js');
13
14
  require('react-router-dom');
@@ -5,6 +5,7 @@ var uuid = require('uuid');
5
5
  var classnames = require('classnames');
6
6
  var framerMotion = require('framer-motion');
7
7
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
8
+ var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
8
9
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
9
10
  var Button = require('./Button-7698424c.js');
10
11
  var Typography = require('./Typography-fd6f932a.js');
@@ -63,6 +64,7 @@ function Menu({ activator, items }) {
63
64
  setPosition(newPosition);
64
65
  }
65
66
  }, [visible, fullWidth]);
67
+ useRefocusOnActivator.useRefocusOnActivator(visible);
66
68
  if (!activator) {
67
69
  activator = (React__default["default"].createElement(Button.Button, { fullWidth: true, label: "More Actions", icon: "more", type: "secondary" }));
68
70
  }
@@ -70,7 +72,7 @@ function Menu({ activator, items }) {
70
72
  const wrapperClasses = classnames__default["default"](styles.wrapper, {
71
73
  [styles.fullWidth]: fullWidth,
72
74
  });
73
- return (React__default["default"].createElement("div", { className: wrapperClasses, ref: wrapperRef },
75
+ return (React__default["default"].createElement("div", { className: wrapperClasses, ref: wrapperRef, onClick: handleParentClick },
74
76
  React__default["default"].cloneElement(activator, {
75
77
  onClick: toggle(activator.props.onClick),
76
78
  id: buttonID,
@@ -106,6 +108,13 @@ function Menu({ activator, items }) {
106
108
  event.stopPropagation();
107
109
  key === "Escape" && hide();
108
110
  }
111
+ function handleParentClick(event) {
112
+ // Since the menu is being rendered within the same parent as the activator,
113
+ // we need to stop the click event from bubbling up. If the Menu component
114
+ // gets added within a parent that has a click handler, any click on the
115
+ // menu will trigger the parent's click handler.
116
+ event.stopPropagation();
117
+ }
109
118
  }
110
119
  function SectionHeader({ text }) {
111
120
  return (React__default["default"].createElement("div", { className: styles.sectionHeader, "aria-hidden": true },
@@ -114,8 +123,9 @@ function SectionHeader({ text }) {
114
123
  function Action({ label, sectionLabel, icon, onClick, shouldFocus = false, }) {
115
124
  const actionButtonRef = React.useRef();
116
125
  React.useEffect(() => {
117
- if (actionButtonRef.current && shouldFocus) {
118
- actionButtonRef.current.focus();
126
+ if (shouldFocus) {
127
+ // Focus on the next tick to allow useRefocusOnActivator to initialize
128
+ setTimeout(() => { var _a; return (_a = actionButtonRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, 0);
119
129
  }
120
130
  }, [shouldFocus]);
121
131
  return (React__default["default"].createElement("button", { role: "menuitem", type: "button", className: styles.action, key: label, onClick: onClick, ref: actionButtonRef },
@@ -11,7 +11,7 @@ var Text = require('../Text-e7ed0974.js');
11
11
  var Content = require('../Content-a6590328.js');
12
12
  var Markdown = require('../Markdown-53a0bfda.js');
13
13
  var Button = require('../Button-7698424c.js');
14
- var Menu = require('../Menu-3e22db94.js');
14
+ var Menu = require('../Menu-2b5fd0b2.js');
15
15
  var Emphasis = require('../Emphasis-76a10790.js');
16
16
  require('../Typography-fd6f932a.js');
17
17
  require('react-markdown');
@@ -21,6 +21,7 @@ require('@jobber/design');
21
21
  require('uuid');
22
22
  require('framer-motion');
23
23
  require('@jobber/hooks/useOnKeyDown');
24
+ require('@jobber/hooks/useRefocusOnActivator');
24
25
 
25
26
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
27
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "4.22.2",
3
+ "version": "4.22.3",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -83,5 +83,5 @@
83
83
  "> 1%",
84
84
  "IE 10"
85
85
  ],
86
- "gitHead": "2d2166db41ceeadc0f243f08046cddeb6a9ad3c3"
86
+ "gitHead": "9fa73829abb4c32fa459301f20a018e4918e781a"
87
87
  }