@learningpool/ui 1.6.0-beta.4 → 1.6.0-beta.6
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/components/navigation/VerticalNavigation/VerticalNavigation.d.ts +13 -0
- package/components/navigation/VerticalNavigation/VerticalNavigation.js +39 -14
- package/components/navigation/VerticalNavigation/VerticalNavigationAvatar.d.ts +24 -0
- package/components/navigation/VerticalNavigation/VerticalNavigationAvatar.js +84 -0
- package/components/navigation/VerticalNavigation/VerticalNavigationAvatarStyles.d.ts +827 -0
- package/components/navigation/VerticalNavigation/VerticalNavigationAvatarStyles.js +31 -0
- package/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItem.d.ts +1 -1
- package/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItem.js +1 -1
- package/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemFlyoutMenu.js +1 -1
- package/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemFlyoutMenuStyles.js +12 -9
- package/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemStyles.js +12 -13
- package/components/navigation/VerticalNavigation/VerticalNavigationMotion.d.ts +141 -0
- package/components/navigation/VerticalNavigation/VerticalNavigationMotion.js +109 -0
- package/components/navigation/VerticalNavigation/VerticalNavigationStyles.js +16 -15
- package/package.json +2 -1
- package/utils/constants.d.ts +1 -0
- package/utils/constants.js +1 -0
- package/components/navigation/VerticalNavigation/AvatarPanel.d.ts +0 -8
- package/components/navigation/VerticalNavigation/AvatarPanel.js +0 -97
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IVerticalNavigationItemProps } from './VerticalNavigationItem/VerticalNavigationItem';
|
|
3
|
+
import { IAvatarMenuItemProps } from './VerticalNavigationAvatar';
|
|
3
4
|
interface VerticalNavigationProps {
|
|
4
5
|
logo?: string;
|
|
5
6
|
logoText?: string;
|
|
@@ -14,6 +15,18 @@ interface VerticalNavigationProps {
|
|
|
14
15
|
isDrawerOpen?: boolean;
|
|
15
16
|
isPersistent?: boolean;
|
|
16
17
|
setIsPersistent?: any;
|
|
18
|
+
appRootID?: string;
|
|
19
|
+
hasAvatar?: boolean;
|
|
20
|
+
avatarPanelOnClickSwitchDirection?: any;
|
|
21
|
+
avatarPanelOnClickLogout?: any;
|
|
22
|
+
avatarPanelOnClickViewProfile?: any;
|
|
23
|
+
avatarPanelViewProfileString?: string;
|
|
24
|
+
avatarPanelOnClickEditProfile?: any;
|
|
25
|
+
avatarPanelEditProfileString?: string;
|
|
26
|
+
avatarPanelMenuItems?: Array<IAvatarMenuItemProps>;
|
|
27
|
+
avatarPanelOnClickMainAction?: any;
|
|
28
|
+
avatarPanelMainActionString?: string;
|
|
29
|
+
avatarPanelSettingItems?: Array<IAvatarMenuItemProps>;
|
|
17
30
|
}
|
|
18
31
|
declare const VerticalNavigation: (props: VerticalNavigationProps) => React.ReactElement;
|
|
19
32
|
export default VerticalNavigation;
|
|
@@ -9,10 +9,21 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
12
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
24
|
import React, { useEffect } from 'react';
|
|
14
25
|
import { useTheme } from '@mui/material/styles';
|
|
15
|
-
import { Avatar,
|
|
26
|
+
import { Avatar, List, Tooltip } from '../../../index';
|
|
16
27
|
import { Box } from '@mui/material';
|
|
17
28
|
import { StreamSuiteLogo, NotchSVG, NotchExtendSVG } from '../../../assets/Images';
|
|
18
29
|
import { AppSwitcher } from '@learningpool/app-switcher';
|
|
@@ -20,13 +31,14 @@ import { ChevronLeft, ChevronRight, PushPin } from '@mui/icons-material';
|
|
|
20
31
|
import VerticalNavigationItem from './VerticalNavigationItem/VerticalNavigationItem';
|
|
21
32
|
import { DRAWER_WIDTH, DrawerHeader, DrawerToggle, DrawerToggleHitboxContent, StyledDivider, StyledNav, StyledNavSecondary, DrawerShadow, StyledAside, NotchContainer, NotchBackground, NotchBackgroundClip, NotchSeemMask, StyledDrawer } from './VerticalNavigationStyles';
|
|
22
33
|
import { ListItem, ListItemButton, ListItemIcon, ListItemText } from './VerticalNavigationItem/VerticalNavigationItemStyles';
|
|
23
|
-
import AvatarPanel from './
|
|
34
|
+
import AvatarPanel from './VerticalNavigationAvatar';
|
|
24
35
|
import { motion } from '../../../utils/theme';
|
|
25
36
|
import { handleAvatarInitials } from '../../../utils/helpers';
|
|
37
|
+
import { DEFAULT_REACT_APP_ID } from '../../../utils/constants';
|
|
26
38
|
var VerticalNavigation = function (props) {
|
|
27
39
|
var _a, _b;
|
|
28
40
|
var theme = useTheme();
|
|
29
|
-
var items = props.items, secondaryItems = props.secondaryItems, logo = props.logo, logoText = props.logoText, logoOnClick = props.logoOnClick, hasStreamHome = props.hasStreamHome, streamHomeApiKey = props.streamHomeApiKey, streamHomeBaseUrl = props.streamHomeBaseUrl, streamHomeAccessToken = props.streamHomeAccessToken;
|
|
41
|
+
var items = props.items, secondaryItems = props.secondaryItems, logo = props.logo, logoText = props.logoText, logoOnClick = props.logoOnClick, appRootID = props.appRootID, hasStreamHome = props.hasStreamHome, streamHomeApiKey = props.streamHomeApiKey, streamHomeBaseUrl = props.streamHomeBaseUrl, streamHomeAccessToken = props.streamHomeAccessToken, rest = __rest(props, ["items", "secondaryItems", "logo", "logoText", "logoOnClick", "appRootID", "hasStreamHome", "streamHomeApiKey", "streamHomeBaseUrl", "streamHomeAccessToken"]);
|
|
30
42
|
var propIsDrawerOpen = typeof (props === null || props === void 0 ? void 0 : props.isDrawerOpen) === 'boolean' ? props.isDrawerOpen : undefined;
|
|
31
43
|
var propIsPersistent = typeof (props === null || props === void 0 ? void 0 : props.isPersistent) === 'boolean' ? props.isPersistent : undefined;
|
|
32
44
|
var avatarName = (_a = props === null || props === void 0 ? void 0 : props.avatarName) !== null && _a !== void 0 ? _a : 'Avatar name';
|
|
@@ -37,6 +49,18 @@ var VerticalNavigation = function (props) {
|
|
|
37
49
|
useEffect(function () { return setIsDrawerOpen(propIsDrawerOpen !== null && propIsDrawerOpen !== void 0 ? propIsDrawerOpen : false); }, [propIsDrawerOpen]);
|
|
38
50
|
useEffect(function () { return setIsDrawerOpen(propIsPersistent !== null && propIsPersistent !== void 0 ? propIsPersistent : false); }, [propIsPersistent]);
|
|
39
51
|
useEffect(function () { return setAvatarInitials(handleAvatarInitials(avatarName)); }, [avatarName]);
|
|
52
|
+
// This fixes an issue with how MUI handles the modal and aria-hidden.
|
|
53
|
+
// When open, the Modal adds aria-hidden="true" to a top-level element,
|
|
54
|
+
// which causes some screen readers to annouce the elements as "blank".
|
|
55
|
+
// This fix just overrides the default aria-hidden attribute.
|
|
56
|
+
//
|
|
57
|
+
// https://github.com/mui/material-ui/issues/19450
|
|
58
|
+
useEffect(function () {
|
|
59
|
+
if (isDrawerOpen) {
|
|
60
|
+
var root = window.document.getElementById(appRootID !== null && appRootID !== void 0 ? appRootID : DEFAULT_REACT_APP_ID);
|
|
61
|
+
root === null || root === void 0 ? void 0 : root.removeAttribute('aria-hidden');
|
|
62
|
+
}
|
|
63
|
+
}, [isDrawerOpen]);
|
|
40
64
|
var handleIsPersistent = function () {
|
|
41
65
|
var _a, _b;
|
|
42
66
|
if (props === null || props === void 0 ? void 0 : props.setIsPersistent) {
|
|
@@ -88,7 +112,7 @@ var VerticalNavigation = function (props) {
|
|
|
88
112
|
fill: theme.palette.mode === 'dark'
|
|
89
113
|
? theme.palette.primary.contrastText
|
|
90
114
|
: theme.palette.primary.main
|
|
91
|
-
} })) })), _jsx(ListItemText, { primary: logoText !== null && logoText !== void 0 ? logoText : '', isDrawerOpen: isDrawerOpen || isPersistent })] })) })), _jsxs("div", __assign({ className: 'wrapper' }, { children: [_jsxs(NotchContainer, __assign({ sx: { height: '85px', position: 'relative !important' } }, { children: [_jsx(NotchBackground, {}), !isPersistent && _jsx(NotchBackgroundClip, {}), _jsx(NotchSeemMask, {})] })), !isPersistent && _jsx(DrawerToggle, __assign({ onClick: toggleDrawer(!isDrawerOpen), "aria-label": isDrawerOpen ? 'Close Navigation
|
|
115
|
+
} })) })), _jsx(ListItemText, { primary: logoText !== null && logoText !== void 0 ? logoText : '', isDrawerOpen: isDrawerOpen || isPersistent })] })) })), _jsxs("div", __assign({ className: 'wrapper' }, { children: [_jsxs(NotchContainer, __assign({ sx: { height: '85px', position: 'relative !important' } }, { children: [_jsx(NotchBackground, {}), !isPersistent && _jsx(NotchBackgroundClip, {}), _jsx(NotchSeemMask, {})] })), !isPersistent && _jsx(DrawerToggle, __assign({ onClick: toggleDrawer(!isDrawerOpen), "aria-label": isDrawerOpen ? 'Close Navigation' : 'Open Navigation', "aria-expanded": isDrawerOpen ? 'true' : 'false', "aria-controls": "vertical-navigation" }, { children: _jsx(DrawerToggleHitboxContent, { children: isDrawerOpen
|
|
92
116
|
? (_jsx(ChevronLeft, { style: {
|
|
93
117
|
fontSize: '1.75rem',
|
|
94
118
|
height: '1.75rem',
|
|
@@ -109,7 +133,7 @@ var VerticalNavigation = function (props) {
|
|
|
109
133
|
top: '50%',
|
|
110
134
|
transform: 'translate(50%, -50%)',
|
|
111
135
|
width: '50px'
|
|
112
|
-
} }), _jsxs(DrawerToggle, __assign({ onClick: handleIsPersistent, "aria-label": isDrawerOpen ? 'Close Navigation
|
|
136
|
+
} }), _jsxs(DrawerToggle, __assign({ onClick: handleIsPersistent, "aria-label": isDrawerOpen ? 'Close Navigation' : 'Open Navigation', "aria-expanded": isDrawerOpen ? 'true' : 'false', "aria-controls": "vertical-navigation", style: {
|
|
113
137
|
display: 'none',
|
|
114
138
|
position: 'fixed',
|
|
115
139
|
top: '50%',
|
|
@@ -160,7 +184,7 @@ var VerticalNavigation = function (props) {
|
|
|
160
184
|
backgroundColor: theme.palette.mode === 'dark'
|
|
161
185
|
? theme.palette.primary.main
|
|
162
186
|
: theme.palette.background.paper
|
|
163
|
-
} }, { children: _jsxs(StyledNavSecondary, __assign({ "aria-label": 'Secondary
|
|
187
|
+
} }, { children: _jsxs(StyledNavSecondary, __assign({ "aria-label": 'Secondary' }, { children: [_jsx(StyledDivider, { isDrawerOpen: isDrawerOpen || isPersistent }), _jsxs(List, __assign({ style: {
|
|
164
188
|
width: DRAWER_WIDTH.Expanded,
|
|
165
189
|
backgroundColor: theme.palette.mode === 'dark'
|
|
166
190
|
? theme.palette.primary.main
|
|
@@ -175,7 +199,7 @@ var VerticalNavigation = function (props) {
|
|
|
175
199
|
justifyContent: 'center'
|
|
176
200
|
} }, { children: _jsx(AppSwitcher, { apiKey: streamHomeApiKey !== null && streamHomeApiKey !== void 0 ? streamHomeApiKey : '', baseUrl: streamHomeBaseUrl !== null && streamHomeBaseUrl !== void 0 ? streamHomeBaseUrl : '', token: streamHomeAccessToken !== null && streamHomeAccessToken !== void 0 ? streamHomeAccessToken : '' }) })) })), _jsx(ListItemText, { primary: 'App switcher', isDrawerOpen: isDrawerOpen || isPersistent })] })) })))
|
|
177
201
|
: null, secondaryItems && secondaryItems.length > 0 && secondaryItems.map(function (item, index) { return (_jsx(VerticalNavigationItem, __assign({}, item, { index: index, isDrawerOpen: isDrawerOpen || isPersistent, isSecondary: true }))); }), avatarName
|
|
178
|
-
? (_jsx(VerticalNavigationItem, { label: avatarName, icon: _jsx(Avatar, __assign({ style: {
|
|
202
|
+
? (_jsx(VerticalNavigationItem, { label: avatarName, "aria-controls": 'avatar-panel', icon: _jsx(Avatar, __assign({ style: {
|
|
179
203
|
// backgroundColor: mainTheme.colorButtonText,
|
|
180
204
|
// color: mainTheme.colorButton,
|
|
181
205
|
fontSize: '0.75rem',
|
|
@@ -187,14 +211,15 @@ var VerticalNavigation = function (props) {
|
|
|
187
211
|
padding: 0,
|
|
188
212
|
minHeight: 52,
|
|
189
213
|
transition: "max-height 225ms ".concat(motion.easeInOut, " 0ms !important")
|
|
190
|
-
}, hasFlyout: true, fullHeightFlyout: true, content: _jsx(AvatarPanel, { avatarName: avatarName }), isDrawerOpen: isDrawerOpen }))
|
|
214
|
+
}, hasFlyout: true, fullHeightFlyout: true, content: _jsx(AvatarPanel, __assign({ avatarName: avatarName }, rest)), isDrawerOpen: isDrawerOpen }))
|
|
191
215
|
: null] }))] })) }))] }))); };
|
|
192
|
-
return (_jsxs(StyledAside, { children: [_jsx(DrawerShadow, { className: 'drawerShadow', "aria-hidden": 'true', isDrawerOpen: isDrawerOpen || isPersistent, style: {
|
|
216
|
+
return (_jsxs(StyledAside, __assign({ "aria-label": "Site navigation" }, { children: [_jsx(DrawerShadow, { className: 'drawerShadow', "aria-hidden": 'true', isDrawerOpen: isDrawerOpen || isPersistent, style: {
|
|
193
217
|
display: isPersistent ? 'none' : 'block'
|
|
194
|
-
} }), _jsx(
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
218
|
+
} }), _jsx(StyledDrawer, __assign({ id: 'vertical-navigation', anchor: 'left', open: isDrawerOpen || isPersistent, onClose: toggleDrawer(false), variant: isDrawerOpen ? 'temporary' : 'permanent', ModalProps: {
|
|
219
|
+
keepMounted: true,
|
|
220
|
+
disablePortal: true,
|
|
221
|
+
open: isDrawerOpen,
|
|
222
|
+
onClose: toggleDrawer(false)
|
|
223
|
+
} }, { children: listContent() }))] })));
|
|
199
224
|
};
|
|
200
225
|
export default VerticalNavigation;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface IAvatarMenuItemProps {
|
|
3
|
+
label: string;
|
|
4
|
+
icon: any;
|
|
5
|
+
onClick: any;
|
|
6
|
+
}
|
|
7
|
+
export interface IAvatarPanelProps {
|
|
8
|
+
avatarName: string;
|
|
9
|
+
editProfileText?: string;
|
|
10
|
+
logoutText?: string;
|
|
11
|
+
avatarPanelOnClickSwitchDirection?: any;
|
|
12
|
+
avatarPanelOnClickLogout?: any;
|
|
13
|
+
avatarPanelOnClickViewProfile?: any;
|
|
14
|
+
avatarPanelViewProfileString?: string;
|
|
15
|
+
avatarPanelOnClickEditProfile?: any;
|
|
16
|
+
avatarPanelEditProfileString?: string;
|
|
17
|
+
avatarPanelMenuItems?: Array<IAvatarMenuItemProps>;
|
|
18
|
+
avatarPanelOnClickMainAction?: any;
|
|
19
|
+
avatarPanelMainActionString?: string;
|
|
20
|
+
avatarPanelSettingItems?: Array<IAvatarMenuItemProps>;
|
|
21
|
+
avatarPanelInvertNavString?: string;
|
|
22
|
+
}
|
|
23
|
+
declare const AvatarPanel: (props: IAvatarPanelProps) => React.ReactElement;
|
|
24
|
+
export default AvatarPanel;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
import React, { useEffect } from 'react';
|
|
14
|
+
import { Box, ButtonGroup, Button, Link, List, ListItem, ListItemIcon, ListItemText } from '../../../index';
|
|
15
|
+
import { StyledBox, StyledBoxProfile, StyledAvatarName, StyledAvatar, StyledOutlineButton, StyledBoxProfileEdit, StyledListItemButton } from './VerticalNavigationAvatarStyles';
|
|
16
|
+
import { useTheme } from '@mui/material/styles';
|
|
17
|
+
import EditIcon from '@mui/icons-material/Edit';
|
|
18
|
+
import LogoutIcon from '@mui/icons-material/Logout';
|
|
19
|
+
import { motion } from 'framer-motion';
|
|
20
|
+
import { motionParent, motionFadeIn, motionFadeInUp, motionWhileHover, motionWhileTap } from './VerticalNavigationMotion';
|
|
21
|
+
import { handleAvatarInitials } from '../../../utils/helpers';
|
|
22
|
+
import { Person, Settings } from '@mui/icons-material';
|
|
23
|
+
var AvatarPanel = function (props) {
|
|
24
|
+
var _a;
|
|
25
|
+
var theme = useTheme();
|
|
26
|
+
var avatarName = props.avatarName, avatarPanelOnClickLogout = props.avatarPanelOnClickLogout, logoutText = props.logoutText, avatarPanelOnClickViewProfile = props.avatarPanelOnClickViewProfile, avatarPanelViewProfileString = props.avatarPanelViewProfileString, avatarPanelOnClickEditProfile = props.avatarPanelOnClickEditProfile, avatarPanelEditProfileString = props.avatarPanelEditProfileString, avatarPanelMenuItems = props.avatarPanelMenuItems, avatarPanelOnClickMainAction = props.avatarPanelOnClickMainAction, avatarPanelMainActionString = props.avatarPanelMainActionString, avatarPanelSettingItems = props.avatarPanelSettingItems;
|
|
27
|
+
useEffect(function () { return setAvatarInitials(handleAvatarInitials(avatarName)); }, [
|
|
28
|
+
avatarName
|
|
29
|
+
]);
|
|
30
|
+
var _b = React.useState((_a = handleAvatarInitials(avatarName)) !== null && _a !== void 0 ? _a : 'AN'), avatarInitials = _b[0], setAvatarInitials = _b[1];
|
|
31
|
+
return (_jsxs(StyledBox
|
|
32
|
+
// TODO: add check for isAvatarOpen to trigger animation effects
|
|
33
|
+
// animate={ isAvatarOpen ? 'open' : 'closed' }
|
|
34
|
+
, __assign({
|
|
35
|
+
// TODO: add check for isAvatarOpen to trigger animation effects
|
|
36
|
+
// animate={ isAvatarOpen ? 'open' : 'closed' }
|
|
37
|
+
variants: motionParent }, { children: [avatarPanelOnClickLogout && (_jsx(Button
|
|
38
|
+
// @ts-expect-error
|
|
39
|
+
, __assign({
|
|
40
|
+
// @ts-expect-error
|
|
41
|
+
component: motion.button, variants: motionFadeIn, style: {
|
|
42
|
+
left: theme.direction === 'rtl' ? theme.spacing(1) : 'auto',
|
|
43
|
+
position: 'absolute',
|
|
44
|
+
right: theme.direction === 'rtl' ? 'auto' : theme.spacing(1),
|
|
45
|
+
top: theme.spacing(1)
|
|
46
|
+
}, onClick: avatarPanelOnClickLogout, startIcon: _jsx(LogoutIcon, {}), variant: 'text', color: 'inherit' }, { children: logoutText !== null && logoutText !== void 0 ? logoutText : 'Logout' }))), _jsxs(Box, __assign({ style: {
|
|
47
|
+
alignItems: 'center',
|
|
48
|
+
display: 'flex',
|
|
49
|
+
flexDirection: 'column'
|
|
50
|
+
} }, { children: [_jsxs(StyledBoxProfile, __assign({ variants: motionFadeInUp }, { children: [_jsx(StyledAvatar, __assign({ style: { marginRight: '0.5rem' } }, { children: avatarInitials })), _jsxs(StyledAvatarName, { children: [_jsx("span", __assign({ style: { fontWeight: 300 } }, { children: "Hi," })), " ", _jsx("strong", { children: avatarName.split(' ')[0] })] })] })), avatarPanelOnClickViewProfile && (_jsx(StyledBoxProfileEdit, __assign({ variants: motionFadeInUp, style: {
|
|
51
|
+
flexDirection: 'row',
|
|
52
|
+
marginBottom: theme.spacing(1)
|
|
53
|
+
} }, { children: _jsxs(ButtonGroup, __assign({ variant: "contained", "aria-label": "split button" }, { children: [_jsx(Button, __assign({ variant: 'contained', color: 'primary', size: 'medium', onClick: avatarPanelOnClickViewProfile, startIcon: _jsx(Person, {}) }, { children: avatarPanelViewProfileString !== null && avatarPanelViewProfileString !== void 0 ? avatarPanelViewProfileString : 'View Profile' })), avatarPanelOnClickEditProfile && (_jsx(Button, __assign({ size: 'medium', "aria-label": avatarPanelEditProfileString !== null && avatarPanelEditProfileString !== void 0 ? avatarPanelEditProfileString : 'Edit Profile', onClick: avatarPanelOnClickEditProfile }, { children: _jsx(EditIcon, {}) })))] })) })))] })), _jsxs(Box, __assign({ style: {
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
display: 'flex',
|
|
56
|
+
flexDirection: 'column'
|
|
57
|
+
} }, { children: [avatarPanelMenuItems && avatarPanelMenuItems.length > 0 && (_jsx(List, __assign({ style: {
|
|
58
|
+
marginBottom: theme.spacing(2),
|
|
59
|
+
maxWidth: '14rem'
|
|
60
|
+
} }, { children: avatarPanelMenuItems.map(function (avatarMenuItem) { return (_jsx(ListItem, __assign({ component: motion.div, variants: motionFadeInUp, whileHover: motionWhileHover, whileTap: motionWhileTap, disablePadding: true }, { children: _jsxs(StyledListItemButton
|
|
61
|
+
// TODO: figure out if these are links or buttons
|
|
62
|
+
// @ts-expect-error
|
|
63
|
+
, __assign({
|
|
64
|
+
// TODO: figure out if these are links or buttons
|
|
65
|
+
// @ts-expect-error
|
|
66
|
+
component: Link, role: 'link', onClick: avatarMenuItem.onClick }, { children: [_jsx(ListItemIcon, __assign({ "aria-hidden": true, style: {
|
|
67
|
+
minWidth: theme.spacing(5)
|
|
68
|
+
} }, { children: avatarMenuItem.icon })), _jsx(ListItemText, { primary: avatarMenuItem.label })] })) }))); }) }))), avatarPanelOnClickMainAction && _jsx(StyledOutlineButton
|
|
69
|
+
// @ts-expect-error
|
|
70
|
+
, __assign({
|
|
71
|
+
// @ts-expect-error
|
|
72
|
+
component: motion.button, variants: motionFadeInUp, disablePadding: true, variant: 'outlined', color: 'primary', size: 'medium', onClick: avatarPanelOnClickMainAction, startIcon: _jsx(Settings, {}) }, { children: avatarPanelMainActionString })), _jsx(List, __assign({ style: { marginBottom: theme.spacing(2) } }, { children: avatarPanelSettingItems &&
|
|
73
|
+
avatarPanelSettingItems.length > 0 &&
|
|
74
|
+
avatarPanelSettingItems.map(function (avatarMenuItem) { return (_jsx(ListItem, __assign({ component: motion.div, variants: motionFadeInUp, whileHover: motionWhileHover, whileTap: motionWhileTap, disablePadding: true }, { children: _jsxs(StyledListItemButton
|
|
75
|
+
// TODO: figure out if these are links or buttons
|
|
76
|
+
// @ts-expect-error
|
|
77
|
+
, __assign({
|
|
78
|
+
// TODO: figure out if these are links or buttons
|
|
79
|
+
// @ts-expect-error
|
|
80
|
+
component: Link, role: 'link', onClick: avatarMenuItem.onClick }, { children: [_jsx(ListItemIcon, __assign({ "aria-hidden": true, style: {
|
|
81
|
+
minWidth: theme.spacing(5)
|
|
82
|
+
} }, { children: avatarMenuItem.icon })), _jsx(ListItemText, { primary: avatarMenuItem.label })] })) }))); }) }))] }))] })));
|
|
83
|
+
};
|
|
84
|
+
export default AvatarPanel;
|