@razorpay/blade 12.91.0 → 12.92.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/build/lib/web/development/_virtual/cloneDeep.js +1 -1
- package/build/lib/web/development/_virtual/cloneDeep3.js +1 -1
- package/build/lib/web/development/components/ChatInput/ChatInput.web.js +17 -11
- package/build/lib/web/development/components/ChatInput/ChatInput.web.js.map +1 -1
- package/build/lib/web/development/components/ChatInput/useChatInput.js +12 -1
- package/build/lib/web/development/components/ChatInput/useChatInput.js.map +1 -1
- package/build/lib/web/development/components/ChatMessage/SelfMessageBubble.web.js +1 -1
- package/build/lib/web/development/components/ChatMessage/SelfMessageBubble.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +23 -15
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNav.web.js +143 -53
- package/build/lib/web/development/components/SideNav/SideNav.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js +33 -18
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
- package/build/lib/web/development/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
- package/build/lib/web/production/_virtual/flatten.js +1 -1
- package/build/lib/web/production/_virtual/flatten3.js +1 -1
- package/build/lib/web/production/components/ChatInput/ChatInput.web.js +17 -11
- package/build/lib/web/production/components/ChatInput/ChatInput.web.js.map +1 -1
- package/build/lib/web/production/components/ChatInput/useChatInput.js +12 -1
- package/build/lib/web/production/components/ChatInput/useChatInput.js.map +1 -1
- package/build/lib/web/production/components/ChatMessage/SelfMessageBubble.web.js +1 -1
- package/build/lib/web/production/components/ChatMessage/SelfMessageBubble.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +23 -15
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNav.web.js +143 -53
- package/build/lib/web/production/components/SideNav/SideNav.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js +33 -18
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/array/flatten.js +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
- package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
- package/build/types/components/index.d.ts +123 -74
- package/build/types/components/index.native.d.ts +79 -40
- package/package.json +1 -1
|
@@ -4,21 +4,21 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
4
4
|
import React__default from 'react';
|
|
5
5
|
import styled from 'styled-components';
|
|
6
6
|
import { SideNavContext } from './SideNavContext.js';
|
|
7
|
-
import { classes, COLLAPSED_L1_WIDTH,
|
|
8
|
-
import '
|
|
7
|
+
import { classes, COLLAPSED_L1_WIDTH, SIDE_NAV_EXPANDED_L1_WIDTH_BASE, SIDE_NAV_EXPANDED_L1_WIDTH_XL, TRANSITION_CLEANUP_DELAY, HOVER_AGAIN_DELAY, L1_EXIT_HOVER_DELAY, SKIP_NAV_ID } from './tokens.js';
|
|
8
|
+
import '../../tokens/global/index.js';
|
|
9
9
|
import '../../utils/index.js';
|
|
10
|
-
import '
|
|
11
|
-
import
|
|
10
|
+
import '../../utils/makeAnalyticsAttribute/index.js';
|
|
11
|
+
import '../../utils/metaAttribute/index.js';
|
|
12
12
|
import { useIsMobile } from '../../utils/useIsMobile.js';
|
|
13
|
+
import '../Box/BaseBox/index.js';
|
|
13
14
|
import '../Box/styledProps/index.js';
|
|
14
|
-
import '
|
|
15
|
-
import '
|
|
16
|
-
import '../../tokens/global/index.js';
|
|
15
|
+
import '../Drawer/index.js';
|
|
16
|
+
import { SkipNavLink, SkipNavContent } from '../SkipNav/SkipNav.web.js';
|
|
17
17
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
18
18
|
import { BaseBox } from '../Box/BaseBox/BaseBox.web.js';
|
|
19
19
|
import { makeMotionTime } from '../../utils/makeMotionTime/makeMotionTime.web.js';
|
|
20
|
-
import { makeSpace } from '../../utils/makeSpace/makeSpace.js';
|
|
21
20
|
import { makeSize } from '../../utils/makeSize/makeSize.js';
|
|
21
|
+
import { makeSpace } from '../../utils/makeSpace/makeSpace.js';
|
|
22
22
|
import { makeBorderSize } from '../../utils/makeBorderSize/makeBorderSize.js';
|
|
23
23
|
import { size } from '../../tokens/global/size.js';
|
|
24
24
|
import { Drawer } from '../Drawer/Drawer.web.js';
|
|
@@ -28,12 +28,12 @@ import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
|
|
|
28
28
|
import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
|
|
29
29
|
import { makeAnalyticsAttribute } from '../../utils/makeAnalyticsAttribute/makeAnalyticsAttribute.js';
|
|
30
30
|
|
|
31
|
-
var _excluded = ["children", "isOpen", "onDismiss", "onVisibleLevelChange", "banner", "testID"];
|
|
32
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
33
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
31
|
+
var _excluded = ["children", "isOpen", "onDismiss", "onVisibleLevelChange", "onExpandChange", "onExpandTransitionEnd", "banner", "backgroundColor", "testID", "isExpanded"];
|
|
34
32
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
35
33
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
36
34
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
35
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
36
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
37
37
|
var COLLAPSED = classes.COLLAPSED,
|
|
38
38
|
SHOW_WHEN_COLLAPSED = classes.SHOW_WHEN_COLLAPSED,
|
|
39
39
|
HIDE_WHEN_COLLAPSED = classes.HIDE_WHEN_COLLAPSED,
|
|
@@ -56,12 +56,7 @@ var StyledL1Menu = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
56
56
|
var easing = props.theme.motion.easing;
|
|
57
57
|
var l1Expand = "width ".concat(xmoderate, " ").concat(easing.entrance);
|
|
58
58
|
var l1Collapse = "width ".concat(quick, " ").concat(easing.exit);
|
|
59
|
-
|
|
60
|
-
width: '100%',
|
|
61
|
-
transition: l1Expand
|
|
62
|
-
}, "& > .".concat(L1_ITEM_WRAPPER), {
|
|
63
|
-
padding: makeSpace(props.theme.spacing[3])
|
|
64
|
-
}), ".".concat(SHOW_WHEN_COLLAPSED), {
|
|
59
|
+
var textVisibilityProps = props.$isSideNavExpandable ? {} : _defineProperty(_defineProperty({}, ".".concat(SHOW_WHEN_COLLAPSED), {
|
|
65
60
|
display: 'none'
|
|
66
61
|
}), "&.".concat(COLLAPSED), _defineProperty(_defineProperty(_defineProperty({
|
|
67
62
|
width: makeSize(COLLAPSED_L1_WIDTH),
|
|
@@ -73,10 +68,52 @@ var StyledL1Menu = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
73
68
|
}), "&:not(.".concat(TRANSITIONING, ") .").concat(SHOW_WHEN_COLLAPSED), {
|
|
74
69
|
display: 'initial'
|
|
75
70
|
}));
|
|
71
|
+
return _objectSpread(_defineProperty({
|
|
72
|
+
width: '100%',
|
|
73
|
+
// the overall sidenav expands and collapses in this case. No need transition here
|
|
74
|
+
transition: props.$isSideNavExpandable ? 'none' : l1Expand
|
|
75
|
+
}, "& > .".concat(L1_ITEM_WRAPPER), {
|
|
76
|
+
padding: makeSpace(props.theme.spacing[3])
|
|
77
|
+
}), textVisibilityProps);
|
|
78
|
+
});
|
|
79
|
+
var StyledSideNavContainer = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
80
|
+
displayName: "SideNavweb__StyledSideNavContainer",
|
|
81
|
+
componentId: "sc-1obm5ij-2"
|
|
82
|
+
})(function (props) {
|
|
83
|
+
var quick = makeMotionTime(props.theme.motion.duration.quick);
|
|
84
|
+
var xmoderate = makeMotionTime(props.theme.motion.duration.xmoderate);
|
|
85
|
+
var easing = props.theme.motion.easing;
|
|
86
|
+
var sideNavExpand = "width ".concat(xmoderate, " ").concat(easing.entrance);
|
|
87
|
+
var sideNavCollapse = "width ".concat(quick, " ").concat(easing.exit);
|
|
88
|
+
if (!props.$isSideNavExpandable) {
|
|
89
|
+
return {};
|
|
90
|
+
}
|
|
91
|
+
return _defineProperty(_defineProperty(_defineProperty({
|
|
92
|
+
transition: sideNavExpand
|
|
93
|
+
}, "&.".concat(COLLAPSED), _defineProperty(_defineProperty({
|
|
94
|
+
width: makeSize(COLLAPSED_L1_WIDTH),
|
|
95
|
+
transition: sideNavCollapse
|
|
96
|
+
}, "&:not(.".concat(TRANSITIONING, ") .").concat(HIDE_WHEN_COLLAPSED), {
|
|
97
|
+
opacity: '0',
|
|
98
|
+
pointerEvents: 'none',
|
|
99
|
+
transition: "opacity ".concat(quick, " ").concat(easing.exit)
|
|
100
|
+
}), "&:not(.".concat(TRANSITIONING, ") .").concat(SHOW_WHEN_COLLAPSED), {
|
|
101
|
+
opacity: '1',
|
|
102
|
+
pointerEvents: 'auto',
|
|
103
|
+
transition: "opacity ".concat(quick, " ").concat(easing.entrance)
|
|
104
|
+
})), ".".concat(SHOW_WHEN_COLLAPSED), {
|
|
105
|
+
opacity: '0',
|
|
106
|
+
pointerEvents: 'none',
|
|
107
|
+
transition: "opacity ".concat(quick, " ").concat(easing.exit)
|
|
108
|
+
}), ".".concat(HIDE_WHEN_COLLAPSED), {
|
|
109
|
+
opacity: '1',
|
|
110
|
+
pointerEvents: 'auto',
|
|
111
|
+
transition: "opacity ".concat(quick, " ").concat(easing.entrance)
|
|
112
|
+
});
|
|
76
113
|
});
|
|
77
114
|
var StyledL2PortalContainer = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
78
115
|
displayName: "SideNavweb__StyledL2PortalContainer",
|
|
79
|
-
componentId: "sc-1obm5ij-
|
|
116
|
+
componentId: "sc-1obm5ij-3"
|
|
80
117
|
})(function () {
|
|
81
118
|
return {
|
|
82
119
|
// This ensures that the portal node has 100% height when it has items
|
|
@@ -85,10 +122,10 @@ var StyledL2PortalContainer = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
85
122
|
}
|
|
86
123
|
};
|
|
87
124
|
});
|
|
88
|
-
var getL1MenuClassName = function getL1MenuClassName(
|
|
89
|
-
var isL1Collapsed =
|
|
90
|
-
isL1Hovered =
|
|
91
|
-
isTransitioning =
|
|
125
|
+
var getL1MenuClassName = function getL1MenuClassName(_ref4) {
|
|
126
|
+
var isL1Collapsed = _ref4.isL1Collapsed,
|
|
127
|
+
isL1Hovered = _ref4.isL1Hovered,
|
|
128
|
+
isTransitioning = _ref4.isTransitioning;
|
|
92
129
|
var isMenuCollapsed = isL1Collapsed && !isL1Hovered;
|
|
93
130
|
if (isMenuCollapsed) {
|
|
94
131
|
if (isTransitioning) {
|
|
@@ -100,7 +137,7 @@ var getL1MenuClassName = function getL1MenuClassName(_ref3) {
|
|
|
100
137
|
};
|
|
101
138
|
var BannerContainer = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
102
139
|
displayName: "SideNavweb__BannerContainer",
|
|
103
|
-
componentId: "sc-1obm5ij-
|
|
140
|
+
componentId: "sc-1obm5ij-4"
|
|
104
141
|
})(function (props) {
|
|
105
142
|
return {
|
|
106
143
|
'&:not(:empty)': {
|
|
@@ -129,18 +166,24 @@ var BannerContainer = /*#__PURE__*/styled(BaseBox).withConfig({
|
|
|
129
166
|
* SideNav requires handling active state with React Router, Checkout Usage with React Router v6 at - [SideNav Documentation](https://blade.razorpay.com/?path=/docs/components-sidenav--docs)
|
|
130
167
|
*
|
|
131
168
|
*/
|
|
132
|
-
var _SideNav = function _SideNav(
|
|
133
|
-
var children =
|
|
134
|
-
isOpen =
|
|
135
|
-
onDismiss =
|
|
136
|
-
onVisibleLevelChange =
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
169
|
+
var _SideNav = function _SideNav(_ref5, ref) {
|
|
170
|
+
var children = _ref5.children,
|
|
171
|
+
isOpen = _ref5.isOpen,
|
|
172
|
+
onDismiss = _ref5.onDismiss,
|
|
173
|
+
onVisibleLevelChange = _ref5.onVisibleLevelChange,
|
|
174
|
+
onExpandChange = _ref5.onExpandChange,
|
|
175
|
+
onExpandTransitionEnd = _ref5.onExpandTransitionEnd,
|
|
176
|
+
banner = _ref5.banner,
|
|
177
|
+
_ref5$backgroundColor = _ref5.backgroundColor,
|
|
178
|
+
backgroundColor = _ref5$backgroundColor === void 0 ? 'surface.background.gray.moderate' : _ref5$backgroundColor,
|
|
179
|
+
testID = _ref5.testID,
|
|
180
|
+
_isExpanded = _ref5.isExpanded,
|
|
181
|
+
rest = _objectWithoutProperties(_ref5, _excluded);
|
|
140
182
|
var l2PortalContainerRef = React__default.useRef(null);
|
|
141
183
|
var l1ContainerRef = React__default.useRef(null);
|
|
142
184
|
var timeoutIdsRef = React__default.useRef([]);
|
|
143
185
|
var mouseOverTimeoutRef = React__default.useRef();
|
|
186
|
+
var prevIsSideNavCollapsedRef = React__default.useRef();
|
|
144
187
|
var _React$useState = React__default.useState(false),
|
|
145
188
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
146
189
|
isL1Collapsed = _React$useState2[0],
|
|
@@ -166,6 +209,13 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
166
209
|
l2DrawerTitle = _React$useState10[0],
|
|
167
210
|
setL2DrawerTitle = _React$useState10[1];
|
|
168
211
|
var isMobile = useIsMobile();
|
|
212
|
+
var isSideNavCollapsed = _isExpanded === false;
|
|
213
|
+
var effectiveIsL1Collapsed = isMobile ? isMobileL2Open : isSideNavCollapsed || isL1Collapsed;
|
|
214
|
+
var effectiveIsL1Hovered = isSideNavCollapsed ? false : isL1Hovered;
|
|
215
|
+
var sideNavWidth = isSideNavCollapsed ? makeSize(COLLAPSED_L1_WIDTH) : {
|
|
216
|
+
base: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_BASE),
|
|
217
|
+
xl: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_XL)
|
|
218
|
+
};
|
|
169
219
|
var closeMobileNav = function closeMobileNav() {
|
|
170
220
|
if (isMobile) {
|
|
171
221
|
setIsMobileL2Open(false);
|
|
@@ -175,14 +225,18 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
175
225
|
});
|
|
176
226
|
}
|
|
177
227
|
};
|
|
178
|
-
var cleanupTransition = function
|
|
228
|
+
var cleanupTransition = React__default.useCallback(function () {
|
|
179
229
|
var clearTransitionTimeout = setTimeout(function () {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
230
|
+
setIsTransitioning(function (isCurrentlyTransitioning) {
|
|
231
|
+
return isCurrentlyTransitioning ? false : isCurrentlyTransitioning;
|
|
232
|
+
});
|
|
183
233
|
}, TRANSITION_CLEANUP_DELAY);
|
|
184
234
|
timeoutIdsRef.current.push(clearTransitionTimeout);
|
|
185
|
-
};
|
|
235
|
+
}, []);
|
|
236
|
+
var startL1Transition = React__default.useCallback(function () {
|
|
237
|
+
setIsTransitioning(true);
|
|
238
|
+
cleanupTransition();
|
|
239
|
+
}, [cleanupTransition]);
|
|
186
240
|
var collapseL1 = function collapseL1(title) {
|
|
187
241
|
if (isMobile) {
|
|
188
242
|
setL2DrawerTitle(title);
|
|
@@ -207,6 +261,10 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
207
261
|
});
|
|
208
262
|
return;
|
|
209
263
|
}
|
|
264
|
+
if (isSideNavCollapsed) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
|
|
210
268
|
// Ensures that if Normal L1 item is clicked, the L1 stays expanded
|
|
211
269
|
if (isL1Collapsed) {
|
|
212
270
|
setIsL1Collapsed(false);
|
|
@@ -231,8 +289,7 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
231
289
|
|
|
232
290
|
// `args.isFirstRender` checks if the item that triggered this change, triggered it during first render or during subsequent change
|
|
233
291
|
if (!args.isFirstRender) {
|
|
234
|
-
|
|
235
|
-
cleanupTransition();
|
|
292
|
+
startL1Transition();
|
|
236
293
|
setIsL1Hovered(false);
|
|
237
294
|
setIsHoverAgainEnabled(false);
|
|
238
295
|
// For some delay, we disable hover to expand behaviour to avoid buggy flicker when cursor is on L1 while its trying to close
|
|
@@ -252,13 +309,14 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
252
309
|
l2PortalContainerRef: l2PortalContainerRef,
|
|
253
310
|
onLinkActiveChange: onLinkActiveChange,
|
|
254
311
|
closeMobileNav: closeMobileNav,
|
|
255
|
-
isL1Collapsed:
|
|
312
|
+
isL1Collapsed: effectiveIsL1Collapsed,
|
|
256
313
|
setIsL1Collapsed: setIsL1Collapsed,
|
|
257
|
-
isL1Hovered:
|
|
314
|
+
isL1Hovered: effectiveIsL1Hovered,
|
|
315
|
+
isSideNavCollapsed: isSideNavCollapsed
|
|
258
316
|
};
|
|
259
317
|
},
|
|
260
318
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
261
|
-
[
|
|
319
|
+
[effectiveIsL1Collapsed, effectiveIsL1Hovered, isSideNavCollapsed, isMobile]);
|
|
262
320
|
React__default.useEffect(function () {
|
|
263
321
|
return function () {
|
|
264
322
|
var _iterator = _createForOfIteratorHelper(timeoutIdsRef.current),
|
|
@@ -276,6 +334,24 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
276
334
|
timeoutIdsRef.current = [];
|
|
277
335
|
};
|
|
278
336
|
}, []);
|
|
337
|
+
React__default.useEffect(function () {
|
|
338
|
+
if (!isMobile && isSideNavCollapsed && isL1Hovered) {
|
|
339
|
+
setIsL1Hovered(false);
|
|
340
|
+
}
|
|
341
|
+
}, [isMobile, isSideNavCollapsed, isL1Hovered]);
|
|
342
|
+
React__default.useEffect(function () {
|
|
343
|
+
var prevIsSideNavCollapsed = prevIsSideNavCollapsedRef.current;
|
|
344
|
+
prevIsSideNavCollapsedRef.current = isSideNavCollapsed;
|
|
345
|
+
if (isMobile || prevIsSideNavCollapsed === undefined) {
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
if (prevIsSideNavCollapsed !== isSideNavCollapsed) {
|
|
349
|
+
startL1Transition();
|
|
350
|
+
onExpandChange === null || onExpandChange === void 0 || onExpandChange({
|
|
351
|
+
isExpanded: !isSideNavCollapsed
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}, [isMobile, isSideNavCollapsed, onExpandChange, startL1Transition]);
|
|
279
355
|
return /*#__PURE__*/jsx(SideNavContext.Provider, {
|
|
280
356
|
value: contextValue,
|
|
281
357
|
children: isMobile && onDismiss ? /*#__PURE__*/jsxs(Fragment, {
|
|
@@ -312,10 +388,12 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
312
388
|
})
|
|
313
389
|
})]
|
|
314
390
|
})]
|
|
315
|
-
}) : /*#__PURE__*/jsxs(
|
|
391
|
+
}) : /*#__PURE__*/jsxs(StyledSideNavContainer, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
392
|
+
$isSideNavExpandable: typeof _isExpanded !== 'undefined',
|
|
316
393
|
ref: ref,
|
|
394
|
+
className: isSideNavCollapsed ? COLLAPSED : '',
|
|
317
395
|
position: "fixed",
|
|
318
|
-
backgroundColor:
|
|
396
|
+
backgroundColor: backgroundColor,
|
|
319
397
|
height: "100%",
|
|
320
398
|
top: "spacing.0",
|
|
321
399
|
left: "spacing.0",
|
|
@@ -324,15 +402,20 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
324
402
|
m: 'flex'
|
|
325
403
|
},
|
|
326
404
|
flexDirection: "column",
|
|
327
|
-
width:
|
|
328
|
-
base: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_BASE),
|
|
329
|
-
xl: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_XL)
|
|
330
|
-
},
|
|
405
|
+
width: sideNavWidth,
|
|
331
406
|
as: "nav"
|
|
332
407
|
}, metaAttribute({
|
|
333
408
|
name: MetaConstants.SideNav,
|
|
334
409
|
testID: testID
|
|
335
410
|
})), getStyledProps(rest)), makeAnalyticsAttribute(rest)), {}, {
|
|
411
|
+
onTransitionEnd: function onTransitionEnd(e) {
|
|
412
|
+
if (e.target !== e.currentTarget || e.propertyName !== 'width' || isMobile) {
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
415
|
+
onExpandTransitionEnd === null || onExpandTransitionEnd === void 0 || onExpandTransitionEnd({
|
|
416
|
+
isExpanded: !isSideNavCollapsed
|
|
417
|
+
});
|
|
418
|
+
},
|
|
336
419
|
children: [banner ? /*#__PURE__*/jsx(BannerContainer, {
|
|
337
420
|
children: banner
|
|
338
421
|
}) : null, /*#__PURE__*/jsxs(BaseBox, {
|
|
@@ -342,7 +425,8 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
342
425
|
width: "100%",
|
|
343
426
|
children: [/*#__PURE__*/jsx(StyledL2PortalContainer, {
|
|
344
427
|
position: "absolute",
|
|
345
|
-
|
|
428
|
+
display: isSideNavCollapsed ? 'none' : 'block',
|
|
429
|
+
backgroundColor: backgroundColor,
|
|
346
430
|
height: "100%",
|
|
347
431
|
width: "100%",
|
|
348
432
|
top: "spacing.0",
|
|
@@ -355,15 +439,16 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
355
439
|
ref: l1ContainerRef,
|
|
356
440
|
id: "blade-sidenav-l1",
|
|
357
441
|
className: getL1MenuClassName({
|
|
358
|
-
isL1Collapsed:
|
|
359
|
-
isL1Hovered:
|
|
442
|
+
isL1Collapsed: effectiveIsL1Collapsed,
|
|
443
|
+
isL1Hovered: effectiveIsL1Hovered,
|
|
360
444
|
isTransitioning: isTransitioning
|
|
361
445
|
}),
|
|
446
|
+
$isSideNavExpandable: typeof _isExpanded !== 'undefined',
|
|
362
447
|
position: "absolute",
|
|
363
448
|
display: "flex",
|
|
364
449
|
flexDirection: "column",
|
|
365
450
|
justifyContent: "space-between",
|
|
366
|
-
backgroundColor:
|
|
451
|
+
backgroundColor: backgroundColor,
|
|
367
452
|
height: "100%",
|
|
368
453
|
overflow: "hidden",
|
|
369
454
|
top: "spacing.0",
|
|
@@ -389,6 +474,9 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
389
474
|
// 6. But in case of unhover/leave, we don't want to trigger mouseOut for all child components individually. We want 1 hover out of L1 menu. Thus we use `onMouseLeave`
|
|
390
475
|
,
|
|
391
476
|
onMouseOver: function onMouseOver() {
|
|
477
|
+
if (!isMobile && isSideNavCollapsed) {
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
392
480
|
if (mouseOverTimeoutRef.current) {
|
|
393
481
|
clearTimeout(mouseOverTimeoutRef.current);
|
|
394
482
|
}
|
|
@@ -400,11 +488,13 @@ var _SideNav = function _SideNav(_ref4, ref) {
|
|
|
400
488
|
}
|
|
401
489
|
},
|
|
402
490
|
onMouseLeave: function onMouseLeave() {
|
|
491
|
+
if (!isMobile && isSideNavCollapsed) {
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
403
494
|
if (isL1Collapsed && isL1Hovered) {
|
|
404
495
|
mouseOverTimeoutRef.current = setTimeout(function () {
|
|
405
496
|
setIsL1Hovered(false);
|
|
406
|
-
|
|
407
|
-
cleanupTransition();
|
|
497
|
+
startL1Transition();
|
|
408
498
|
onVisibleLevelChange === null || onVisibleLevelChange === void 0 || onVisibleLevelChange({
|
|
409
499
|
visibleLevel: 2
|
|
410
500
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNav.web.js","sources":["../../../../../../src/components/SideNav/SideNav.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport { SideNavContext } from './SideNavContext';\nimport type { SideNavContextType, SideNavProps } from './types';\nimport {\n classes,\n COLLAPSED_L1_WIDTH,\n HOVER_AGAIN_DELAY,\n L1_EXIT_HOVER_DELAY,\n SKIP_NAV_ID,\n TRANSITION_CLEANUP_DELAY,\n SIDE_NAV_EXPANDED_L1_WIDTH_BASE,\n SIDE_NAV_EXPANDED_L1_WIDTH_XL,\n} from './tokens';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeBorderSize, makeMotionTime, makeSize, makeSpace } from '~utils';\nimport { Drawer, DrawerBody, DrawerHeader } from '~components/Drawer';\nimport { SkipNavContent, SkipNavLink } from '~components/SkipNav/SkipNav';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { size as sizeTokens } from '~tokens/global';\n\nconst {\n COLLAPSED,\n SHOW_WHEN_COLLAPSED,\n HIDE_WHEN_COLLAPSED,\n TRANSITIONING,\n L1_ITEM_WRAPPER,\n} = classes;\n\nconst MobileL1Container = styled(BaseBox)(() => {\n return {\n [`.${SHOW_WHEN_COLLAPSED}`]: {\n display: 'none',\n },\n };\n});\n\nconst StyledL1Menu = styled(BaseBox)((props) => {\n const quick = makeMotionTime(props.theme.motion.duration.quick);\n const xmoderate = makeMotionTime(props.theme.motion.duration.xmoderate);\n const easing = props.theme.motion.easing;\n\n const l1Expand = `width ${xmoderate} ${easing.entrance}`;\n const l1Collapse = `width ${quick} ${easing.exit}`;\n\n return {\n width: '100%',\n transition: l1Expand,\n [`& > .${L1_ITEM_WRAPPER}`]: {\n padding: makeSpace(props.theme.spacing[3]),\n },\n [`.${SHOW_WHEN_COLLAPSED}`]: {\n display: 'none',\n },\n [`&.${COLLAPSED}`]: {\n width: makeSize(COLLAPSED_L1_WIDTH),\n transition: l1Collapse,\n [`& > .${L1_ITEM_WRAPPER}`]: {\n padding: `${makeSpace(props.theme.spacing[3])} ${makeSpace(props.theme.spacing[3])}`,\n },\n [`&:not(.${TRANSITIONING}) .${HIDE_WHEN_COLLAPSED}`]: {\n display: 'none',\n },\n [`&:not(.${TRANSITIONING}) .${SHOW_WHEN_COLLAPSED}`]: {\n display: 'initial',\n },\n },\n };\n});\n\nconst StyledL2PortalContainer = styled(BaseBox)(() => {\n return {\n // This ensures that the portal node has 100% height when it has items\n '& > div:not(:empty)': {\n height: '100%',\n },\n };\n});\n\nconst getL1MenuClassName = ({\n isL1Collapsed,\n isL1Hovered,\n isTransitioning,\n}: {\n isL1Collapsed: boolean;\n isL1Hovered: boolean;\n isTransitioning: boolean;\n}): string => {\n const isMenuCollapsed = isL1Collapsed && !isL1Hovered;\n\n if (isMenuCollapsed) {\n if (isTransitioning) {\n return `${COLLAPSED} ${TRANSITIONING}`;\n }\n\n return COLLAPSED;\n }\n\n return '';\n};\n\nconst BannerContainer = styled(BaseBox)((props) => {\n return {\n '&:not(:empty)': {\n borderBottom: makeBorderSize(props.theme.border.width.thin),\n borderBottomStyle: 'solid',\n borderBottomColor: props.theme.colors.surface.border.gray.muted,\n borderRight: makeBorderSize(props.theme.border.width.thin),\n borderRightStyle: 'solid',\n borderRightColor: props.theme.colors.surface.border.gray.muted,\n padding: makeSpace(props.theme.spacing[3]),\n maxHeight: makeSize(sizeTokens['100']),\n width: '100%',\n },\n };\n});\n\n/**\n * ### SideNav component\n *\n * The side navigation is positioned along the left side of the screen that provides quick access to different sections or functionalities of the application.\n *\n * ---\n *\n * #### Usage\n *\n * SideNav requires handling active state with React Router, Checkout Usage with React Router v6 at - [SideNav Documentation](https://blade.razorpay.com/?path=/docs/components-sidenav--docs)\n *\n */\nconst _SideNav = (\n { children, isOpen, onDismiss, onVisibleLevelChange, banner, testID, ...rest }: SideNavProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const l2PortalContainerRef = React.useRef(null);\n const l1ContainerRef = React.useRef<HTMLDivElement>(null);\n const timeoutIdsRef = React.useRef<NodeJS.Timeout[]>([]);\n const mouseOverTimeoutRef = React.useRef<NodeJS.Timeout>();\n const [isL1Collapsed, setIsL1Collapsed] = React.useState(false);\n const [isMobileL2Open, setIsMobileL2Open] = React.useState(false);\n const [isL1Hovered, setIsL1Hovered] = React.useState(false);\n const [isHoverAgainEnabled, setIsHoverAgainEnabled] = React.useState(true);\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const [l2DrawerTitle, setL2DrawerTitle] = React.useState('');\n\n const isMobile = useIsMobile();\n\n const closeMobileNav = (): void => {\n if (isMobile) {\n setIsMobileL2Open(false);\n onDismiss?.();\n onVisibleLevelChange?.({ visibleLevel: 0 });\n }\n };\n\n const cleanupTransition = (): void => {\n const clearTransitionTimeout = setTimeout(() => {\n if (isTransitioning) {\n setIsTransitioning(false);\n }\n }, TRANSITION_CLEANUP_DELAY);\n timeoutIdsRef.current.push(clearTransitionTimeout);\n };\n\n const collapseL1 = (title: string): void => {\n if (isMobile) {\n setL2DrawerTitle(title);\n setIsMobileL2Open(true);\n onVisibleLevelChange?.({ visibleLevel: 2 });\n return;\n }\n\n if (!isL1Collapsed) {\n setIsL1Collapsed(true);\n onVisibleLevelChange?.({ visibleLevel: 2 });\n }\n };\n\n const expandL1 = (): void => {\n if (isMobile) {\n setIsMobileL2Open(false);\n onVisibleLevelChange?.({ visibleLevel: 1 });\n return;\n }\n // Ensures that if Normal L1 item is clicked, the L1 stays expanded\n if (isL1Collapsed) {\n setIsL1Collapsed(false);\n // We want to avoid calling onVisibleLevelChange twice when L1 is hovered and then item on L1 is selected\n if (!isL1Hovered) {\n onVisibleLevelChange?.({ visibleLevel: 1 });\n }\n }\n };\n\n /**\n * Handles L1 -> L2 menu changes based on active item\n */\n const onLinkActiveChange: SideNavContextType['onLinkActiveChange'] = (args) => {\n const isL1ItemActive = args.level === 1 && args.isActive;\n\n if (isL1ItemActive) {\n if (args.isL2Trigger) {\n // Click on L2 Trigger\n collapseL1(args.title);\n\n // `args.isFirstRender` checks if the item that triggered this change, triggered it during first render or during subsequent change\n if (!args.isFirstRender) {\n setIsTransitioning(true);\n cleanupTransition();\n setIsL1Hovered(false);\n setIsHoverAgainEnabled(false);\n // For some delay, we disable hover to expand behaviour to avoid buggy flicker when cursor is on L1 while its trying to close\n const hoverAgainTimeout = setTimeout(() => {\n setIsHoverAgainEnabled(true);\n }, HOVER_AGAIN_DELAY);\n timeoutIdsRef.current.push(hoverAgainTimeout);\n }\n } else {\n // Click on normal L1 Item\n expandL1();\n }\n }\n };\n\n const contextValue = React.useMemo(\n () => ({\n l2PortalContainerRef,\n onLinkActiveChange,\n closeMobileNav,\n isL1Collapsed: isMobile ? isMobileL2Open : isL1Collapsed,\n setIsL1Collapsed,\n isL1Hovered,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isL1Collapsed, isMobile, isMobileL2Open, isL1Hovered],\n );\n\n React.useEffect(() => {\n return () => {\n for (const timeoutId of timeoutIdsRef.current) {\n clearTimeout(timeoutId);\n }\n timeoutIdsRef.current = [];\n };\n }, []);\n\n return (\n <SideNavContext.Provider value={contextValue}>\n {isMobile && onDismiss ? (\n <>\n {/* L1 */}\n <Drawer isOpen={isOpen ?? false} onDismiss={closeMobileNav}>\n <DrawerHeader title=\"Main Menu\" />\n <DrawerBody>\n <MobileL1Container\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"space-between\"\n className=\"mobile-l1-container\"\n height=\"100%\"\n {...metaAttribute({\n name: MetaConstants.SideNav,\n testID,\n })}\n >\n {children}\n </MobileL1Container>\n </DrawerBody>\n </Drawer>\n {/* L2 */}\n <Drawer isOpen={isMobileL2Open} onDismiss={() => expandL1()} isLazy={false}>\n <DrawerHeader title={l2DrawerTitle} />\n <DrawerBody>\n <BaseBox ref={l2PortalContainerRef} />\n </DrawerBody>\n </Drawer>\n </>\n ) : (\n <BaseBox\n ref={ref as never}\n position=\"fixed\"\n backgroundColor=\"surface.background.gray.moderate\"\n height=\"100%\"\n top=\"spacing.0\"\n left=\"spacing.0\"\n display={{ base: 'none', m: 'flex' }}\n flexDirection=\"column\"\n width={{\n base: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_BASE),\n xl: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_XL),\n }}\n as=\"nav\"\n {...metaAttribute({\n name: MetaConstants.SideNav,\n testID,\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n {banner ? <BannerContainer>{banner}</BannerContainer> : null}\n <BaseBox position=\"relative\" display=\"block\" flex=\"1\" width=\"100%\">\n <StyledL2PortalContainer\n position=\"absolute\"\n backgroundColor=\"surface.background.gray.moderate\"\n height=\"100%\"\n width=\"100%\"\n top=\"spacing.0\"\n left=\"spacing.0\"\n id=\"blade-sidenav-l2\"\n borderRightWidth=\"thin\"\n borderRightColor=\"surface.border.gray.muted\"\n ref={l2PortalContainerRef}\n />\n <StyledL1Menu\n ref={l1ContainerRef}\n id=\"blade-sidenav-l1\"\n className={getL1MenuClassName({ isL1Collapsed, isL1Hovered, isTransitioning })}\n position=\"absolute\"\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"space-between\"\n backgroundColor=\"surface.background.gray.moderate\"\n height=\"100%\"\n overflow=\"hidden\"\n top=\"spacing.0\"\n left=\"spacing.0\"\n borderRightWidth=\"thin\"\n borderRightColor=\"surface.border.gray.muted\"\n onTransitionEnd={(e) => {\n // This check ensures transitioning is set to false only when its true\n // And only the l1Container element's transitions are considered and other transitions of l1 expand or child elements are ignored\n if (isTransitioning && l1ContainerRef.current === e.target) {\n setIsTransitioning(false);\n }\n }}\n // Hmm you might be wondering, why is `onMouseOver` paired with `onMouseLeave`? A sane person would pair `onMouseOver` with `onMouseOut`, and `onMouseEnter` with `onMouseLeave`\n // since they are logical equivalents of each other. So why don't we do that? Hold tight, you're in for a ride ☕️.\n //\n // 1. In an ideal scenario, we would put `onMouseEnter` and `onMouseLeave` here and expect things to work.\n // 2. The L2 menu of our SideNav is React Portalled out of the L1 child\n // 3. React considers its own children as true children for JS events and not DOM children (Checkout React Portal Caveats - https://react.dev/reference/react-dom/createPortal#caveats)\n // 3. In the next ideal scenario, we would put `e.stopPropagation` on child component of portal like React recommends, except mouseenter, mouseleave events don't propagate at all (https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseenter_event#usage_notes)\n // 4. So `onMouseEnter` gets triggered on L2 enter. But we don't want to open L1 menu on L2 hover\n // 5. Thus we use `onMouseOver` for hover part and call e.stopPropagation in portal child (SideNavLevel).\n // 6. But in case of unhover/leave, we don't want to trigger mouseOut for all child components individually. We want 1 hover out of L1 menu. Thus we use `onMouseLeave`\n onMouseOver={() => {\n if (mouseOverTimeoutRef.current) {\n clearTimeout(mouseOverTimeoutRef.current);\n }\n if (isL1Collapsed && isHoverAgainEnabled && !isL1Hovered) {\n setIsL1Hovered(true);\n onVisibleLevelChange?.({ visibleLevel: 1 });\n }\n }}\n onMouseLeave={() => {\n if (isL1Collapsed && isL1Hovered) {\n mouseOverTimeoutRef.current = setTimeout(() => {\n setIsL1Hovered(false);\n setIsTransitioning(true);\n cleanupTransition();\n onVisibleLevelChange?.({ visibleLevel: 2 });\n }, L1_EXIT_HOVER_DELAY);\n }\n // If L1 is collapsed and not hovered we want to change visible level to 2\n // This state/edgecase happens when user clicks on a nested nav and it collapses the L1 causing isL1Hovered to be false\n if (isL1Collapsed && !isL1Hovered) {\n onVisibleLevelChange?.({ visibleLevel: 2 });\n }\n }}\n >\n <SkipNavLink id={SKIP_NAV_ID} _hasBackground={true} />\n {children}\n </StyledL1Menu>\n <SkipNavContent id={SKIP_NAV_ID} />\n </BaseBox>\n </BaseBox>\n )}\n </SideNavContext.Provider>\n );\n};\n\nconst SideNav = React.forwardRef(_SideNav);\n\nexport { SideNav };\n"],"names":["COLLAPSED","classes","SHOW_WHEN_COLLAPSED","HIDE_WHEN_COLLAPSED","TRANSITIONING","L1_ITEM_WRAPPER","MobileL1Container","styled","BaseBox","withConfig","displayName","componentId","_defineProperty","concat","display","StyledL1Menu","props","quick","makeMotionTime","theme","motion","duration","xmoderate","easing","l1Expand","entrance","l1Collapse","exit","width","transition","padding","makeSpace","spacing","makeSize","COLLAPSED_L1_WIDTH","StyledL2PortalContainer","height","getL1MenuClassName","_ref3","isL1Collapsed","isL1Hovered","isTransitioning","isMenuCollapsed","BannerContainer","borderBottom","makeBorderSize","border","thin","borderBottomStyle","borderBottomColor","colors","surface","gray","muted","borderRight","borderRightStyle","borderRightColor","maxHeight","sizeTokens","_SideNav","_ref4","ref","children","isOpen","onDismiss","onVisibleLevelChange","banner","testID","rest","_objectWithoutProperties","_excluded","l2PortalContainerRef","React","useRef","l1ContainerRef","timeoutIdsRef","mouseOverTimeoutRef","_React$useState","useState","_React$useState2","_slicedToArray","setIsL1Collapsed","_React$useState3","_React$useState4","isMobileL2Open","setIsMobileL2Open","_React$useState5","_React$useState6","setIsL1Hovered","_React$useState7","_React$useState8","isHoverAgainEnabled","setIsHoverAgainEnabled","_React$useState9","_React$useState0","setIsTransitioning","_React$useState1","_React$useState10","l2DrawerTitle","setL2DrawerTitle","isMobile","useIsMobile","closeMobileNav","visibleLevel","cleanupTransition","clearTransitionTimeout","setTimeout","TRANSITION_CLEANUP_DELAY","current","push","collapseL1","title","expandL1","onLinkActiveChange","args","isL1ItemActive","level","isActive","isL2Trigger","isFirstRender","hoverAgainTimeout","HOVER_AGAIN_DELAY","contextValue","useMemo","useEffect","_iterator","_createForOfIteratorHelper","_step","s","n","done","timeoutId","value","clearTimeout","err","e","f","_jsx","SideNavContext","Provider","_jsxs","_Fragment","Drawer","DrawerHeader","DrawerBody","_objectSpread","flexDirection","justifyContent","className","metaAttribute","name","MetaConstants","SideNav","isLazy","position","backgroundColor","top","left","base","m","SIDE_NAV_EXPANDED_L1_WIDTH_BASE","xl","SIDE_NAV_EXPANDED_L1_WIDTH_XL","as","getStyledProps","makeAnalyticsAttribute","flex","id","borderRightWidth","overflow","onTransitionEnd","target","onMouseOver","onMouseLeave","L1_EXIT_HOVER_DELAY","SkipNavLink","SKIP_NAV_ID","_hasBackground","SkipNavContent","forwardRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SideNav.web.js","sources":["../../../../../../src/components/SideNav/SideNav.web.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport { SideNavContext } from './SideNavContext';\nimport {\n classes,\n COLLAPSED_L1_WIDTH,\n HOVER_AGAIN_DELAY,\n L1_EXIT_HOVER_DELAY,\n SKIP_NAV_ID,\n TRANSITION_CLEANUP_DELAY,\n SIDE_NAV_EXPANDED_L1_WIDTH_BASE,\n SIDE_NAV_EXPANDED_L1_WIDTH_XL,\n} from './tokens';\nimport type { SideNavContextType, SideNavProps } from './types';\nimport type { BladeElementRef } from '~utils/types';\nimport { size as sizeTokens } from '~tokens/global';\nimport { makeBorderSize, makeMotionTime, makeSize, makeSpace } from '~utils';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useIsMobile } from '~utils/useIsMobile';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { Drawer, DrawerBody, DrawerHeader } from '~components/Drawer';\nimport { SkipNavContent, SkipNavLink } from '~components/SkipNav/SkipNav';\n\nconst {\n COLLAPSED,\n SHOW_WHEN_COLLAPSED,\n HIDE_WHEN_COLLAPSED,\n TRANSITIONING,\n L1_ITEM_WRAPPER,\n} = classes;\n\nconst MobileL1Container = styled(BaseBox)(() => {\n return {\n [`.${SHOW_WHEN_COLLAPSED}`]: {\n display: 'none',\n },\n };\n});\n\nconst StyledL1Menu = styled(BaseBox)<{ $isSideNavExpandable: boolean }>((props) => {\n const quick = makeMotionTime(props.theme.motion.duration.quick);\n const xmoderate = makeMotionTime(props.theme.motion.duration.xmoderate);\n const easing = props.theme.motion.easing;\n\n const l1Expand = `width ${xmoderate} ${easing.entrance}`;\n const l1Collapse = `width ${quick} ${easing.exit}`;\n\n const textVisibilityProps = props.$isSideNavExpandable\n ? {}\n : {\n [`.${SHOW_WHEN_COLLAPSED}`]: {\n display: 'none',\n },\n [`&.${COLLAPSED}`]: {\n width: makeSize(COLLAPSED_L1_WIDTH),\n transition: l1Collapse,\n [`& > .${L1_ITEM_WRAPPER}`]: {\n padding: `${makeSpace(props.theme.spacing[3])} ${makeSpace(props.theme.spacing[3])}`,\n },\n [`&:not(.${TRANSITIONING}) .${HIDE_WHEN_COLLAPSED}`]: {\n display: 'none',\n },\n [`&:not(.${TRANSITIONING}) .${SHOW_WHEN_COLLAPSED}`]: {\n display: 'initial',\n },\n },\n };\n\n return {\n width: '100%',\n // the overall sidenav expands and collapses in this case. No need transition here\n transition: props.$isSideNavExpandable ? 'none' : l1Expand,\n [`& > .${L1_ITEM_WRAPPER}`]: {\n padding: makeSpace(props.theme.spacing[3]),\n },\n ...textVisibilityProps,\n };\n});\n\nconst StyledSideNavContainer = styled(BaseBox)<{ $isSideNavExpandable: boolean }>((props) => {\n const quick = makeMotionTime(props.theme.motion.duration.quick);\n const xmoderate = makeMotionTime(props.theme.motion.duration.xmoderate);\n const easing = props.theme.motion.easing;\n\n const sideNavExpand = `width ${xmoderate} ${easing.entrance}`;\n const sideNavCollapse = `width ${quick} ${easing.exit}`;\n\n if (!props.$isSideNavExpandable) {\n return {};\n }\n\n return {\n transition: sideNavExpand,\n [`&.${COLLAPSED}`]: {\n width: makeSize(COLLAPSED_L1_WIDTH),\n transition: sideNavCollapse,\n [`&:not(.${TRANSITIONING}) .${HIDE_WHEN_COLLAPSED}`]: {\n opacity: '0',\n pointerEvents: 'none',\n transition: `opacity ${quick} ${easing.exit}`,\n },\n [`&:not(.${TRANSITIONING}) .${SHOW_WHEN_COLLAPSED}`]: {\n opacity: '1',\n pointerEvents: 'auto',\n transition: `opacity ${quick} ${easing.entrance}`,\n },\n },\n [`.${SHOW_WHEN_COLLAPSED}`]: {\n opacity: '0',\n pointerEvents: 'none',\n transition: `opacity ${quick} ${easing.exit}`,\n },\n [`.${HIDE_WHEN_COLLAPSED}`]: {\n opacity: '1',\n pointerEvents: 'auto',\n transition: `opacity ${quick} ${easing.entrance}`,\n },\n };\n});\n\nconst StyledL2PortalContainer = styled(BaseBox)(() => {\n return {\n // This ensures that the portal node has 100% height when it has items\n '& > div:not(:empty)': {\n height: '100%',\n },\n };\n});\n\nconst getL1MenuClassName = ({\n isL1Collapsed,\n isL1Hovered,\n isTransitioning,\n}: {\n isL1Collapsed: boolean;\n isL1Hovered: boolean;\n isTransitioning: boolean;\n}): string => {\n const isMenuCollapsed = isL1Collapsed && !isL1Hovered;\n\n if (isMenuCollapsed) {\n if (isTransitioning) {\n return `${COLLAPSED} ${TRANSITIONING}`;\n }\n\n return COLLAPSED;\n }\n\n return '';\n};\n\nconst BannerContainer = styled(BaseBox)((props) => {\n return {\n '&:not(:empty)': {\n borderBottom: makeBorderSize(props.theme.border.width.thin),\n borderBottomStyle: 'solid',\n borderBottomColor: props.theme.colors.surface.border.gray.muted,\n borderRight: makeBorderSize(props.theme.border.width.thin),\n borderRightStyle: 'solid',\n borderRightColor: props.theme.colors.surface.border.gray.muted,\n padding: makeSpace(props.theme.spacing[3]),\n maxHeight: makeSize(sizeTokens['100']),\n width: '100%',\n },\n };\n});\n\n/**\n * ### SideNav component\n *\n * The side navigation is positioned along the left side of the screen that provides quick access to different sections or functionalities of the application.\n *\n * ---\n *\n * #### Usage\n *\n * SideNav requires handling active state with React Router, Checkout Usage with React Router v6 at - [SideNav Documentation](https://blade.razorpay.com/?path=/docs/components-sidenav--docs)\n *\n */\nconst _SideNav = (\n {\n children,\n isOpen,\n onDismiss,\n onVisibleLevelChange,\n onExpandChange,\n onExpandTransitionEnd,\n banner,\n backgroundColor = 'surface.background.gray.moderate',\n testID,\n isExpanded: _isExpanded,\n ...rest\n }: SideNavProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const l2PortalContainerRef = React.useRef(null);\n const l1ContainerRef = React.useRef<HTMLDivElement>(null);\n const timeoutIdsRef = React.useRef<NodeJS.Timeout[]>([]);\n const mouseOverTimeoutRef = React.useRef<NodeJS.Timeout>();\n const prevIsSideNavCollapsedRef = React.useRef<boolean>();\n const [isL1Collapsed, setIsL1Collapsed] = React.useState(false);\n const [isMobileL2Open, setIsMobileL2Open] = React.useState(false);\n const [isL1Hovered, setIsL1Hovered] = React.useState(false);\n const [isHoverAgainEnabled, setIsHoverAgainEnabled] = React.useState(true);\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const [l2DrawerTitle, setL2DrawerTitle] = React.useState('');\n\n const isMobile = useIsMobile();\n const isSideNavCollapsed = _isExpanded === false;\n\n const effectiveIsL1Collapsed = isMobile ? isMobileL2Open : isSideNavCollapsed || isL1Collapsed;\n\n const effectiveIsL1Hovered = isSideNavCollapsed ? false : isL1Hovered;\n const sideNavWidth = isSideNavCollapsed\n ? makeSize(COLLAPSED_L1_WIDTH)\n : {\n base: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_BASE),\n xl: makeSize(SIDE_NAV_EXPANDED_L1_WIDTH_XL),\n };\n\n const closeMobileNav = (): void => {\n if (isMobile) {\n setIsMobileL2Open(false);\n onDismiss?.();\n onVisibleLevelChange?.({ visibleLevel: 0 });\n }\n };\n\n const cleanupTransition = React.useCallback((): void => {\n const clearTransitionTimeout = setTimeout(() => {\n setIsTransitioning((isCurrentlyTransitioning) =>\n isCurrentlyTransitioning ? false : isCurrentlyTransitioning,\n );\n }, TRANSITION_CLEANUP_DELAY);\n timeoutIdsRef.current.push(clearTransitionTimeout);\n }, []);\n\n const startL1Transition = React.useCallback((): void => {\n setIsTransitioning(true);\n cleanupTransition();\n }, [cleanupTransition]);\n\n const collapseL1 = (title: string): void => {\n if (isMobile) {\n setL2DrawerTitle(title);\n setIsMobileL2Open(true);\n onVisibleLevelChange?.({ visibleLevel: 2 });\n return;\n }\n\n if (!isL1Collapsed) {\n setIsL1Collapsed(true);\n onVisibleLevelChange?.({ visibleLevel: 2 });\n }\n };\n\n const expandL1 = (): void => {\n if (isMobile) {\n setIsMobileL2Open(false);\n onVisibleLevelChange?.({ visibleLevel: 1 });\n return;\n }\n\n if (isSideNavCollapsed) {\n return;\n }\n\n // Ensures that if Normal L1 item is clicked, the L1 stays expanded\n if (isL1Collapsed) {\n setIsL1Collapsed(false);\n // We want to avoid calling onVisibleLevelChange twice when L1 is hovered and then item on L1 is selected\n if (!isL1Hovered) {\n onVisibleLevelChange?.({ visibleLevel: 1 });\n }\n }\n };\n\n /**\n * Handles L1 -> L2 menu changes based on active item\n */\n const onLinkActiveChange: SideNavContextType['onLinkActiveChange'] = (args) => {\n const isL1ItemActive = args.level === 1 && args.isActive;\n\n if (isL1ItemActive) {\n if (args.isL2Trigger) {\n // Click on L2 Trigger\n collapseL1(args.title);\n\n // `args.isFirstRender` checks if the item that triggered this change, triggered it during first render or during subsequent change\n if (!args.isFirstRender) {\n startL1Transition();\n setIsL1Hovered(false);\n setIsHoverAgainEnabled(false);\n // For some delay, we disable hover to expand behaviour to avoid buggy flicker when cursor is on L1 while its trying to close\n const hoverAgainTimeout = setTimeout(() => {\n setIsHoverAgainEnabled(true);\n }, HOVER_AGAIN_DELAY);\n timeoutIdsRef.current.push(hoverAgainTimeout);\n }\n } else {\n // Click on normal L1 Item\n expandL1();\n }\n }\n };\n\n const contextValue = React.useMemo(\n () => ({\n l2PortalContainerRef,\n onLinkActiveChange,\n closeMobileNav,\n isL1Collapsed: effectiveIsL1Collapsed,\n setIsL1Collapsed,\n isL1Hovered: effectiveIsL1Hovered,\n isSideNavCollapsed,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [effectiveIsL1Collapsed, effectiveIsL1Hovered, isSideNavCollapsed, isMobile],\n );\n\n React.useEffect(() => {\n return () => {\n for (const timeoutId of timeoutIdsRef.current) {\n clearTimeout(timeoutId);\n }\n timeoutIdsRef.current = [];\n };\n }, []);\n\n React.useEffect(() => {\n if (!isMobile && isSideNavCollapsed && isL1Hovered) {\n setIsL1Hovered(false);\n }\n }, [isMobile, isSideNavCollapsed, isL1Hovered]);\n\n React.useEffect(() => {\n const prevIsSideNavCollapsed = prevIsSideNavCollapsedRef.current;\n prevIsSideNavCollapsedRef.current = isSideNavCollapsed;\n\n if (isMobile || prevIsSideNavCollapsed === undefined) {\n return;\n }\n\n if (prevIsSideNavCollapsed !== isSideNavCollapsed) {\n startL1Transition();\n onExpandChange?.({ isExpanded: !isSideNavCollapsed });\n }\n }, [isMobile, isSideNavCollapsed, onExpandChange, startL1Transition]);\n\n return (\n <SideNavContext.Provider value={contextValue}>\n {isMobile && onDismiss ? (\n <>\n {/* L1 */}\n <Drawer isOpen={isOpen ?? false} onDismiss={closeMobileNav}>\n <DrawerHeader title=\"Main Menu\" />\n <DrawerBody>\n <MobileL1Container\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"space-between\"\n className=\"mobile-l1-container\"\n height=\"100%\"\n {...metaAttribute({\n name: MetaConstants.SideNav,\n testID,\n })}\n >\n {children}\n </MobileL1Container>\n </DrawerBody>\n </Drawer>\n {/* L2 */}\n <Drawer isOpen={isMobileL2Open} onDismiss={() => expandL1()} isLazy={false}>\n <DrawerHeader title={l2DrawerTitle} />\n <DrawerBody>\n <BaseBox ref={l2PortalContainerRef} />\n </DrawerBody>\n </Drawer>\n </>\n ) : (\n <StyledSideNavContainer\n $isSideNavExpandable={typeof _isExpanded !== 'undefined'}\n ref={ref as never}\n className={isSideNavCollapsed ? COLLAPSED : ''}\n position=\"fixed\"\n backgroundColor={backgroundColor}\n height=\"100%\"\n top=\"spacing.0\"\n left=\"spacing.0\"\n display={{ base: 'none', m: 'flex' }}\n flexDirection=\"column\"\n width={sideNavWidth}\n as=\"nav\"\n {...metaAttribute({\n name: MetaConstants.SideNav,\n testID,\n })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n onTransitionEnd={(e) => {\n if (e.target !== e.currentTarget || e.propertyName !== 'width' || isMobile) {\n return;\n }\n\n onExpandTransitionEnd?.({\n isExpanded: !isSideNavCollapsed,\n });\n }}\n >\n {banner ? <BannerContainer>{banner}</BannerContainer> : null}\n <BaseBox position=\"relative\" display=\"block\" flex=\"1\" width=\"100%\">\n <StyledL2PortalContainer\n position=\"absolute\"\n display={isSideNavCollapsed ? 'none' : 'block'}\n backgroundColor={backgroundColor}\n height=\"100%\"\n width=\"100%\"\n top=\"spacing.0\"\n left=\"spacing.0\"\n id=\"blade-sidenav-l2\"\n borderRightWidth=\"thin\"\n borderRightColor=\"surface.border.gray.muted\"\n ref={l2PortalContainerRef}\n />\n <StyledL1Menu\n ref={l1ContainerRef}\n id=\"blade-sidenav-l1\"\n className={getL1MenuClassName({\n isL1Collapsed: effectiveIsL1Collapsed,\n isL1Hovered: effectiveIsL1Hovered,\n isTransitioning,\n })}\n $isSideNavExpandable={typeof _isExpanded !== 'undefined'}\n position=\"absolute\"\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"space-between\"\n backgroundColor={backgroundColor}\n height=\"100%\"\n overflow=\"hidden\"\n top=\"spacing.0\"\n left=\"spacing.0\"\n borderRightWidth=\"thin\"\n borderRightColor=\"surface.border.gray.muted\"\n onTransitionEnd={(e) => {\n // This check ensures transitioning is set to false only when its true\n // And only the l1Container element's transitions are considered and other transitions of l1 expand or child elements are ignored\n if (isTransitioning && l1ContainerRef.current === e.target) {\n setIsTransitioning(false);\n }\n }}\n // Hmm you might be wondering, why is `onMouseOver` paired with `onMouseLeave`? A sane person would pair `onMouseOver` with `onMouseOut`, and `onMouseEnter` with `onMouseLeave`\n // since they are logical equivalents of each other. So why don't we do that? Hold tight, you're in for a ride ☕️.\n //\n // 1. In an ideal scenario, we would put `onMouseEnter` and `onMouseLeave` here and expect things to work.\n // 2. The L2 menu of our SideNav is React Portalled out of the L1 child\n // 3. React considers its own children as true children for JS events and not DOM children (Checkout React Portal Caveats - https://react.dev/reference/react-dom/createPortal#caveats)\n // 3. In the next ideal scenario, we would put `e.stopPropagation` on child component of portal like React recommends, except mouseenter, mouseleave events don't propagate at all (https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseenter_event#usage_notes)\n // 4. So `onMouseEnter` gets triggered on L2 enter. But we don't want to open L1 menu on L2 hover\n // 5. Thus we use `onMouseOver` for hover part and call e.stopPropagation in portal child (SideNavLevel).\n // 6. But in case of unhover/leave, we don't want to trigger mouseOut for all child components individually. We want 1 hover out of L1 menu. Thus we use `onMouseLeave`\n onMouseOver={() => {\n if (!isMobile && isSideNavCollapsed) {\n return;\n }\n if (mouseOverTimeoutRef.current) {\n clearTimeout(mouseOverTimeoutRef.current);\n }\n if (isL1Collapsed && isHoverAgainEnabled && !isL1Hovered) {\n setIsL1Hovered(true);\n onVisibleLevelChange?.({ visibleLevel: 1 });\n }\n }}\n onMouseLeave={() => {\n if (!isMobile && isSideNavCollapsed) {\n return;\n }\n if (isL1Collapsed && isL1Hovered) {\n mouseOverTimeoutRef.current = setTimeout(() => {\n setIsL1Hovered(false);\n startL1Transition();\n onVisibleLevelChange?.({ visibleLevel: 2 });\n }, L1_EXIT_HOVER_DELAY);\n }\n // If L1 is collapsed and not hovered we want to change visible level to 2\n // This state/edgecase happens when user clicks on a nested nav and it collapses the L1 causing isL1Hovered to be false\n if (isL1Collapsed && !isL1Hovered) {\n onVisibleLevelChange?.({ visibleLevel: 2 });\n }\n }}\n >\n <SkipNavLink id={SKIP_NAV_ID} _hasBackground={true} />\n {children}\n </StyledL1Menu>\n <SkipNavContent id={SKIP_NAV_ID} />\n </BaseBox>\n </StyledSideNavContainer>\n )}\n </SideNavContext.Provider>\n );\n};\n\nconst SideNav = React.forwardRef(_SideNav);\n\nexport { SideNav };\n"],"names":["COLLAPSED","classes","SHOW_WHEN_COLLAPSED","HIDE_WHEN_COLLAPSED","TRANSITIONING","L1_ITEM_WRAPPER","MobileL1Container","styled","BaseBox","withConfig","displayName","componentId","_defineProperty","concat","display","StyledL1Menu","props","quick","makeMotionTime","theme","motion","duration","xmoderate","easing","l1Expand","entrance","l1Collapse","exit","textVisibilityProps","$isSideNavExpandable","width","makeSize","COLLAPSED_L1_WIDTH","transition","padding","makeSpace","spacing","_objectSpread","StyledSideNavContainer","sideNavExpand","sideNavCollapse","opacity","pointerEvents","StyledL2PortalContainer","height","getL1MenuClassName","_ref4","isL1Collapsed","isL1Hovered","isTransitioning","isMenuCollapsed","BannerContainer","borderBottom","makeBorderSize","border","thin","borderBottomStyle","borderBottomColor","colors","surface","gray","muted","borderRight","borderRightStyle","borderRightColor","maxHeight","sizeTokens","_SideNav","_ref5","ref","children","isOpen","onDismiss","onVisibleLevelChange","onExpandChange","onExpandTransitionEnd","banner","_ref5$backgroundColor","backgroundColor","testID","_isExpanded","isExpanded","rest","_objectWithoutProperties","_excluded","l2PortalContainerRef","React","useRef","l1ContainerRef","timeoutIdsRef","mouseOverTimeoutRef","prevIsSideNavCollapsedRef","_React$useState","useState","_React$useState2","_slicedToArray","setIsL1Collapsed","_React$useState3","_React$useState4","isMobileL2Open","setIsMobileL2Open","_React$useState5","_React$useState6","setIsL1Hovered","_React$useState7","_React$useState8","isHoverAgainEnabled","setIsHoverAgainEnabled","_React$useState9","_React$useState0","setIsTransitioning","_React$useState1","_React$useState10","l2DrawerTitle","setL2DrawerTitle","isMobile","useIsMobile","isSideNavCollapsed","effectiveIsL1Collapsed","effectiveIsL1Hovered","sideNavWidth","base","SIDE_NAV_EXPANDED_L1_WIDTH_BASE","xl","SIDE_NAV_EXPANDED_L1_WIDTH_XL","closeMobileNav","visibleLevel","cleanupTransition","useCallback","clearTransitionTimeout","setTimeout","isCurrentlyTransitioning","TRANSITION_CLEANUP_DELAY","current","push","startL1Transition","collapseL1","title","expandL1","onLinkActiveChange","args","isL1ItemActive","level","isActive","isL2Trigger","isFirstRender","hoverAgainTimeout","HOVER_AGAIN_DELAY","contextValue","useMemo","useEffect","_iterator","_createForOfIteratorHelper","_step","s","n","done","timeoutId","value","clearTimeout","err","e","f","prevIsSideNavCollapsed","undefined","_jsx","SideNavContext","Provider","_jsxs","_Fragment","Drawer","DrawerHeader","DrawerBody","flexDirection","justifyContent","className","metaAttribute","name","MetaConstants","SideNav","isLazy","position","top","left","m","as","getStyledProps","makeAnalyticsAttribute","onTransitionEnd","target","currentTarget","propertyName","flex","id","borderRightWidth","overflow","onMouseOver","onMouseLeave","L1_EXIT_HOVER_DELAY","SkipNavLink","SKIP_NAV_ID","_hasBackground","SkipNavContent","forwardRef"],"mappings":"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"}
|