ece-docs-components 1.0.82 → 1.0.84

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.
@@ -33,6 +33,7 @@ const SidebarContainer = material.styled(material.Box, {
33
33
  position: "fixed",
34
34
  left: isOpen ? 0 : `-${EXPANDED_WIDTH}`,
35
35
  width: EXPANDED_WIDTH,
36
+ transition: "all 0.4s ease-out",
36
37
  },
37
38
  [theme.breakpoints.up("sm")]: {
38
39
  width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_SMALL,
@@ -50,7 +51,7 @@ const ToggleButton = material.styled(material.IconButton)(({ theme }) => ({
50
51
  }));
51
52
  const MenuItemButton = material.styled(material.ListItemButton, {
52
53
  shouldForwardProp: (prop) => prop !== "isOpen" && prop !== "isActive" && prop !== "isPolicyActive",
53
- })(({ theme, isActive, isOpen, isPolicyActive }) => ({
54
+ })(({ theme, isActive, isOpen, isPolicyActive, depth }) => ({
54
55
  borderRadius: isOpen
55
56
  ? `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`
56
57
  : theme.shape.borderRadius,
@@ -62,19 +63,13 @@ const MenuItemButton = material.styled(material.ListItemButton, {
62
63
  backgroundClip: "padding-box",
63
64
  backgroundOrigin: "border-box",
64
65
  "&:hover": {
65
- backgroundColor: `${theme.palette.primary.main}0D`,
66
+ backgroundColor: `#0000000D`,
66
67
  },
67
68
  ...(isActive && {
68
69
  backgroundColor: `${theme.palette.primary.main}1A`,
69
- "&:hover": {
70
- backgroundColor: `${theme.palette.primary.main}1A`,
71
- },
72
70
  }),
73
71
  ...(isPolicyActive && {
74
72
  backgroundColor: `#0000000D`,
75
- "&:hover": {
76
- backgroundColor: `#0000000D`,
77
- },
78
73
  }),
79
74
  }));
80
75
  const IconWrapper = material.styled(material.Box, {
@@ -87,7 +82,7 @@ const IconWrapper = material.styled(material.Box, {
87
82
  justifyContent: "center",
88
83
  backgroundColor: "transparent",
89
84
  }));
90
- const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand: onExpand, depth = 0, currentPath, }) => {
85
+ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand: onExpand, depth = 0, currentPath, openSidebar, }) => {
91
86
  // console.log(item.title, item.items);
92
87
  // Check visibility based on visibility state and isAdmin prop
93
88
  const isVisible = item.visibility === exports.Visibility.Admin
@@ -97,7 +92,7 @@ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand
97
92
  return null;
98
93
  }
99
94
  const theme = ThemeProvider.useTheme();
100
- const nestedPadding = depth > 1 ? 1 : 3 + depth;
95
+ // const nestedPadding = 1 + depth;
101
96
  const isExpanded = () => expandedSet.has(item.id);
102
97
  const toggleExpand = () => {
103
98
  if (!isExpanded()) {
@@ -111,15 +106,23 @@ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand
111
106
  const isActive = currentPath.includes(item.url) ||
112
107
  currentPath.includes(item.title.toLowerCase()) ||
113
108
  isExpanded();
114
- const isPolicyActive = currentPath.includes(item.url);
115
- return (jsxRuntime.jsxs(material.Box, { sx: { mb: depth > 0 ? 0 : 1 }, children: [jsxRuntime.jsxs(MenuItemButton, { disableRipple: true, isOpen: isOpen, onClick: () => {
109
+ const isPolicyActive = currentPath.includes(item.url) && depth > 0;
110
+ return (jsxRuntime.jsxs(material.Box, { sx: { mb: depth > 0 ? 0 : 1 }, children: [jsxRuntime.jsxs(MenuItemButton, { depth: depth, disableRipple: true, isOpen: isOpen, onClick: () => {
116
111
  if (item.url)
117
112
  onNavigate(item.url);
118
- else if (item.items)
119
- toggleExpand();
113
+ else if (item.items) {
114
+ if (openSidebar && !isOpen) {
115
+ if (!isExpanded())
116
+ toggleExpand();
117
+ openSidebar();
118
+ }
119
+ else {
120
+ toggleExpand();
121
+ }
122
+ }
120
123
  }, isActive: isActive, isPolicyActive: isPolicyActive, title: !isOpen ? item.title : undefined, sx: {
121
124
  ...(depth > 0 && {
122
- pl: nestedPadding,
125
+ pl: 2,
123
126
  }),
124
127
  }, children: [item.icon && (jsxRuntime.jsx(IconWrapper, { isOpen: isOpen, sx: { ml: isOpen ? 2 : 0 }, children: item.icon })), isOpen && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(material.ListItemText, { primary: item.title, slotProps: {
125
128
  primary: {
@@ -127,7 +130,7 @@ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand
127
130
  // textDecoration: isActive ? "underline" : "",
128
131
  fontWeight: isPolicyActive ? 700 : (depth > 0 ? 400 : 700)
129
132
  },
130
- width: 180 - nestedPadding - (item.items ? 32 : 0),
133
+ // width: 180 - 10 - (item.items ? 32 : 0),
131
134
  ...(depth > 0
132
135
  ? {
133
136
  fontSize: "0.875rem",
@@ -164,7 +167,7 @@ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand
164
167
  } })), jsxRuntime.jsx(material.List, { sx: { p: 0, mt: 1, mb: 1, flex: 1 }, children: item.items &&
165
168
  item.items.map((child) => (jsxRuntime.jsx(SidebarItem, { currentPath: currentPath, expandedSet: expandedSet, setExpand: onExpand, isOpen: isOpen, isAdmin: isAdmin, item: child, onNavigate: onNavigate, depth: depth + 1 }, child.id))) })] }) }))] }));
166
169
  };
167
- const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", onNavigate, items, isAdmin, currentPath, onOrgChange, hasMultipleOrganisations }) => {
170
+ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", onNavigate, items, isAdmin, currentPath, onOrgChange, hasMultipleOrganisations, }) => {
168
171
  const findExpandItems = (items) => {
169
172
  for (const item of items) {
170
173
  if (!item || item.items === undefined || item.items.length === 0) {
@@ -183,6 +186,7 @@ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n ac
183
186
  };
184
187
  const theme = ThemeProvider.useTheme();
185
188
  const [expandedSet, setExpanded] = React.useState(() => new Set(findExpandItems(items)));
189
+ const isMobile = !window.matchMedia(theme.breakpoints.up('lg').replace('@media ', '')).matches;
186
190
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isOpen && (jsxRuntime.jsx(material.Box, { sx: {
187
191
  position: "fixed",
188
192
  inset: 0,
@@ -214,7 +218,7 @@ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n ac
214
218
  whiteSpace: "pre-line",
215
219
  flex: 1,
216
220
  pr: 2,
217
- }, children: centreName ?? "Centre Name" }), jsxRuntime.jsx(ToggleButton, { onClick: () => onToggle(), sx: { ml: "auto" }, "aria-label": "Collapse sidebar", children: jsxRuntime.jsx(iconsMaterial.KeyboardDoubleArrowLeftRounded, { sx: { fontSize: 20 } }) })] }), hasMultipleOrganisations && (jsxRuntime.jsx(material.Box, { onClick: onOrgChange, sx: {
221
+ }, children: centreName ?? "Centre Name" }), jsxRuntime.jsx(ToggleButton, { onClick: () => onToggle(), sx: { ml: "auto" }, "aria-label": "Collapse sidebar", children: jsxRuntime.jsx(iconsMaterial.KeyboardDoubleArrowLeftRounded, { sx: { fontSize: 20 } }) })] }), jsxRuntime.jsx(material.Box, { onClick: onOrgChange, sx: {
218
222
  px: 2,
219
223
  py: 1,
220
224
  borderBottom: `1px solid ${theme.palette.dark.main}1A`,
@@ -225,14 +229,15 @@ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n ac
225
229
  alignItems: "center",
226
230
  width: EXPANDED_WIDTH,
227
231
  cursor: "pointer",
228
- }, children: jsxRuntime.jsxs(material.Box, { className: "org-change-content", sx: {
232
+ }, children: hasMultipleOrganisations && (jsxRuntime.jsxs(material.Box, { className: "org-change-content", sx: {
229
233
  display: "flex",
230
234
  flexDirection: "row",
231
235
  alignItems: "center",
232
236
  py: 1,
233
- }, children: [jsxRuntime.jsx(iconsMaterial.ImportExportRounded, { sx: { color: theme.palette.primary.main, mr: 1 } }), jsxRuntime.jsx(material.Typography, { sx: { color: theme.palette.primary.main }, children: "Change organisation" })] }) }))] })) : (jsxRuntime.jsx(material.Box, { sx: {
237
+ }, children: [jsxRuntime.jsx(iconsMaterial.ImportExportRounded, { sx: { color: theme.palette.primary.main, mr: 1 } }), jsxRuntime.jsx(material.Typography, { sx: { color: theme.palette.primary.main }, children: "Change organisation" })] })) })] })) : (jsxRuntime.jsx(material.Box, { sx: {
234
238
  px: 1,
235
239
  py: 3,
240
+ mb: 1,
236
241
  borderBottom: `1px solid ${theme.palette.dark.main}1A`,
237
242
  display: "flex",
238
243
  justifyContent: "center",
@@ -240,8 +245,13 @@ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n ac
240
245
  flex: 1,
241
246
  overflowY: "auto",
242
247
  px: isOpen ? 0 : 1,
243
- py: 3,
244
- }, children: jsxRuntime.jsx(material.List, { sx: { p: 0 }, children: items.map((item) => (jsxRuntime.jsx(SidebarItem, { currentPath: currentPath, expandedSet: expandedSet, setExpand: setExpanded, isOpen: isOpen, isAdmin: isAdmin, item: item, onNavigate: onNavigate }, item.id))) }) })] }) })] }));
248
+ scrollbarWidth: "thin",
249
+ pb: 3,
250
+ }, children: jsxRuntime.jsx(material.List, { sx: { p: 0 }, children: items.map((item) => (jsxRuntime.jsx(SidebarItem, { currentPath: currentPath, expandedSet: expandedSet, setExpand: setExpanded, isOpen: isOpen, isAdmin: isAdmin, item: item, onNavigate: (path) => {
251
+ if (isMobile && isOpen)
252
+ onToggle();
253
+ onNavigate(path);
254
+ }, openSidebar: onToggle }, item.id))) }) })] }) })] }));
245
255
  };
246
256
 
247
257
  exports.SidebarV2 = SidebarV2;
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarV2.js","sources":["../../../../src/components/SidebarV2.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Box,\r\n IconButton,\r\n Typography,\r\n List,\r\n ListItemButton,\r\n ListItemText,\r\n Collapse,\r\n styled,\r\n Divider,\r\n} from \"@mui/material\";\r\nimport { useTheme } from \"../ThemeProvider\";\r\nimport {\r\n ChevronRightRounded,\r\n ImportExportRounded,\r\n KeyboardDoubleArrowLeftRounded,\r\n KeyboardDoubleArrowRightRounded,\r\n} from \"@mui/icons-material\";\r\n\r\nconst EXPANDED_WIDTH = \"288px\";\r\nconst COLLAPSED_WIDTH_SMALL = \"80px\";\r\nconst COLLAPSED_WIDTH_DEFAULT = \"64px\";\r\n\r\nexport enum Visibility {\r\n Admin = \"Admin\",\r\n Contributor = \"Contributor\",\r\n Community = \"Community\",\r\n}\r\n\r\nexport interface MenuItem {\r\n id: string | number;\r\n title: string;\r\n icon?: React.ReactNode;\r\n visibility?: Visibility;\r\n url?: string;\r\n items?: MenuItem[];\r\n}\r\n\r\nconst SidebarContainer = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\",\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n height: \"100vh\",\r\n position: \"sticky\",\r\n top: 0,\r\n paddingLeft: 0,\r\n overflow: \"hidden\",\r\n backgroundColor: \"#fff\",\r\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n transition: \"all 0.15s ease-out\",\r\n width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_DEFAULT,\r\n zIndex: 50,\r\n [theme.breakpoints.down(\"md\")]: {\r\n position: \"fixed\",\r\n left: isOpen ? 0 : `-${EXPANDED_WIDTH}`,\r\n width: EXPANDED_WIDTH,\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_SMALL,\r\n },\r\n}));\r\n\r\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: \"#4D3019\",\r\n color: \"#fff\",\r\n \"&:hover\": {\r\n backgroundColor: \"#3d2614\",\r\n },\r\n}));\r\n\r\nconst MenuItemButton = styled(ListItemButton, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\" && prop !== \"isActive\" && prop !== \"isPolicyActive\",\r\n})<{ isActive?: boolean; isOpen: boolean, isPolicyActive?: boolean }>(({ theme, isActive, isOpen, isPolicyActive }) => ({\r\n borderRadius: isOpen\r\n ? `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`\r\n : theme.shape.borderRadius,\r\n paddingLeft: 0,\r\n paddingRight: isOpen ? theme.spacing(2) : 0,\r\n marginRight: isOpen ? 8 : 0,\r\n minHeight: 64,\r\n justifyContent: isOpen ? \"flex-start\" : \"center\",\r\n backgroundClip: \"padding-box\",\r\n backgroundOrigin: \"border-box\",\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.primary.main}0D`,\r\n },\r\n ...(isActive && {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n },\r\n }),\r\n ...(isPolicyActive && {\r\n backgroundColor: `#0000000D`,\r\n \"&:hover\": {\r\n backgroundColor: `#0000000D`,\r\n },\r\n }),\r\n}));\r\n\r\nconst IconWrapper = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\",\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n width: isOpen ? 32 : 40,\r\n height: isOpen ? 32 : 40,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n backgroundColor: \"transparent\",\r\n}));\r\n\r\nconst SidebarItem = ({\r\n isOpen,\r\n isAdmin,\r\n item,\r\n onNavigate,\r\n expandedSet,\r\n setExpand: onExpand,\r\n depth = 0,\r\n currentPath,\r\n}: {\r\n isOpen: boolean;\r\n isAdmin: boolean;\r\n item: MenuItem;\r\n onNavigate: (path: string) => void;\r\n expandedSet: Set<string | number>;\r\n setExpand: React.Dispatch<React.SetStateAction<Set<string | number>>>;\r\n depth?: number;\r\n currentPath: string;\r\n}) => {\r\n // console.log(item.title, item.items);\r\n // Check visibility based on visibility state and isAdmin prop\r\n const isVisible =\r\n item.visibility === Visibility.Admin\r\n ? !!isAdmin\r\n : item.visibility === Visibility.Contributor || !item.visibility;\r\n if (!isVisible) {\r\n return null;\r\n }\r\n\r\n const theme = useTheme();\r\n const nestedPadding = depth > 1 ? 1 : 3 + depth;\r\n\r\n const isExpanded = () => expandedSet.has(item.id);\r\n\r\n const toggleExpand = () => {\r\n if (!isExpanded()) {\r\n onExpand(new Set([...expandedSet, item.id]));\r\n } else {\r\n expandedSet.delete(item.id);\r\n onExpand(new Set(expandedSet));\r\n }\r\n };\r\n\r\n const isActive =\r\n currentPath.includes(item.url as string) ||\r\n currentPath.includes(item.title.toLowerCase() as string) ||\r\n isExpanded();\r\n\r\n const isPolicyActive = currentPath.includes(item.url as string)\r\n\r\n return (\r\n <Box sx={{ mb: depth > 0 ? 0 : 1 }}>\r\n <MenuItemButton\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n if (item.url) onNavigate(item.url);\r\n else if (item.items) toggleExpand();\r\n }}\r\n isActive={isActive}\r\n isPolicyActive={isPolicyActive}\r\n title={!isOpen ? item.title : undefined}\r\n sx={{\r\n ...(depth > 0 && {\r\n pl: nestedPadding,\r\n }),\r\n }}\r\n >\r\n {item.icon && (\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n {item.icon}\r\n </IconWrapper>\r\n )}\r\n {isOpen && (\r\n <>\r\n <ListItemText\r\n primary={item.title}\r\n slotProps={{\r\n primary: {\r\n style: { \r\n // textDecoration: isActive ? \"underline\" : \"\",\r\n fontWeight: isPolicyActive ? 700 : (depth > 0 ? 400 : 700)},\r\n width: 180 - nestedPadding - (item.items ? 32 : 0),\r\n ...(depth > 0\r\n ? {\r\n fontSize: \"0.875rem\",\r\n }\r\n : {\r\n fontSize: \"1rem\",\r\n fontWeight: 700,\r\n }),\r\n },\r\n }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n {item.items && item.items.length > 0 && (\r\n <IconButton\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (item.items) toggleExpand();\r\n }}\r\n disableRipple\r\n sx={{\r\n ml: 0.5,\r\n borderRadius: 1,\r\n width: 32,\r\n height: 32,\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.primary.main}1F`,\r\n },\r\n }}\r\n >\r\n <ChevronRightRounded\r\n sx={{\r\n fontSize: 16,\r\n color: \"#4D3019\",\r\n transition: \"transform 0.1s\",\r\n transform: isExpanded() ? \"rotate(90deg)\" : \"rotate(0deg)\",\r\n }}\r\n />\r\n </IconButton>\r\n )}\r\n </>\r\n )}\r\n </MenuItemButton>\r\n {isExpanded() && isOpen && (\r\n <Collapse in={true} timeout=\"auto\">\r\n <Box display='flex' flexDirection='row'>\r\n {depth > 0 && (\r\n <Divider \r\n orientation=\"vertical\" \r\n flexItem \r\n sx={{ \r\n ml: 2,\r\n borderColor: `#00000033`,\r\n borderWidth: '1px',\r\n borderRightWidth: '1px',\r\n mt: 1,\r\n mb: 1\r\n }}\r\n />\r\n )}\r\n <List sx={{ p: 0, mt: 1, mb:1, flex: 1 }}>\r\n {item.items &&\r\n item.items.map((child) => (\r\n <SidebarItem\r\n key={child.id}\r\n currentPath={currentPath}\r\n expandedSet={expandedSet}\r\n setExpand={onExpand}\r\n isOpen={isOpen}\r\n isAdmin={isAdmin}\r\n item={child}\r\n onNavigate={onNavigate}\r\n depth={depth + 1}\r\n />\r\n ))}\r\n </List>\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};\r\n\r\nexport const SidebarV2 = ({\r\n isOpen,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n onNavigate,\r\n items,\r\n isAdmin,\r\n currentPath,\r\n onOrgChange,\r\n hasMultipleOrganisations\r\n}: {\r\n isOpen: boolean;\r\n onToggle: () => void;\r\n items: MenuItem[];\r\n centreName?: string;\r\n onNavigate: (path: string) => void;\r\n isAdmin: boolean;\r\n currentPath: string;\r\n onOrgChange: () => void;\r\n hasMultipleOrganisations: boolean;\r\n}) => {\r\n const findExpandItems = (items: MenuItem[]): (string | number)[] => {\r\n for (const item of items) {\r\n if (!item || item.items === undefined || item.items.length === 0) {\r\n continue;\r\n }\r\n const url = item.url?.replace(/-\\d+$/, '')\r\n const isActive =\r\n currentPath.includes(url as string) ||\r\n currentPath.includes(item.title.toLowerCase() as string);\r\n if (isActive) {\r\n return item.items\r\n ? [item.id, ...findExpandItems(item.items)]\r\n : [item.id];\r\n }\r\n }\r\n return [];\r\n };\r\n \r\n const theme = useTheme();\r\n const [expandedSet, setExpanded] = useState<Set<string | number>>(\r\n () => new Set(findExpandItems(items)),\r\n );\r\n\r\n return (\r\n <>\r\n {isOpen && (\r\n <Box\r\n sx={{\r\n position: \"fixed\",\r\n inset: 0,\r\n bgcolor: \"rgba(0, 0, 0, 0.5)\",\r\n zIndex: 40,\r\n display: { xs: \"block\", md: \"none\" },\r\n }}\r\n onClick={onToggle}\r\n />\r\n )}\r\n <SidebarContainer isOpen={isOpen}>\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", height: \"100%\" }}>\r\n {/* Sidebar Header */}\r\n {isOpen ? (\r\n <Box\r\n sx={{\r\n px: 2,\r\n py: 3,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n px: 2,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n }}\r\n >\r\n <Typography\r\n variant=\"h6\"\r\n sx={{\r\n width: \"180px\",\r\n fontSize: \"18px\",\r\n fontWeight: 700,\r\n color: \"#4D3019\",\r\n whiteSpace: \"pre-line\",\r\n flex: 1,\r\n pr: 2,\r\n }}\r\n >\r\n {centreName ?? \"Centre Name\"}\r\n </Typography>\r\n\r\n <ToggleButton\r\n onClick={() => onToggle()}\r\n sx={{ ml: \"auto\" }}\r\n aria-label=\"Collapse sidebar\"\r\n >\r\n <KeyboardDoubleArrowLeftRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n {hasMultipleOrganisations && (\r\n <Box\r\n onClick={onOrgChange}\r\n sx={{\r\n px: 2,\r\n py: 1,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n <Box\r\n className=\"org-change-content\"\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n py: 1,\r\n }}\r\n >\r\n <ImportExportRounded \r\n sx={{ color: theme.palette.primary.main, mr: 1 }} \r\n />\r\n <Typography sx={{ color: theme.palette.primary.main }}>\r\n Change organisation\r\n </Typography>\r\n </Box>\r\n </Box>\r\n )}\r\n </Box>\r\n ) : (\r\n <Box\r\n sx={{\r\n px: 1,\r\n py: 3,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n }}\r\n >\r\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\r\n <KeyboardDoubleArrowRightRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n )}\r\n\r\n {/* Sidebar Items */}\r\n <Box\r\n sx={{\r\n flex: 1,\r\n overflowY: \"auto\",\r\n px: isOpen ? 0 : 1,\r\n py: 3,\r\n }}\r\n >\r\n <List sx={{ p: 0 }}>\r\n {items.map((item) => (\r\n <SidebarItem\r\n currentPath={currentPath}\r\n key={item.id}\r\n expandedSet={expandedSet}\r\n setExpand={setExpanded}\r\n isOpen={isOpen}\r\n isAdmin={isAdmin}\r\n item={item}\r\n onNavigate={onNavigate}\r\n />\r\n ))}\r\n </List>\r\n </Box>\r\n </Box>\r\n </SidebarContainer>\r\n </>\r\n );\r\n};\r\n"],"names":["Visibility","styled","Box","IconButton","ListItemButton","useTheme","_jsxs","_jsx","ListItemText","ChevronRightRounded","Collapse","Divider","List","useState","Typography","KeyboardDoubleArrowLeftRounded","ImportExportRounded","KeyboardDoubleArrowRightRounded"],"mappings":"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"}
1
+ {"version":3,"file":"SidebarV2.js","sources":["../../../../src/components/SidebarV2.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Box,\r\n IconButton,\r\n Typography,\r\n List,\r\n ListItemButton,\r\n ListItemText,\r\n Collapse,\r\n styled,\r\n Divider,\r\n} from \"@mui/material\";\r\nimport { useTheme } from \"../ThemeProvider\";\r\nimport {\r\n ChevronRightRounded,\r\n ImportExportRounded,\r\n KeyboardDoubleArrowLeftRounded,\r\n KeyboardDoubleArrowRightRounded,\r\n} from \"@mui/icons-material\";\r\n\r\nconst EXPANDED_WIDTH = \"288px\";\r\nconst COLLAPSED_WIDTH_SMALL = \"80px\";\r\nconst COLLAPSED_WIDTH_DEFAULT = \"64px\";\r\n\r\nexport enum Visibility {\r\n Admin = \"Admin\",\r\n Contributor = \"Contributor\",\r\n Community = \"Community\",\r\n}\r\n\r\nexport interface MenuItem {\r\n id: string | number;\r\n title: string;\r\n icon?: React.ReactNode;\r\n visibility?: Visibility;\r\n url?: string;\r\n items?: MenuItem[];\r\n}\r\n\r\nconst SidebarContainer = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\",\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n height: \"100vh\",\r\n position: \"sticky\",\r\n top: 0,\r\n paddingLeft: 0,\r\n overflow: \"hidden\",\r\n backgroundColor: \"#fff\",\r\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n transition: \"all 0.15s ease-out\",\r\n width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_DEFAULT,\r\n zIndex: 50,\r\n [theme.breakpoints.down(\"md\")]: {\r\n position: \"fixed\",\r\n left: isOpen ? 0 : `-${EXPANDED_WIDTH}`,\r\n width: EXPANDED_WIDTH,\r\n transition: \"all 0.4s ease-out\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_SMALL,\r\n },\r\n}));\r\n\r\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: \"#4D3019\",\r\n color: \"#fff\",\r\n \"&:hover\": {\r\n backgroundColor: \"#3d2614\",\r\n },\r\n}));\r\n\r\nconst MenuItemButton = styled(ListItemButton, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\" && prop !== \"isActive\" && prop !== \"isPolicyActive\",\r\n})<{ isActive?: boolean; isOpen: boolean, isPolicyActive?: boolean, depth: number }>(({ theme, isActive, isOpen, isPolicyActive, depth }) => ({\r\n borderRadius: isOpen\r\n ? `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`\r\n : theme.shape.borderRadius,\r\n paddingLeft: 0,\r\n paddingRight: isOpen ? theme.spacing(2) : 0,\r\n marginRight: isOpen ? 8 : 0,\r\n minHeight: 64,\r\n justifyContent: isOpen ? \"flex-start\" : \"center\",\r\n backgroundClip: \"padding-box\",\r\n backgroundOrigin: \"border-box\",\r\n \"&:hover\": {\r\n backgroundColor: `#0000000D`,\r\n },\r\n ...(isActive && {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n }),\r\n ...(isPolicyActive && {\r\n backgroundColor: `#0000000D`,\r\n }),\r\n}));\r\n\r\nconst IconWrapper = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\",\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n width: isOpen ? 32 : 40,\r\n height: isOpen ? 32 : 40,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n backgroundColor: \"transparent\",\r\n}));\r\n\r\nconst SidebarItem = ({\r\n isOpen,\r\n isAdmin,\r\n item,\r\n onNavigate,\r\n expandedSet,\r\n setExpand: onExpand,\r\n depth = 0,\r\n currentPath,\r\n openSidebar,\r\n}: {\r\n isOpen: boolean;\r\n isAdmin: boolean;\r\n item: MenuItem;\r\n onNavigate: (path: string) => void;\r\n expandedSet: Set<string | number>;\r\n setExpand: React.Dispatch<React.SetStateAction<Set<string | number>>>;\r\n depth?: number;\r\n currentPath: string;\r\n openSidebar?: () => void,\r\n}) => {\r\n // console.log(item.title, item.items);\r\n // Check visibility based on visibility state and isAdmin prop\r\n const isVisible =\r\n item.visibility === Visibility.Admin\r\n ? !!isAdmin\r\n : item.visibility === Visibility.Contributor || !item.visibility;\r\n if (!isVisible) {\r\n return null;\r\n }\r\n\r\n const theme = useTheme();\r\n // const nestedPadding = 1 + depth;\r\n\r\n const isExpanded = () => expandedSet.has(item.id);\r\n\r\n const toggleExpand = () => {\r\n if (!isExpanded()) {\r\n onExpand(new Set([...expandedSet, item.id]));\r\n } else {\r\n expandedSet.delete(item.id);\r\n onExpand(new Set(expandedSet));\r\n }\r\n };\r\n\r\n const isActive =\r\n currentPath.includes(item.url as string) ||\r\n currentPath.includes(item.title.toLowerCase() as string) ||\r\n isExpanded();\r\n\r\n const isPolicyActive = currentPath.includes(item.url as string) && depth > 0;\r\n\r\n return (\r\n <Box sx={{ mb: depth > 0 ? 0 : 1 }}>\r\n <MenuItemButton\r\n depth={depth}\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n if (item.url) onNavigate(item.url)\r\n else if (item.items) {\r\n if (openSidebar && !isOpen) {\r\n if (!isExpanded())\r\n toggleExpand();\r\n openSidebar();\r\n } else {\r\n toggleExpand();\r\n }\r\n }\r\n }}\r\n isActive={isActive}\r\n isPolicyActive={isPolicyActive}\r\n title={!isOpen ? item.title : undefined}\r\n sx={{\r\n ...(depth > 0 && {\r\n pl: 2,\r\n }),\r\n }}\r\n >\r\n {item.icon && (\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n {item.icon}\r\n </IconWrapper>\r\n )}\r\n {isOpen && (\r\n <>\r\n <ListItemText\r\n primary={item.title}\r\n slotProps={{\r\n primary: {\r\n style: { \r\n // textDecoration: isActive ? \"underline\" : \"\",\r\n fontWeight: isPolicyActive ? 700 : (depth > 0 ? 400 : 700)},\r\n // width: 180 - 10 - (item.items ? 32 : 0),\r\n ...(depth > 0\r\n ? {\r\n fontSize: \"0.875rem\",\r\n }\r\n : {\r\n fontSize: \"1rem\",\r\n fontWeight: 700,\r\n }),\r\n },\r\n }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n {item.items && item.items.length > 0 && (\r\n <IconButton\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (item.items) toggleExpand();\r\n }}\r\n disableRipple\r\n sx={{\r\n ml: 0.5,\r\n borderRadius: 1,\r\n width: 32,\r\n height: 32,\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.primary.main}1F`,\r\n },\r\n }}\r\n >\r\n <ChevronRightRounded\r\n sx={{\r\n fontSize: 16,\r\n color: \"#4D3019\",\r\n transition: \"transform 0.1s\",\r\n transform: isExpanded() ? \"rotate(90deg)\" : \"rotate(0deg)\",\r\n }}\r\n />\r\n </IconButton>\r\n )}\r\n </>\r\n )}\r\n </MenuItemButton>\r\n {isExpanded() && isOpen && (\r\n <Collapse in={true} timeout=\"auto\">\r\n <Box display='flex' flexDirection='row'>\r\n {depth > 0 && (\r\n <Divider \r\n orientation=\"vertical\" \r\n flexItem \r\n sx={{ \r\n ml: 2,\r\n borderColor: `#00000033`,\r\n borderWidth: '1px',\r\n borderRightWidth: '1px',\r\n mt: 1,\r\n mb: 1\r\n }}\r\n />\r\n )}\r\n <List sx={{ p: 0, mt: 1, mb:1, flex: 1 }}>\r\n {item.items &&\r\n item.items.map((child) => (\r\n <SidebarItem\r\n key={child.id}\r\n currentPath={currentPath}\r\n expandedSet={expandedSet}\r\n setExpand={onExpand}\r\n isOpen={isOpen}\r\n isAdmin={isAdmin}\r\n item={child}\r\n onNavigate={onNavigate}\r\n depth={depth + 1}\r\n />\r\n ))}\r\n </List>\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};\r\n\r\nexport const SidebarV2 = ({\r\n isOpen,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n onNavigate,\r\n items,\r\n isAdmin,\r\n currentPath,\r\n onOrgChange,\r\n hasMultipleOrganisations,\r\n}: {\r\n isOpen: boolean;\r\n onToggle: () => void;\r\n items: MenuItem[];\r\n centreName?: string;\r\n onNavigate: (path: string) => void;\r\n isAdmin: boolean;\r\n currentPath: string;\r\n onOrgChange: () => void;\r\n hasMultipleOrganisations: boolean;\r\n}) => {\r\n const findExpandItems = (items: MenuItem[]): (string | number)[] => {\r\n for (const item of items) {\r\n if (!item || item.items === undefined || item.items.length === 0) {\r\n continue;\r\n }\r\n const url = item.url?.replace(/-\\d+$/, '')\r\n const isActive =\r\n currentPath.includes(url as string) ||\r\n currentPath.includes(item.title.toLowerCase() as string);\r\n if (isActive) {\r\n return item.items\r\n ? [item.id, ...findExpandItems(item.items)]\r\n : [item.id];\r\n }\r\n }\r\n return [];\r\n };\r\n \r\n const theme = useTheme();\r\n const [expandedSet, setExpanded] = useState<Set<string | number>>(\r\n () => new Set(findExpandItems(items)),\r\n );\r\n const isMobile = !window.matchMedia(theme.breakpoints.up('lg').replace('@media ', '')).matches;\r\n\r\n return (\r\n <>\r\n {isOpen && (\r\n <Box\r\n sx={{\r\n position: \"fixed\",\r\n inset: 0,\r\n bgcolor: \"rgba(0, 0, 0, 0.5)\",\r\n zIndex: 40,\r\n display: { xs: \"block\", md: \"none\" },\r\n }}\r\n onClick={onToggle}\r\n />\r\n )}\r\n <SidebarContainer isOpen={isOpen}>\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", height: \"100%\" }}>\r\n {/* Sidebar Header */}\r\n {isOpen ? (\r\n <Box\r\n sx={{\r\n px: 2,\r\n py: 3,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n px: 2,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n }}\r\n >\r\n <Typography\r\n variant=\"h6\"\r\n sx={{\r\n width: \"180px\",\r\n fontSize: \"18px\",\r\n fontWeight: 700,\r\n color: \"#4D3019\",\r\n whiteSpace: \"pre-line\",\r\n flex: 1,\r\n pr: 2,\r\n }}\r\n >\r\n {centreName ?? \"Centre Name\"}\r\n </Typography>\r\n\r\n <ToggleButton\r\n onClick={() => onToggle()}\r\n sx={{ ml: \"auto\" }}\r\n aria-label=\"Collapse sidebar\"\r\n >\r\n <KeyboardDoubleArrowLeftRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n <Box\r\n onClick={onOrgChange}\r\n sx={{\r\n px: 2,\r\n py: 1,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n {hasMultipleOrganisations && (\r\n <Box\r\n className=\"org-change-content\"\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n py: 1,\r\n }}\r\n >\r\n <ImportExportRounded \r\n sx={{ color: theme.palette.primary.main, mr: 1 }} \r\n />\r\n <Typography sx={{ color: theme.palette.primary.main }}>\r\n Change organisation\r\n </Typography>\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n ) : (\r\n <Box\r\n sx={{\r\n px: 1,\r\n py: 3,\r\n mb: 1,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n }}\r\n >\r\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\r\n <KeyboardDoubleArrowRightRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n )}\r\n\r\n {/* Sidebar Items */}\r\n <Box\r\n sx={{\r\n flex: 1,\r\n overflowY: \"auto\",\r\n px: isOpen ? 0 : 1,\r\n scrollbarWidth: \"thin\",\r\n pb: 3,\r\n }}\r\n >\r\n <List sx={{ p: 0 }}>\r\n {items.map((item) => (\r\n <SidebarItem\r\n currentPath={currentPath}\r\n key={item.id}\r\n expandedSet={expandedSet}\r\n setExpand={setExpanded}\r\n isOpen={isOpen}\r\n isAdmin={isAdmin}\r\n item={item}\r\n onNavigate={(path: string) => {\r\n if (isMobile && isOpen) onToggle();\r\n onNavigate(path);\r\n }}\r\n openSidebar={onToggle}\r\n />\r\n ))}\r\n </List>\r\n </Box>\r\n </Box>\r\n </SidebarContainer>\r\n </>\r\n );\r\n};\r\n"],"names":["Visibility","styled","Box","IconButton","ListItemButton","useTheme","_jsxs","_jsx","ListItemText","ChevronRightRounded","Collapse","Divider","List","useState","Typography","KeyboardDoubleArrowLeftRounded","ImportExportRounded","KeyboardDoubleArrowRightRounded"],"mappings":"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"}
@@ -12,7 +12,7 @@ export interface MenuItem {
12
12
  url?: string;
13
13
  items?: MenuItem[];
14
14
  }
15
- export declare const SidebarV2: ({ isOpen, onToggle, centreName, onNavigate, items, isAdmin, currentPath, onOrgChange, hasMultipleOrganisations }: {
15
+ export declare const SidebarV2: ({ isOpen, onToggle, centreName, onNavigate, items, isAdmin, currentPath, onOrgChange, hasMultipleOrganisations, }: {
16
16
  isOpen: boolean;
17
17
  onToggle: () => void;
18
18
  items: MenuItem[];
@@ -31,6 +31,7 @@ const SidebarContainer = styled(Box, {
31
31
  position: "fixed",
32
32
  left: isOpen ? 0 : `-${EXPANDED_WIDTH}`,
33
33
  width: EXPANDED_WIDTH,
34
+ transition: "all 0.4s ease-out",
34
35
  },
35
36
  [theme.breakpoints.up("sm")]: {
36
37
  width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_SMALL,
@@ -48,7 +49,7 @@ const ToggleButton = styled(IconButton)(({ theme }) => ({
48
49
  }));
49
50
  const MenuItemButton = styled(ListItemButton, {
50
51
  shouldForwardProp: (prop) => prop !== "isOpen" && prop !== "isActive" && prop !== "isPolicyActive",
51
- })(({ theme, isActive, isOpen, isPolicyActive }) => ({
52
+ })(({ theme, isActive, isOpen, isPolicyActive, depth }) => ({
52
53
  borderRadius: isOpen
53
54
  ? `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`
54
55
  : theme.shape.borderRadius,
@@ -60,19 +61,13 @@ const MenuItemButton = styled(ListItemButton, {
60
61
  backgroundClip: "padding-box",
61
62
  backgroundOrigin: "border-box",
62
63
  "&:hover": {
63
- backgroundColor: `${theme.palette.primary.main}0D`,
64
+ backgroundColor: `#0000000D`,
64
65
  },
65
66
  ...(isActive && {
66
67
  backgroundColor: `${theme.palette.primary.main}1A`,
67
- "&:hover": {
68
- backgroundColor: `${theme.palette.primary.main}1A`,
69
- },
70
68
  }),
71
69
  ...(isPolicyActive && {
72
70
  backgroundColor: `#0000000D`,
73
- "&:hover": {
74
- backgroundColor: `#0000000D`,
75
- },
76
71
  }),
77
72
  }));
78
73
  const IconWrapper = styled(Box, {
@@ -85,7 +80,7 @@ const IconWrapper = styled(Box, {
85
80
  justifyContent: "center",
86
81
  backgroundColor: "transparent",
87
82
  }));
88
- const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand: onExpand, depth = 0, currentPath, }) => {
83
+ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand: onExpand, depth = 0, currentPath, openSidebar, }) => {
89
84
  // console.log(item.title, item.items);
90
85
  // Check visibility based on visibility state and isAdmin prop
91
86
  const isVisible = item.visibility === Visibility.Admin
@@ -95,7 +90,7 @@ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand
95
90
  return null;
96
91
  }
97
92
  const theme = useTheme();
98
- const nestedPadding = depth > 1 ? 1 : 3 + depth;
93
+ // const nestedPadding = 1 + depth;
99
94
  const isExpanded = () => expandedSet.has(item.id);
100
95
  const toggleExpand = () => {
101
96
  if (!isExpanded()) {
@@ -109,15 +104,23 @@ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand
109
104
  const isActive = currentPath.includes(item.url) ||
110
105
  currentPath.includes(item.title.toLowerCase()) ||
111
106
  isExpanded();
112
- const isPolicyActive = currentPath.includes(item.url);
113
- return (jsxs(Box, { sx: { mb: depth > 0 ? 0 : 1 }, children: [jsxs(MenuItemButton, { disableRipple: true, isOpen: isOpen, onClick: () => {
107
+ const isPolicyActive = currentPath.includes(item.url) && depth > 0;
108
+ return (jsxs(Box, { sx: { mb: depth > 0 ? 0 : 1 }, children: [jsxs(MenuItemButton, { depth: depth, disableRipple: true, isOpen: isOpen, onClick: () => {
114
109
  if (item.url)
115
110
  onNavigate(item.url);
116
- else if (item.items)
117
- toggleExpand();
111
+ else if (item.items) {
112
+ if (openSidebar && !isOpen) {
113
+ if (!isExpanded())
114
+ toggleExpand();
115
+ openSidebar();
116
+ }
117
+ else {
118
+ toggleExpand();
119
+ }
120
+ }
118
121
  }, isActive: isActive, isPolicyActive: isPolicyActive, title: !isOpen ? item.title : undefined, sx: {
119
122
  ...(depth > 0 && {
120
- pl: nestedPadding,
123
+ pl: 2,
121
124
  }),
122
125
  }, children: [item.icon && (jsx(IconWrapper, { isOpen: isOpen, sx: { ml: isOpen ? 2 : 0 }, children: item.icon })), isOpen && (jsxs(Fragment, { children: [jsx(ListItemText, { primary: item.title, slotProps: {
123
126
  primary: {
@@ -125,7 +128,7 @@ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand
125
128
  // textDecoration: isActive ? "underline" : "",
126
129
  fontWeight: isPolicyActive ? 700 : (depth > 0 ? 400 : 700)
127
130
  },
128
- width: 180 - nestedPadding - (item.items ? 32 : 0),
131
+ // width: 180 - 10 - (item.items ? 32 : 0),
129
132
  ...(depth > 0
130
133
  ? {
131
134
  fontSize: "0.875rem",
@@ -162,7 +165,7 @@ const SidebarItem = ({ isOpen, isAdmin, item, onNavigate, expandedSet, setExpand
162
165
  } })), jsx(List, { sx: { p: 0, mt: 1, mb: 1, flex: 1 }, children: item.items &&
163
166
  item.items.map((child) => (jsx(SidebarItem, { currentPath: currentPath, expandedSet: expandedSet, setExpand: onExpand, isOpen: isOpen, isAdmin: isAdmin, item: child, onNavigate: onNavigate, depth: depth + 1 }, child.id))) })] }) }))] }));
164
167
  };
165
- const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", onNavigate, items, isAdmin, currentPath, onOrgChange, hasMultipleOrganisations }) => {
168
+ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n across two lines", onNavigate, items, isAdmin, currentPath, onOrgChange, hasMultipleOrganisations, }) => {
166
169
  const findExpandItems = (items) => {
167
170
  for (const item of items) {
168
171
  if (!item || item.items === undefined || item.items.length === 0) {
@@ -181,6 +184,7 @@ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n ac
181
184
  };
182
185
  const theme = useTheme();
183
186
  const [expandedSet, setExpanded] = useState(() => new Set(findExpandItems(items)));
187
+ const isMobile = !window.matchMedia(theme.breakpoints.up('lg').replace('@media ', '')).matches;
184
188
  return (jsxs(Fragment, { children: [isOpen && (jsx(Box, { sx: {
185
189
  position: "fixed",
186
190
  inset: 0,
@@ -212,7 +216,7 @@ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n ac
212
216
  whiteSpace: "pre-line",
213
217
  flex: 1,
214
218
  pr: 2,
215
- }, children: centreName ?? "Centre Name" }), jsx(ToggleButton, { onClick: () => onToggle(), sx: { ml: "auto" }, "aria-label": "Collapse sidebar", children: jsx(KeyboardDoubleArrowLeftRounded, { sx: { fontSize: 20 } }) })] }), hasMultipleOrganisations && (jsx(Box, { onClick: onOrgChange, sx: {
219
+ }, children: centreName ?? "Centre Name" }), jsx(ToggleButton, { onClick: () => onToggle(), sx: { ml: "auto" }, "aria-label": "Collapse sidebar", children: jsx(KeyboardDoubleArrowLeftRounded, { sx: { fontSize: 20 } }) })] }), jsx(Box, { onClick: onOrgChange, sx: {
216
220
  px: 2,
217
221
  py: 1,
218
222
  borderBottom: `1px solid ${theme.palette.dark.main}1A`,
@@ -223,14 +227,15 @@ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n ac
223
227
  alignItems: "center",
224
228
  width: EXPANDED_WIDTH,
225
229
  cursor: "pointer",
226
- }, children: jsxs(Box, { className: "org-change-content", sx: {
230
+ }, children: hasMultipleOrganisations && (jsxs(Box, { className: "org-change-content", sx: {
227
231
  display: "flex",
228
232
  flexDirection: "row",
229
233
  alignItems: "center",
230
234
  py: 1,
231
- }, children: [jsx(ImportExportRounded, { sx: { color: theme.palette.primary.main, mr: 1 } }), jsx(Typography, { sx: { color: theme.palette.primary.main }, children: "Change organisation" })] }) }))] })) : (jsx(Box, { sx: {
235
+ }, children: [jsx(ImportExportRounded, { sx: { color: theme.palette.primary.main, mr: 1 } }), jsx(Typography, { sx: { color: theme.palette.primary.main }, children: "Change organisation" })] })) })] })) : (jsx(Box, { sx: {
232
236
  px: 1,
233
237
  py: 3,
238
+ mb: 1,
234
239
  borderBottom: `1px solid ${theme.palette.dark.main}1A`,
235
240
  display: "flex",
236
241
  justifyContent: "center",
@@ -238,8 +243,13 @@ const SidebarV2 = ({ isOpen, onToggle, centreName = "Centre name goes here \n ac
238
243
  flex: 1,
239
244
  overflowY: "auto",
240
245
  px: isOpen ? 0 : 1,
241
- py: 3,
242
- }, children: jsx(List, { sx: { p: 0 }, children: items.map((item) => (jsx(SidebarItem, { currentPath: currentPath, expandedSet: expandedSet, setExpand: setExpanded, isOpen: isOpen, isAdmin: isAdmin, item: item, onNavigate: onNavigate }, item.id))) }) })] }) })] }));
246
+ scrollbarWidth: "thin",
247
+ pb: 3,
248
+ }, children: jsx(List, { sx: { p: 0 }, children: items.map((item) => (jsx(SidebarItem, { currentPath: currentPath, expandedSet: expandedSet, setExpand: setExpanded, isOpen: isOpen, isAdmin: isAdmin, item: item, onNavigate: (path) => {
249
+ if (isMobile && isOpen)
250
+ onToggle();
251
+ onNavigate(path);
252
+ }, openSidebar: onToggle }, item.id))) }) })] }) })] }));
243
253
  };
244
254
 
245
255
  export { SidebarV2, Visibility };
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarV2.js","sources":["../../../../src/components/SidebarV2.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Box,\r\n IconButton,\r\n Typography,\r\n List,\r\n ListItemButton,\r\n ListItemText,\r\n Collapse,\r\n styled,\r\n Divider,\r\n} from \"@mui/material\";\r\nimport { useTheme } from \"../ThemeProvider\";\r\nimport {\r\n ChevronRightRounded,\r\n ImportExportRounded,\r\n KeyboardDoubleArrowLeftRounded,\r\n KeyboardDoubleArrowRightRounded,\r\n} from \"@mui/icons-material\";\r\n\r\nconst EXPANDED_WIDTH = \"288px\";\r\nconst COLLAPSED_WIDTH_SMALL = \"80px\";\r\nconst COLLAPSED_WIDTH_DEFAULT = \"64px\";\r\n\r\nexport enum Visibility {\r\n Admin = \"Admin\",\r\n Contributor = \"Contributor\",\r\n Community = \"Community\",\r\n}\r\n\r\nexport interface MenuItem {\r\n id: string | number;\r\n title: string;\r\n icon?: React.ReactNode;\r\n visibility?: Visibility;\r\n url?: string;\r\n items?: MenuItem[];\r\n}\r\n\r\nconst SidebarContainer = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\",\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n height: \"100vh\",\r\n position: \"sticky\",\r\n top: 0,\r\n paddingLeft: 0,\r\n overflow: \"hidden\",\r\n backgroundColor: \"#fff\",\r\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n transition: \"all 0.15s ease-out\",\r\n width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_DEFAULT,\r\n zIndex: 50,\r\n [theme.breakpoints.down(\"md\")]: {\r\n position: \"fixed\",\r\n left: isOpen ? 0 : `-${EXPANDED_WIDTH}`,\r\n width: EXPANDED_WIDTH,\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_SMALL,\r\n },\r\n}));\r\n\r\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: \"#4D3019\",\r\n color: \"#fff\",\r\n \"&:hover\": {\r\n backgroundColor: \"#3d2614\",\r\n },\r\n}));\r\n\r\nconst MenuItemButton = styled(ListItemButton, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\" && prop !== \"isActive\" && prop !== \"isPolicyActive\",\r\n})<{ isActive?: boolean; isOpen: boolean, isPolicyActive?: boolean }>(({ theme, isActive, isOpen, isPolicyActive }) => ({\r\n borderRadius: isOpen\r\n ? `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`\r\n : theme.shape.borderRadius,\r\n paddingLeft: 0,\r\n paddingRight: isOpen ? theme.spacing(2) : 0,\r\n marginRight: isOpen ? 8 : 0,\r\n minHeight: 64,\r\n justifyContent: isOpen ? \"flex-start\" : \"center\",\r\n backgroundClip: \"padding-box\",\r\n backgroundOrigin: \"border-box\",\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.primary.main}0D`,\r\n },\r\n ...(isActive && {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n },\r\n }),\r\n ...(isPolicyActive && {\r\n backgroundColor: `#0000000D`,\r\n \"&:hover\": {\r\n backgroundColor: `#0000000D`,\r\n },\r\n }),\r\n}));\r\n\r\nconst IconWrapper = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\",\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n width: isOpen ? 32 : 40,\r\n height: isOpen ? 32 : 40,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n backgroundColor: \"transparent\",\r\n}));\r\n\r\nconst SidebarItem = ({\r\n isOpen,\r\n isAdmin,\r\n item,\r\n onNavigate,\r\n expandedSet,\r\n setExpand: onExpand,\r\n depth = 0,\r\n currentPath,\r\n}: {\r\n isOpen: boolean;\r\n isAdmin: boolean;\r\n item: MenuItem;\r\n onNavigate: (path: string) => void;\r\n expandedSet: Set<string | number>;\r\n setExpand: React.Dispatch<React.SetStateAction<Set<string | number>>>;\r\n depth?: number;\r\n currentPath: string;\r\n}) => {\r\n // console.log(item.title, item.items);\r\n // Check visibility based on visibility state and isAdmin prop\r\n const isVisible =\r\n item.visibility === Visibility.Admin\r\n ? !!isAdmin\r\n : item.visibility === Visibility.Contributor || !item.visibility;\r\n if (!isVisible) {\r\n return null;\r\n }\r\n\r\n const theme = useTheme();\r\n const nestedPadding = depth > 1 ? 1 : 3 + depth;\r\n\r\n const isExpanded = () => expandedSet.has(item.id);\r\n\r\n const toggleExpand = () => {\r\n if (!isExpanded()) {\r\n onExpand(new Set([...expandedSet, item.id]));\r\n } else {\r\n expandedSet.delete(item.id);\r\n onExpand(new Set(expandedSet));\r\n }\r\n };\r\n\r\n const isActive =\r\n currentPath.includes(item.url as string) ||\r\n currentPath.includes(item.title.toLowerCase() as string) ||\r\n isExpanded();\r\n\r\n const isPolicyActive = currentPath.includes(item.url as string)\r\n\r\n return (\r\n <Box sx={{ mb: depth > 0 ? 0 : 1 }}>\r\n <MenuItemButton\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n if (item.url) onNavigate(item.url);\r\n else if (item.items) toggleExpand();\r\n }}\r\n isActive={isActive}\r\n isPolicyActive={isPolicyActive}\r\n title={!isOpen ? item.title : undefined}\r\n sx={{\r\n ...(depth > 0 && {\r\n pl: nestedPadding,\r\n }),\r\n }}\r\n >\r\n {item.icon && (\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n {item.icon}\r\n </IconWrapper>\r\n )}\r\n {isOpen && (\r\n <>\r\n <ListItemText\r\n primary={item.title}\r\n slotProps={{\r\n primary: {\r\n style: { \r\n // textDecoration: isActive ? \"underline\" : \"\",\r\n fontWeight: isPolicyActive ? 700 : (depth > 0 ? 400 : 700)},\r\n width: 180 - nestedPadding - (item.items ? 32 : 0),\r\n ...(depth > 0\r\n ? {\r\n fontSize: \"0.875rem\",\r\n }\r\n : {\r\n fontSize: \"1rem\",\r\n fontWeight: 700,\r\n }),\r\n },\r\n }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n {item.items && item.items.length > 0 && (\r\n <IconButton\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (item.items) toggleExpand();\r\n }}\r\n disableRipple\r\n sx={{\r\n ml: 0.5,\r\n borderRadius: 1,\r\n width: 32,\r\n height: 32,\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.primary.main}1F`,\r\n },\r\n }}\r\n >\r\n <ChevronRightRounded\r\n sx={{\r\n fontSize: 16,\r\n color: \"#4D3019\",\r\n transition: \"transform 0.1s\",\r\n transform: isExpanded() ? \"rotate(90deg)\" : \"rotate(0deg)\",\r\n }}\r\n />\r\n </IconButton>\r\n )}\r\n </>\r\n )}\r\n </MenuItemButton>\r\n {isExpanded() && isOpen && (\r\n <Collapse in={true} timeout=\"auto\">\r\n <Box display='flex' flexDirection='row'>\r\n {depth > 0 && (\r\n <Divider \r\n orientation=\"vertical\" \r\n flexItem \r\n sx={{ \r\n ml: 2,\r\n borderColor: `#00000033`,\r\n borderWidth: '1px',\r\n borderRightWidth: '1px',\r\n mt: 1,\r\n mb: 1\r\n }}\r\n />\r\n )}\r\n <List sx={{ p: 0, mt: 1, mb:1, flex: 1 }}>\r\n {item.items &&\r\n item.items.map((child) => (\r\n <SidebarItem\r\n key={child.id}\r\n currentPath={currentPath}\r\n expandedSet={expandedSet}\r\n setExpand={onExpand}\r\n isOpen={isOpen}\r\n isAdmin={isAdmin}\r\n item={child}\r\n onNavigate={onNavigate}\r\n depth={depth + 1}\r\n />\r\n ))}\r\n </List>\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};\r\n\r\nexport const SidebarV2 = ({\r\n isOpen,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n onNavigate,\r\n items,\r\n isAdmin,\r\n currentPath,\r\n onOrgChange,\r\n hasMultipleOrganisations\r\n}: {\r\n isOpen: boolean;\r\n onToggle: () => void;\r\n items: MenuItem[];\r\n centreName?: string;\r\n onNavigate: (path: string) => void;\r\n isAdmin: boolean;\r\n currentPath: string;\r\n onOrgChange: () => void;\r\n hasMultipleOrganisations: boolean;\r\n}) => {\r\n const findExpandItems = (items: MenuItem[]): (string | number)[] => {\r\n for (const item of items) {\r\n if (!item || item.items === undefined || item.items.length === 0) {\r\n continue;\r\n }\r\n const url = item.url?.replace(/-\\d+$/, '')\r\n const isActive =\r\n currentPath.includes(url as string) ||\r\n currentPath.includes(item.title.toLowerCase() as string);\r\n if (isActive) {\r\n return item.items\r\n ? [item.id, ...findExpandItems(item.items)]\r\n : [item.id];\r\n }\r\n }\r\n return [];\r\n };\r\n \r\n const theme = useTheme();\r\n const [expandedSet, setExpanded] = useState<Set<string | number>>(\r\n () => new Set(findExpandItems(items)),\r\n );\r\n\r\n return (\r\n <>\r\n {isOpen && (\r\n <Box\r\n sx={{\r\n position: \"fixed\",\r\n inset: 0,\r\n bgcolor: \"rgba(0, 0, 0, 0.5)\",\r\n zIndex: 40,\r\n display: { xs: \"block\", md: \"none\" },\r\n }}\r\n onClick={onToggle}\r\n />\r\n )}\r\n <SidebarContainer isOpen={isOpen}>\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", height: \"100%\" }}>\r\n {/* Sidebar Header */}\r\n {isOpen ? (\r\n <Box\r\n sx={{\r\n px: 2,\r\n py: 3,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n px: 2,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n }}\r\n >\r\n <Typography\r\n variant=\"h6\"\r\n sx={{\r\n width: \"180px\",\r\n fontSize: \"18px\",\r\n fontWeight: 700,\r\n color: \"#4D3019\",\r\n whiteSpace: \"pre-line\",\r\n flex: 1,\r\n pr: 2,\r\n }}\r\n >\r\n {centreName ?? \"Centre Name\"}\r\n </Typography>\r\n\r\n <ToggleButton\r\n onClick={() => onToggle()}\r\n sx={{ ml: \"auto\" }}\r\n aria-label=\"Collapse sidebar\"\r\n >\r\n <KeyboardDoubleArrowLeftRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n {hasMultipleOrganisations && (\r\n <Box\r\n onClick={onOrgChange}\r\n sx={{\r\n px: 2,\r\n py: 1,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n <Box\r\n className=\"org-change-content\"\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n py: 1,\r\n }}\r\n >\r\n <ImportExportRounded \r\n sx={{ color: theme.palette.primary.main, mr: 1 }} \r\n />\r\n <Typography sx={{ color: theme.palette.primary.main }}>\r\n Change organisation\r\n </Typography>\r\n </Box>\r\n </Box>\r\n )}\r\n </Box>\r\n ) : (\r\n <Box\r\n sx={{\r\n px: 1,\r\n py: 3,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n }}\r\n >\r\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\r\n <KeyboardDoubleArrowRightRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n )}\r\n\r\n {/* Sidebar Items */}\r\n <Box\r\n sx={{\r\n flex: 1,\r\n overflowY: \"auto\",\r\n px: isOpen ? 0 : 1,\r\n py: 3,\r\n }}\r\n >\r\n <List sx={{ p: 0 }}>\r\n {items.map((item) => (\r\n <SidebarItem\r\n currentPath={currentPath}\r\n key={item.id}\r\n expandedSet={expandedSet}\r\n setExpand={setExpanded}\r\n isOpen={isOpen}\r\n isAdmin={isAdmin}\r\n item={item}\r\n onNavigate={onNavigate}\r\n />\r\n ))}\r\n </List>\r\n </Box>\r\n </Box>\r\n </SidebarContainer>\r\n </>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"SidebarV2.js","sources":["../../../../src/components/SidebarV2.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\r\nimport {\r\n Box,\r\n IconButton,\r\n Typography,\r\n List,\r\n ListItemButton,\r\n ListItemText,\r\n Collapse,\r\n styled,\r\n Divider,\r\n} from \"@mui/material\";\r\nimport { useTheme } from \"../ThemeProvider\";\r\nimport {\r\n ChevronRightRounded,\r\n ImportExportRounded,\r\n KeyboardDoubleArrowLeftRounded,\r\n KeyboardDoubleArrowRightRounded,\r\n} from \"@mui/icons-material\";\r\n\r\nconst EXPANDED_WIDTH = \"288px\";\r\nconst COLLAPSED_WIDTH_SMALL = \"80px\";\r\nconst COLLAPSED_WIDTH_DEFAULT = \"64px\";\r\n\r\nexport enum Visibility {\r\n Admin = \"Admin\",\r\n Contributor = \"Contributor\",\r\n Community = \"Community\",\r\n}\r\n\r\nexport interface MenuItem {\r\n id: string | number;\r\n title: string;\r\n icon?: React.ReactNode;\r\n visibility?: Visibility;\r\n url?: string;\r\n items?: MenuItem[];\r\n}\r\n\r\nconst SidebarContainer = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\",\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n height: \"100vh\",\r\n position: \"sticky\",\r\n top: 0,\r\n paddingLeft: 0,\r\n overflow: \"hidden\",\r\n backgroundColor: \"#fff\",\r\n borderRight: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n transition: \"all 0.15s ease-out\",\r\n width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_DEFAULT,\r\n zIndex: 50,\r\n [theme.breakpoints.down(\"md\")]: {\r\n position: \"fixed\",\r\n left: isOpen ? 0 : `-${EXPANDED_WIDTH}`,\r\n width: EXPANDED_WIDTH,\r\n transition: \"all 0.4s ease-out\",\r\n },\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: isOpen ? EXPANDED_WIDTH : COLLAPSED_WIDTH_SMALL,\r\n },\r\n}));\r\n\r\nconst ToggleButton = styled(IconButton)(({ theme }) => ({\r\n width: 40,\r\n height: 40,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: \"#4D3019\",\r\n color: \"#fff\",\r\n \"&:hover\": {\r\n backgroundColor: \"#3d2614\",\r\n },\r\n}));\r\n\r\nconst MenuItemButton = styled(ListItemButton, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\" && prop !== \"isActive\" && prop !== \"isPolicyActive\",\r\n})<{ isActive?: boolean; isOpen: boolean, isPolicyActive?: boolean, depth: number }>(({ theme, isActive, isOpen, isPolicyActive, depth }) => ({\r\n borderRadius: isOpen\r\n ? `0 ${theme.shape.borderRadius}px ${theme.shape.borderRadius}px 0`\r\n : theme.shape.borderRadius,\r\n paddingLeft: 0,\r\n paddingRight: isOpen ? theme.spacing(2) : 0,\r\n marginRight: isOpen ? 8 : 0,\r\n minHeight: 64,\r\n justifyContent: isOpen ? \"flex-start\" : \"center\",\r\n backgroundClip: \"padding-box\",\r\n backgroundOrigin: \"border-box\",\r\n \"&:hover\": {\r\n backgroundColor: `#0000000D`,\r\n },\r\n ...(isActive && {\r\n backgroundColor: `${theme.palette.primary.main}1A`,\r\n }),\r\n ...(isPolicyActive && {\r\n backgroundColor: `#0000000D`,\r\n }),\r\n}));\r\n\r\nconst IconWrapper = styled(Box, {\r\n shouldForwardProp: (prop) => prop !== \"isOpen\",\r\n})<{ isOpen: boolean }>(({ theme, isOpen }) => ({\r\n width: isOpen ? 32 : 40,\r\n height: isOpen ? 32 : 40,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n backgroundColor: \"transparent\",\r\n}));\r\n\r\nconst SidebarItem = ({\r\n isOpen,\r\n isAdmin,\r\n item,\r\n onNavigate,\r\n expandedSet,\r\n setExpand: onExpand,\r\n depth = 0,\r\n currentPath,\r\n openSidebar,\r\n}: {\r\n isOpen: boolean;\r\n isAdmin: boolean;\r\n item: MenuItem;\r\n onNavigate: (path: string) => void;\r\n expandedSet: Set<string | number>;\r\n setExpand: React.Dispatch<React.SetStateAction<Set<string | number>>>;\r\n depth?: number;\r\n currentPath: string;\r\n openSidebar?: () => void,\r\n}) => {\r\n // console.log(item.title, item.items);\r\n // Check visibility based on visibility state and isAdmin prop\r\n const isVisible =\r\n item.visibility === Visibility.Admin\r\n ? !!isAdmin\r\n : item.visibility === Visibility.Contributor || !item.visibility;\r\n if (!isVisible) {\r\n return null;\r\n }\r\n\r\n const theme = useTheme();\r\n // const nestedPadding = 1 + depth;\r\n\r\n const isExpanded = () => expandedSet.has(item.id);\r\n\r\n const toggleExpand = () => {\r\n if (!isExpanded()) {\r\n onExpand(new Set([...expandedSet, item.id]));\r\n } else {\r\n expandedSet.delete(item.id);\r\n onExpand(new Set(expandedSet));\r\n }\r\n };\r\n\r\n const isActive =\r\n currentPath.includes(item.url as string) ||\r\n currentPath.includes(item.title.toLowerCase() as string) ||\r\n isExpanded();\r\n\r\n const isPolicyActive = currentPath.includes(item.url as string) && depth > 0;\r\n\r\n return (\r\n <Box sx={{ mb: depth > 0 ? 0 : 1 }}>\r\n <MenuItemButton\r\n depth={depth}\r\n disableRipple\r\n isOpen={isOpen}\r\n onClick={() => {\r\n if (item.url) onNavigate(item.url)\r\n else if (item.items) {\r\n if (openSidebar && !isOpen) {\r\n if (!isExpanded())\r\n toggleExpand();\r\n openSidebar();\r\n } else {\r\n toggleExpand();\r\n }\r\n }\r\n }}\r\n isActive={isActive}\r\n isPolicyActive={isPolicyActive}\r\n title={!isOpen ? item.title : undefined}\r\n sx={{\r\n ...(depth > 0 && {\r\n pl: 2,\r\n }),\r\n }}\r\n >\r\n {item.icon && (\r\n <IconWrapper isOpen={isOpen} sx={{ ml: isOpen ? 2 : 0 }}>\r\n {item.icon}\r\n </IconWrapper>\r\n )}\r\n {isOpen && (\r\n <>\r\n <ListItemText\r\n primary={item.title}\r\n slotProps={{\r\n primary: {\r\n style: { \r\n // textDecoration: isActive ? \"underline\" : \"\",\r\n fontWeight: isPolicyActive ? 700 : (depth > 0 ? 400 : 700)},\r\n // width: 180 - 10 - (item.items ? 32 : 0),\r\n ...(depth > 0\r\n ? {\r\n fontSize: \"0.875rem\",\r\n }\r\n : {\r\n fontSize: \"1rem\",\r\n fontWeight: 700,\r\n }),\r\n },\r\n }}\r\n sx={{ flex: 1, ml: 1 }}\r\n />\r\n {item.items && item.items.length > 0 && (\r\n <IconButton\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (item.items) toggleExpand();\r\n }}\r\n disableRipple\r\n sx={{\r\n ml: 0.5,\r\n borderRadius: 1,\r\n width: 32,\r\n height: 32,\r\n \"&:hover\": {\r\n backgroundColor: `${theme.palette.primary.main}1F`,\r\n },\r\n }}\r\n >\r\n <ChevronRightRounded\r\n sx={{\r\n fontSize: 16,\r\n color: \"#4D3019\",\r\n transition: \"transform 0.1s\",\r\n transform: isExpanded() ? \"rotate(90deg)\" : \"rotate(0deg)\",\r\n }}\r\n />\r\n </IconButton>\r\n )}\r\n </>\r\n )}\r\n </MenuItemButton>\r\n {isExpanded() && isOpen && (\r\n <Collapse in={true} timeout=\"auto\">\r\n <Box display='flex' flexDirection='row'>\r\n {depth > 0 && (\r\n <Divider \r\n orientation=\"vertical\" \r\n flexItem \r\n sx={{ \r\n ml: 2,\r\n borderColor: `#00000033`,\r\n borderWidth: '1px',\r\n borderRightWidth: '1px',\r\n mt: 1,\r\n mb: 1\r\n }}\r\n />\r\n )}\r\n <List sx={{ p: 0, mt: 1, mb:1, flex: 1 }}>\r\n {item.items &&\r\n item.items.map((child) => (\r\n <SidebarItem\r\n key={child.id}\r\n currentPath={currentPath}\r\n expandedSet={expandedSet}\r\n setExpand={onExpand}\r\n isOpen={isOpen}\r\n isAdmin={isAdmin}\r\n item={child}\r\n onNavigate={onNavigate}\r\n depth={depth + 1}\r\n />\r\n ))}\r\n </List>\r\n </Box>\r\n </Collapse>\r\n )}\r\n </Box>\r\n );\r\n};\r\n\r\nexport const SidebarV2 = ({\r\n isOpen,\r\n onToggle,\r\n centreName = \"Centre name goes here \\n across two lines\",\r\n onNavigate,\r\n items,\r\n isAdmin,\r\n currentPath,\r\n onOrgChange,\r\n hasMultipleOrganisations,\r\n}: {\r\n isOpen: boolean;\r\n onToggle: () => void;\r\n items: MenuItem[];\r\n centreName?: string;\r\n onNavigate: (path: string) => void;\r\n isAdmin: boolean;\r\n currentPath: string;\r\n onOrgChange: () => void;\r\n hasMultipleOrganisations: boolean;\r\n}) => {\r\n const findExpandItems = (items: MenuItem[]): (string | number)[] => {\r\n for (const item of items) {\r\n if (!item || item.items === undefined || item.items.length === 0) {\r\n continue;\r\n }\r\n const url = item.url?.replace(/-\\d+$/, '')\r\n const isActive =\r\n currentPath.includes(url as string) ||\r\n currentPath.includes(item.title.toLowerCase() as string);\r\n if (isActive) {\r\n return item.items\r\n ? [item.id, ...findExpandItems(item.items)]\r\n : [item.id];\r\n }\r\n }\r\n return [];\r\n };\r\n \r\n const theme = useTheme();\r\n const [expandedSet, setExpanded] = useState<Set<string | number>>(\r\n () => new Set(findExpandItems(items)),\r\n );\r\n const isMobile = !window.matchMedia(theme.breakpoints.up('lg').replace('@media ', '')).matches;\r\n\r\n return (\r\n <>\r\n {isOpen && (\r\n <Box\r\n sx={{\r\n position: \"fixed\",\r\n inset: 0,\r\n bgcolor: \"rgba(0, 0, 0, 0.5)\",\r\n zIndex: 40,\r\n display: { xs: \"block\", md: \"none\" },\r\n }}\r\n onClick={onToggle}\r\n />\r\n )}\r\n <SidebarContainer isOpen={isOpen}>\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", height: \"100%\" }}>\r\n {/* Sidebar Header */}\r\n {isOpen ? (\r\n <Box\r\n sx={{\r\n px: 2,\r\n py: 3,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n px: 2,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n }}\r\n >\r\n <Typography\r\n variant=\"h6\"\r\n sx={{\r\n width: \"180px\",\r\n fontSize: \"18px\",\r\n fontWeight: 700,\r\n color: \"#4D3019\",\r\n whiteSpace: \"pre-line\",\r\n flex: 1,\r\n pr: 2,\r\n }}\r\n >\r\n {centreName ?? \"Centre Name\"}\r\n </Typography>\r\n\r\n <ToggleButton\r\n onClick={() => onToggle()}\r\n sx={{ ml: \"auto\" }}\r\n aria-label=\"Collapse sidebar\"\r\n >\r\n <KeyboardDoubleArrowLeftRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n <Box\r\n onClick={onOrgChange}\r\n sx={{\r\n px: 2,\r\n py: 1,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n flexShrink: 0,\r\n position: \"relative\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n width: EXPANDED_WIDTH,\r\n cursor: \"pointer\",\r\n }}\r\n >\r\n {hasMultipleOrganisations && (\r\n <Box\r\n className=\"org-change-content\"\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n py: 1,\r\n }}\r\n >\r\n <ImportExportRounded \r\n sx={{ color: theme.palette.primary.main, mr: 1 }} \r\n />\r\n <Typography sx={{ color: theme.palette.primary.main }}>\r\n Change organisation\r\n </Typography>\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n ) : (\r\n <Box\r\n sx={{\r\n px: 1,\r\n py: 3,\r\n mb: 1,\r\n borderBottom: `1px solid ${theme.palette.dark.main}1A`,\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n }}\r\n >\r\n <ToggleButton onClick={onToggle} aria-label=\"Expand sidebar\">\r\n <KeyboardDoubleArrowRightRounded sx={{ fontSize: 20 }} />\r\n </ToggleButton>\r\n </Box>\r\n )}\r\n\r\n {/* Sidebar Items */}\r\n <Box\r\n sx={{\r\n flex: 1,\r\n overflowY: \"auto\",\r\n px: isOpen ? 0 : 1,\r\n scrollbarWidth: \"thin\",\r\n pb: 3,\r\n }}\r\n >\r\n <List sx={{ p: 0 }}>\r\n {items.map((item) => (\r\n <SidebarItem\r\n currentPath={currentPath}\r\n key={item.id}\r\n expandedSet={expandedSet}\r\n setExpand={setExpanded}\r\n isOpen={isOpen}\r\n isAdmin={isAdmin}\r\n item={item}\r\n onNavigate={(path: string) => {\r\n if (isMobile && isOpen) onToggle();\r\n onNavigate(path);\r\n }}\r\n openSidebar={onToggle}\r\n />\r\n ))}\r\n </List>\r\n </Box>\r\n </Box>\r\n </SidebarContainer>\r\n </>\r\n );\r\n};\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ece-docs-components",
3
- "version": "1.0.82",
3
+ "version": "1.0.84",
4
4
  "type": "module",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",