@lendi/navbar 7.30.0 → 7.31.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.
- package/dist/navbar.cjs.dev.js +23 -11
- package/dist/navbar.cjs.prod.js +11 -12
- package/dist/navbar.esm.js +23 -11
- package/package.json +2 -2
package/dist/navbar.cjs.dev.js
CHANGED
|
@@ -2983,23 +2983,33 @@ var NavDropdown = _ref2 => {
|
|
|
2983
2983
|
props = _objectWithoutProperties(_ref2, _excluded$4);
|
|
2984
2984
|
var globalProps = utils$1.filterGlobalProps(props);
|
|
2985
2985
|
var dropdownRef = React.useRef(null);
|
|
2986
|
+
var dropdownGroupRef = React.useRef(null);
|
|
2986
2987
|
var [isOpen, setIsOpen] = React.useState(false);
|
|
2987
2988
|
var handleClick = event => {
|
|
2988
2989
|
setIsOpen(!isOpen);
|
|
2989
2990
|
onClick === null || onClick === void 0 || onClick(event, !isOpen);
|
|
2990
2991
|
};
|
|
2992
|
+
var pageClickEvent = event => {
|
|
2993
|
+
var target = event.target;
|
|
2994
|
+
|
|
2995
|
+
/**
|
|
2996
|
+
* When button clicked, global click event will be fired as well, but after the button click event.
|
|
2997
|
+
* So we need prevent global event fired when user click button.
|
|
2998
|
+
*
|
|
2999
|
+
* When the button click event fired, the icon will be changed. So event target will be the unmounted svg.
|
|
3000
|
+
* That unmounted svg will hack the contains logic. So we do mount check on line.67
|
|
3001
|
+
*/
|
|
3002
|
+
if (!target.isConnected) return;
|
|
3003
|
+
if (dropdownRef.current && dropdownGroupRef.current && !dropdownGroupRef.current.contains(target)) {
|
|
3004
|
+
setIsOpen(false);
|
|
3005
|
+
}
|
|
3006
|
+
};
|
|
3007
|
+
var escapeEvent = event => {
|
|
3008
|
+
if (event.key === 'Escape' && isOpen) {
|
|
3009
|
+
setIsOpen(!isOpen);
|
|
3010
|
+
}
|
|
3011
|
+
};
|
|
2991
3012
|
React.useEffect(() => {
|
|
2992
|
-
var pageClickEvent = event => {
|
|
2993
|
-
if (dropdownRef.current !== null && !dropdownRef.current.contains(event.target)) {
|
|
2994
|
-
setIsOpen(!isOpen);
|
|
2995
|
-
}
|
|
2996
|
-
};
|
|
2997
|
-
var escapeEvent = event => {
|
|
2998
|
-
if (event.key === 'Escape' && isOpen) {
|
|
2999
|
-
setIsOpen(!isOpen);
|
|
3000
|
-
}
|
|
3001
|
-
};
|
|
3002
|
-
|
|
3003
3013
|
// If the item is open listen for clicks or escape key
|
|
3004
3014
|
if (isOpen) {
|
|
3005
3015
|
window.addEventListener('click', pageClickEvent);
|
|
@@ -3009,6 +3019,7 @@ var NavDropdown = _ref2 => {
|
|
|
3009
3019
|
window.removeEventListener('click', pageClickEvent);
|
|
3010
3020
|
window.removeEventListener('keydown', escapeEvent);
|
|
3011
3021
|
};
|
|
3022
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3012
3023
|
}, [isOpen]);
|
|
3013
3024
|
return (
|
|
3014
3025
|
/*#__PURE__*/
|
|
@@ -3017,6 +3028,7 @@ var NavDropdown = _ref2 => {
|
|
|
3017
3028
|
style: {
|
|
3018
3029
|
position: 'relative'
|
|
3019
3030
|
},
|
|
3031
|
+
ref: dropdownGroupRef,
|
|
3020
3032
|
children: [/*#__PURE__*/jsxRuntime.jsx(NavButton, {
|
|
3021
3033
|
isOpen: isOpen,
|
|
3022
3034
|
onClick: e => handleClick(e),
|
package/dist/navbar.cjs.prod.js
CHANGED
|
@@ -1978,21 +1978,20 @@ var _templateObject$3, _templateObject2$1, _templateObject$2, _templateObject$1,
|
|
|
1978
1978
|
var {minWidth: minWidth} = _ref;
|
|
1979
1979
|
return minWidth && "min-width: ".concat(minWidth);
|
|
1980
1980
|
}), (() => styled.css([ "top:calc(100% + ", ");" ], utils$1.pxToRem(HeaderPaddingSmall))), (() => styled.css([ "", "" ], breakpoint.gte("md")(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral([ "\n top: calc(100% + ", ");\n " ])), utils$1.pxToRem(HeaderPaddingLarge))))), NavDropdown = _ref2 => {
|
|
1981
|
-
var {label: label, children: children, onClick: onClick, minDropdownWidth: minDropdownWidth, align: align = "left"} = _ref2, props = _objectWithoutProperties(_ref2, _excluded$4), globalProps = utils$1.filterGlobalProps(props), dropdownRef = React.useRef(null), [isOpen, setIsOpen] = React.useState(!1)
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
()
|
|
1990
|
-
|
|
1991
|
-
};
|
|
1992
|
-
}), [ isOpen ]), jsxRuntime.jsxs("div", _objectSpread2(_objectSpread2({}, globalProps), {}, {
|
|
1981
|
+
var {label: label, children: children, onClick: onClick, minDropdownWidth: minDropdownWidth, align: align = "left"} = _ref2, props = _objectWithoutProperties(_ref2, _excluded$4), globalProps = utils$1.filterGlobalProps(props), dropdownRef = React.useRef(null), dropdownGroupRef = React.useRef(null), [isOpen, setIsOpen] = React.useState(!1), pageClickEvent = event => {
|
|
1982
|
+
var target = event.target;
|
|
1983
|
+
target.isConnected && dropdownRef.current && dropdownGroupRef.current && !dropdownGroupRef.current.contains(target) && setIsOpen(!1);
|
|
1984
|
+
}, escapeEvent = event => {
|
|
1985
|
+
"Escape" === event.key && isOpen && setIsOpen(!isOpen);
|
|
1986
|
+
};
|
|
1987
|
+
return React.useEffect((() => (isOpen && (window.addEventListener("click", pageClickEvent),
|
|
1988
|
+
window.addEventListener("keydown", escapeEvent)), () => {
|
|
1989
|
+
window.removeEventListener("click", pageClickEvent), window.removeEventListener("keydown", escapeEvent);
|
|
1990
|
+
})), [ isOpen ]), jsxRuntime.jsxs("div", _objectSpread2(_objectSpread2({}, globalProps), {}, {
|
|
1993
1991
|
style: {
|
|
1994
1992
|
position: "relative"
|
|
1995
1993
|
},
|
|
1994
|
+
ref: dropdownGroupRef,
|
|
1996
1995
|
children: [ jsxRuntime.jsx(NavButton, {
|
|
1997
1996
|
isOpen: isOpen,
|
|
1998
1997
|
onClick: e => {
|
package/dist/navbar.esm.js
CHANGED
|
@@ -2950,23 +2950,33 @@ var NavDropdown = _ref2 => {
|
|
|
2950
2950
|
props = _objectWithoutProperties(_ref2, _excluded$4);
|
|
2951
2951
|
var globalProps = filterGlobalProps(props);
|
|
2952
2952
|
var dropdownRef = useRef(null);
|
|
2953
|
+
var dropdownGroupRef = useRef(null);
|
|
2953
2954
|
var [isOpen, setIsOpen] = useState(false);
|
|
2954
2955
|
var handleClick = event => {
|
|
2955
2956
|
setIsOpen(!isOpen);
|
|
2956
2957
|
onClick === null || onClick === void 0 || onClick(event, !isOpen);
|
|
2957
2958
|
};
|
|
2959
|
+
var pageClickEvent = event => {
|
|
2960
|
+
var target = event.target;
|
|
2961
|
+
|
|
2962
|
+
/**
|
|
2963
|
+
* When button clicked, global click event will be fired as well, but after the button click event.
|
|
2964
|
+
* So we need prevent global event fired when user click button.
|
|
2965
|
+
*
|
|
2966
|
+
* When the button click event fired, the icon will be changed. So event target will be the unmounted svg.
|
|
2967
|
+
* That unmounted svg will hack the contains logic. So we do mount check on line.67
|
|
2968
|
+
*/
|
|
2969
|
+
if (!target.isConnected) return;
|
|
2970
|
+
if (dropdownRef.current && dropdownGroupRef.current && !dropdownGroupRef.current.contains(target)) {
|
|
2971
|
+
setIsOpen(false);
|
|
2972
|
+
}
|
|
2973
|
+
};
|
|
2974
|
+
var escapeEvent = event => {
|
|
2975
|
+
if (event.key === 'Escape' && isOpen) {
|
|
2976
|
+
setIsOpen(!isOpen);
|
|
2977
|
+
}
|
|
2978
|
+
};
|
|
2958
2979
|
useEffect(() => {
|
|
2959
|
-
var pageClickEvent = event => {
|
|
2960
|
-
if (dropdownRef.current !== null && !dropdownRef.current.contains(event.target)) {
|
|
2961
|
-
setIsOpen(!isOpen);
|
|
2962
|
-
}
|
|
2963
|
-
};
|
|
2964
|
-
var escapeEvent = event => {
|
|
2965
|
-
if (event.key === 'Escape' && isOpen) {
|
|
2966
|
-
setIsOpen(!isOpen);
|
|
2967
|
-
}
|
|
2968
|
-
};
|
|
2969
|
-
|
|
2970
2980
|
// If the item is open listen for clicks or escape key
|
|
2971
2981
|
if (isOpen) {
|
|
2972
2982
|
window.addEventListener('click', pageClickEvent);
|
|
@@ -2976,6 +2986,7 @@ var NavDropdown = _ref2 => {
|
|
|
2976
2986
|
window.removeEventListener('click', pageClickEvent);
|
|
2977
2987
|
window.removeEventListener('keydown', escapeEvent);
|
|
2978
2988
|
};
|
|
2989
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2979
2990
|
}, [isOpen]);
|
|
2980
2991
|
return (
|
|
2981
2992
|
/*#__PURE__*/
|
|
@@ -2984,6 +2995,7 @@ var NavDropdown = _ref2 => {
|
|
|
2984
2995
|
style: {
|
|
2985
2996
|
position: 'relative'
|
|
2986
2997
|
},
|
|
2998
|
+
ref: dropdownGroupRef,
|
|
2987
2999
|
children: [/*#__PURE__*/jsx(NavButton, {
|
|
2988
3000
|
isOpen: isOpen,
|
|
2989
3001
|
onClick: e => handleClick(e),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lendi/navbar",
|
|
3
3
|
"access": "restricted",
|
|
4
|
-
"version": "7.
|
|
4
|
+
"version": "7.31.1",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"source": "src/index.tsx",
|
|
7
7
|
"main": "dist/navbar.cjs.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@lendi-ui/typography": "^5.13.11-beta.0",
|
|
41
41
|
"@lendi-ui/utils": "^6.0.2-beta.1",
|
|
42
42
|
"@lendi/analytics": "^4.6.0",
|
|
43
|
-
"@lendi/chat": "^1.
|
|
43
|
+
"@lendi/chat": "^1.13.0",
|
|
44
44
|
"@lendi/lala-utils": "^11.2.0",
|
|
45
45
|
"@lendi/launchdarkly": "^0.1.7",
|
|
46
46
|
"@lendi/lendigroup-leads-library": "^3.2.1",
|