@nice-digital/global-nav 4.1.729 → 4.1.730-GN-169-Dropdown-open
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/README.md
CHANGED
|
@@ -42,6 +42,8 @@
|
|
|
42
42
|
- [Header.skipLinkId](#headerskiplinkid)
|
|
43
43
|
- [Header.onNavigating](#headeronnavigating)
|
|
44
44
|
- [Header.onResize](#headeronresize)
|
|
45
|
+
- [Header.onDropdownOpen](#headerondropdownopen)
|
|
46
|
+
- [Header.onDropdownClose](#headerondropdownclose)
|
|
45
47
|
- [Header.additionalSubMenuItems](#headeradditionalsubmenuitems)
|
|
46
48
|
- [Header.search](#headersearch)
|
|
47
49
|
- [Header.search.url](#headersearchurl)
|
|
@@ -408,6 +410,53 @@ var global_nav_config = {
|
|
|
408
410
|
};
|
|
409
411
|
```
|
|
410
412
|
|
|
413
|
+
###### Header.onDropdownOpen
|
|
414
|
+
|
|
415
|
+
- Type: `String`, `Function`
|
|
416
|
+
- Default: `null`
|
|
417
|
+
|
|
418
|
+
Pass an `onDropdownOpen` property to enable callback when dropdown is open.
|
|
419
|
+
Pass either a function, or the name of a function defined on `window`. E.g.:
|
|
420
|
+
|
|
421
|
+
```js
|
|
422
|
+
window.onDropdownOpenHandler = function () {
|
|
423
|
+
// Define your implementation here e.g.:
|
|
424
|
+
document.querySelector("body").classList.add("global-nav__dropdown--open");
|
|
425
|
+
};
|
|
426
|
+
|
|
427
|
+
var global_nav_config = {
|
|
428
|
+
header: {
|
|
429
|
+
onDropdownOpen: 'onDropdownOpenHandler',
|
|
430
|
+
},
|
|
431
|
+
};
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
###### Header.onDropdownClose
|
|
435
|
+
|
|
436
|
+
- Type: `String`, `Function`
|
|
437
|
+
- Default: `null`
|
|
438
|
+
|
|
439
|
+
Function parameters:
|
|
440
|
+
|
|
441
|
+
- `query` (`String`) the query term used in the search
|
|
442
|
+
|
|
443
|
+
Pass an `onDropdownClose` property to enable callback when dropdown is closed.
|
|
444
|
+
Pass either a function, or the name of a function defined on `window`. E.g.:
|
|
445
|
+
|
|
446
|
+
```js
|
|
447
|
+
window.onDropdownCloseHandler = function (e) {
|
|
448
|
+
// Define your implementation here e.g.:
|
|
449
|
+
document.querySelector("body").classList.remove("global-nav__dropdown--open")
|
|
450
|
+
|
|
451
|
+
};
|
|
452
|
+
|
|
453
|
+
var global_nav_config = {
|
|
454
|
+
header: {
|
|
455
|
+
onDropdownClose: 'onDropdownCloseHandler',
|
|
456
|
+
},
|
|
457
|
+
};
|
|
458
|
+
```
|
|
459
|
+
|
|
411
460
|
###### Header.additionalSubMenuItems
|
|
412
461
|
|
|
413
462
|
- Type: `null | Array`
|
|
@@ -165,7 +165,7 @@ function Account(props) {
|
|
|
165
165
|
"aria-labelledby": "my-account-button",
|
|
166
166
|
onKeyDown: handleKeyDown,
|
|
167
167
|
ref: myAccountMenu
|
|
168
|
-
},
|
|
168
|
+
}, accountsData.links && Object.keys(accountsData.links).map(function (text, i) {
|
|
169
169
|
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
170
170
|
key: i,
|
|
171
171
|
role: "presentation"
|
|
@@ -106,14 +106,10 @@
|
|
|
106
106
|
margin: 0;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
span,
|
|
110
109
|
a {
|
|
110
|
+
color: $nds-colour-link;
|
|
111
111
|
display: block;
|
|
112
112
|
padding: rem($nds-spacing-small $nds-spacing-medium);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
a {
|
|
116
|
-
color: $nds-colour-link;
|
|
117
113
|
text-decoration: none;
|
|
118
114
|
white-space: nowrap;
|
|
119
115
|
|
package/lib/Header/Header.js
CHANGED
|
@@ -103,12 +103,40 @@ var Header = /*#__PURE__*/function (_Component) {
|
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
+
_proto.dropdownToggleHandler = function dropdownToggleHandler(idOfOpenDropdown) {
|
|
107
|
+
// If we've got an onDropdownOpen or onDropdownClose prop call the onDropdownOpen or onDropdownClose callback based on idOfOpenDropdown.
|
|
108
|
+
var _this$props = this.props,
|
|
109
|
+
onDropdownOpen = _this$props.onDropdownOpen,
|
|
110
|
+
onDropdownClose = _this$props.onDropdownClose;
|
|
111
|
+
|
|
112
|
+
if (onDropdownOpen) {
|
|
113
|
+
var onDropdownOpenCallback = typeof onDropdownOpen === "function" ? onDropdownOpen : window[onDropdownOpen];
|
|
114
|
+
|
|
115
|
+
if (idOfOpenDropdown !== null && typeof onDropdownOpenCallback === "function") {
|
|
116
|
+
onDropdownOpenCallback();
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (onDropdownClose) {
|
|
122
|
+
var onDropdownCloseCallback = typeof onDropdownClose === "function" ? onDropdownClose : window[onDropdownClose];
|
|
123
|
+
|
|
124
|
+
if (idOfOpenDropdown == null && typeof onDropdownCloseCallback === "function") {
|
|
125
|
+
onDropdownCloseCallback();
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return false;
|
|
131
|
+
};
|
|
132
|
+
|
|
106
133
|
_proto.render = function render() {
|
|
107
134
|
var _this3 = this;
|
|
108
135
|
|
|
109
136
|
return this.props.enabled !== false && /*#__PURE__*/_react["default"].createElement(_HeaderContext.HeaderContextProvider, null, /*#__PURE__*/_react["default"].createElement(_HeaderContext.HeaderContext.Consumer, null, function (_ref) {
|
|
110
137
|
(0, _newArrowCheck2["default"])(this, _this3);
|
|
111
138
|
var idOfOpenDropdown = _ref.idOfOpenDropdown;
|
|
139
|
+
this.dropdownToggleHandler(idOfOpenDropdown);
|
|
112
140
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
113
141
|
id: "scrim",
|
|
114
142
|
className: idOfOpenDropdown !== null ? _HeaderModule["default"].scrim : undefined,
|
|
@@ -184,6 +212,8 @@ Header.propTypes = {
|
|
|
184
212
|
auth: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].object]),
|
|
185
213
|
onNavigating: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].string]),
|
|
186
214
|
onResize: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].string]),
|
|
215
|
+
onDropdownOpen: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].string]),
|
|
216
|
+
onDropdownClose: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].string]),
|
|
187
217
|
additionalSubMenuItems: _propTypes["default"].arrayOf(_propTypes["default"].object)
|
|
188
218
|
};
|
|
189
219
|
Header.defaultProps = {
|
package/package.json
CHANGED