varminer-app-header 1.0.1 → 1.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../src/AppHeader.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,sBAAsB,CAAC;AAe9B,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAqevC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../src/AppHeader.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,sBAAsB,CAAC;AAe9B,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAgfvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
package/dist/index.esm.js CHANGED
@@ -12,7 +12,6 @@ import { styled, Badge, List, ListItem, ListItemAvatar, Avatar, ListItemText, Ty
12
12
  import { deepOrange } from '@mui/material/colors';
13
13
  import * as React from 'react';
14
14
  import React__default from 'react';
15
- import { useNavigate } from 'react-router-dom';
16
15
 
17
16
  const DrawerContext = React.createContext({
18
17
  isDrawerOpen: false,
@@ -55,7 +54,6 @@ const AppHeader = ({ user = {
55
54
  // Use provided logo or default
56
55
  const finalLogo = logo ?? DEFAULT_LOGO;
57
56
  const { isDrawerOpen, toggleDrawer } = useDrawer();
58
- const navigate = useNavigate();
59
57
  const [anchorEl, setAnchorEl] = React__default.useState(null);
60
58
  const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React__default.useState(null);
61
59
  const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);
@@ -108,7 +106,11 @@ const AppHeader = ({ user = {
108
106
  onSettingsClick();
109
107
  }
110
108
  else {
111
- navigate(finalRoutes.settings);
109
+ // Use window.location to navigate to absolute path, bypassing React Router basename
110
+ const path = finalRoutes.settings.startsWith('/')
111
+ ? finalRoutes.settings
112
+ : `/${finalRoutes.settings}`;
113
+ window.location.href = path;
112
114
  }
113
115
  };
114
116
  const handleProfileClick = () => {
@@ -117,7 +119,11 @@ const AppHeader = ({ user = {
117
119
  onProfileClick();
118
120
  }
119
121
  else {
120
- navigate(finalRoutes.profile);
122
+ // Use window.location to navigate to absolute path, bypassing React Router basename
123
+ const path = finalRoutes.profile.startsWith('/')
124
+ ? finalRoutes.profile
125
+ : `/${finalRoutes.profile}`;
126
+ window.location.href = path;
121
127
  }
122
128
  };
123
129
  const handleSignOutClick = () => {
@@ -127,7 +133,11 @@ const AppHeader = ({ user = {
127
133
  }
128
134
  else {
129
135
  localStorage.clear();
130
- navigate(finalRoutes.logout);
136
+ // Use window.location to navigate to absolute path, bypassing React Router basename
137
+ const path = finalRoutes.logout.startsWith('/')
138
+ ? finalRoutes.logout
139
+ : `/${finalRoutes.logout}`;
140
+ window.location.href = path;
131
141
  }
132
142
  };
133
143
  const menuId = "primary-account-menu";
@@ -173,7 +183,7 @@ const AppHeader = ({ user = {
173
183
  },
174
184
  },
175
185
  },
176
- }, transformOrigin: { horizontal: "right", vertical: "top" }, anchorOrigin: { horizontal: "right", vertical: "bottom" }, children: [profileList, jsx(Divider, {}), jsxs(MenuItem, { onClick: handleSettingsClick, children: [jsx(ListItemIcon, { children: jsx(SettingsOutlinedIcon, { fontSize: "small" }) }), "Settings"] }), jsxs(MenuItem, { onClick: handleProfileClick, children: [jsx(ListItemIcon, { children: jsx(PersonOutlineOutlinedIcon, { fontSize: "small" }) }), "Profile"] }), jsxs(MenuItem, { onClick: handleSignOutClick, children: [jsx(ListItemIcon, { children: jsx(LogoutOutlinedIcon, { fontSize: "small" }) }), "Sign out"] })] }));
186
+ }, transformOrigin: { horizontal: "right", vertical: "top" }, anchorOrigin: { horizontal: "right", vertical: "bottom" }, children: [profileList, jsx(Divider, {}), jsxs(MenuItem, { onClick: handleSettingsClick, children: [jsx(ListItemIcon, { children: jsx(SettingsOutlinedIcon, { fontSize: "small" }) }), "Account Settings"] }), jsxs(MenuItem, { onClick: handleProfileClick, children: [jsx(ListItemIcon, { children: jsx(PersonOutlineOutlinedIcon, { fontSize: "small" }) }), "Profile"] }), jsxs(MenuItem, { onClick: handleSignOutClick, children: [jsx(ListItemIcon, { children: jsx(LogoutOutlinedIcon, { fontSize: "small" }) }), "Sign out"] })] }));
177
187
  const mobileMenuId = "primary-account-menu-mobile";
178
188
  const renderMobileMenu = (jsxs(Menu, { anchorEl: mobileMoreAnchorEl, anchorOrigin: {
179
189
  vertical: "top",
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/DrawerContext.tsx","../src/AppHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\ninterface DrawerContextType {\r\n isDrawerOpen: boolean;\r\n openDrawer: () => void;\r\n closeDrawer: () => void;\r\n toggleDrawer: () => void;\r\n}\r\n\r\nconst DrawerContext = React.createContext<DrawerContextType>({\r\n isDrawerOpen: false,\r\n openDrawer: () => {},\r\n closeDrawer: () => {},\r\n toggleDrawer: () => {},\r\n});\r\n\r\nexport const DrawerProvider = ({ children }: { children: React.ReactNode }) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);\r\n\r\n const openDrawer = () => {\r\n setIsDrawerOpen(true);\r\n };\r\n\r\n const closeDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen((prev) => !prev);\r\n };\r\n\r\n return (\r\n <DrawerContext.Provider\r\n value={{ isDrawerOpen, openDrawer, closeDrawer, toggleDrawer }}\r\n >\r\n {children}\r\n </DrawerContext.Provider>\r\n );\r\n};\r\n\r\nexport const useDrawer = () => React.useContext(DrawerContext);\r\n\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport LogoutOutlinedIcon from \"@mui/icons-material/LogoutOutlined\";\r\nimport MailIcon from \"@mui/icons-material/Mail\";\r\nimport MenuIcon from \"@mui/icons-material/Menu\";\r\nimport MenuOpenIcon from \"@mui/icons-material/MenuOpen\";\r\nimport MoreIcon from \"@mui/icons-material/MoreVert\";\r\nimport NotificationsActiveOutlined from \"@mui/icons-material/NotificationsActiveOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@mui/icons-material/PersonOutlineOutlined\";\r\nimport SettingsOutlinedIcon from \"@mui/icons-material/SettingsOutlined\";\r\nimport {\r\n AppBar,\r\n Avatar,\r\n Badge,\r\n Box,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n styled,\r\n Toolbar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { deepOrange } from \"@mui/material/colors\";\r\nimport React from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useDrawer } from \"./DrawerContext\";\r\nimport { AppHeaderProps } from \"./types\";\r\nimport \"./styles/Header.scss\";\r\n\r\n// Default routes - absolute paths from root\r\nconst DEFAULT_ROUTES = {\r\n settings: \"/account/overview\",\r\n profile: \"/profile\",\r\n logout: \"/logout\",\r\n};\r\n\r\n// Default logo - can be overridden via props\r\nconst DEFAULT_LOGO = {\r\n first: \"VAR\",\r\n second: \"MINER\",\r\n};\r\n\r\nconst AppHeader: React.FC<AppHeaderProps> = ({\r\n user = {\r\n name: \"Shivam Kumar\",\r\n email: \"shivam@redcliffelabs.com\",\r\n role: \"Lab Technician\",\r\n initials: \"SK\",\r\n },\r\n isOnline = true,\r\n logo,\r\n notificationCount = 0,\r\n messageCount,\r\n onDrawerToggle,\r\n routes,\r\n onSettingsClick,\r\n onProfileClick,\r\n onSignOutClick,\r\n className,\r\n}) => {\r\n // Use provided logo or default\r\n const finalLogo = logo ?? DEFAULT_LOGO;\r\n \r\n const { isDrawerOpen, toggleDrawer } = useDrawer();\r\n const navigate = useNavigate();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n React.useState<null | HTMLElement>(null);\r\n\r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n // Merge provided routes with defaults - all routes are absolute from root\r\n const finalRoutes = {\r\n settings: routes?.settings ?? DEFAULT_ROUTES.settings,\r\n profile: routes?.profile ?? DEFAULT_ROUTES.profile,\r\n logout: routes?.logout ?? DEFAULT_ROUTES.logout,\r\n };\r\n\r\n const OnlineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const OfflineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"gray\",\r\n color: \"gray\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const handleDrawerToggle = () => {\r\n toggleDrawer();\r\n onDrawerToggle?.();\r\n };\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleSettingsClick = () => {\r\n handleClose();\r\n if (onSettingsClick) {\r\n onSettingsClick();\r\n } else {\r\n navigate(finalRoutes.settings);\r\n }\r\n };\r\n\r\n const handleProfileClick = () => {\r\n handleClose();\r\n if (onProfileClick) {\r\n onProfileClick();\r\n } else {\r\n navigate(finalRoutes.profile);\r\n }\r\n };\r\n\r\n const handleSignOutClick = () => {\r\n handleClose();\r\n if (onSignOutClick) {\r\n onSignOutClick();\r\n } else {\r\n localStorage.clear();\r\n navigate(finalRoutes.logout);\r\n }\r\n };\r\n\r\n const menuId = \"primary-account-menu\";\r\n\r\n const getInitials = () => {\r\n if (user.initials) return user.initials;\r\n return user.name\r\n .split(\" \")\r\n .map((n) => n[0])\r\n .join(\"\")\r\n .toUpperCase()\r\n .slice(0, 2);\r\n };\r\n\r\n const profileList = (\r\n <List\r\n className=\"profile-menu-section\"\r\n sx={{\r\n width: \"100%\",\r\n maxWidth: 360,\r\n pointerEvents: \"none\",\r\n }}\r\n component=\"div\"\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n >\r\n <ListItem alignItems=\"flex-start\" className=\"profile-menu-item\">\r\n <ListItemAvatar>\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </ListItemAvatar>\r\n <ListItemText\r\n secondary={\r\n <React.Fragment>\r\n <Typography className=\"profile-name\" component=\"p\">\r\n {user.name}\r\n </Typography>\r\n <Typography className=\"profile-email\" component=\"p\">\r\n {user.email}\r\n </Typography>\r\n <Typography className=\"profile-role\" component=\"p\">\r\n Role: {user.role}\r\n </Typography>\r\n </React.Fragment>\r\n }\r\n />\r\n </ListItem>\r\n </List>\r\n );\r\n\r\n const renderMenu = (\r\n <Menu\r\n anchorEl={anchorEl}\r\n id=\"account-menu\"\r\n open={open}\r\n onClose={handleClose}\r\n onClick={handleClose}\r\n slotProps={{\r\n paper: {\r\n elevation: 0,\r\n sx: {\r\n overflow: \"visible\",\r\n filter: \"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))\",\r\n mt: 1.5,\r\n \"& .MuiAvatar-root\": {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n },\r\n \"&::before\": {\r\n content: '\"\"',\r\n display: \"block\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 14,\r\n width: 10,\r\n height: 10,\r\n bgcolor: \"background.paper\",\r\n transform: \"translateY(-50%) rotate(45deg)\",\r\n zIndex: 0,\r\n },\r\n },\r\n },\r\n }}\r\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\r\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\r\n >\r\n {profileList}\r\n <Divider />\r\n <MenuItem onClick={handleSettingsClick}>\r\n <ListItemIcon>\r\n <SettingsOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Settings\r\n </MenuItem>\r\n <MenuItem onClick={handleProfileClick}>\r\n <ListItemIcon>\r\n <PersonOutlineOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Profile\r\n </MenuItem>\r\n <MenuItem onClick={handleSignOutClick}>\r\n <ListItemIcon>\r\n <LogoutOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Sign out\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n const mobileMenuId = \"primary-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n <Menu\r\n anchorEl={mobileMoreAnchorEl}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n id={mobileMenuId}\r\n keepMounted\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n open={isMobileMenuOpen}\r\n onClose={handleMobileMenuClose}\r\n >\r\n {messageCount !== undefined && (\r\n <MenuItem>\r\n <IconButton \r\n size=\"large\" \r\n aria-label={`show ${messageCount} new mails`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={messageCount} color=\"error\">\r\n <MailIcon />\r\n </Badge>\r\n </IconButton>\r\n <p>Messages</p>\r\n </MenuItem>\r\n )}\r\n {notificationCount > 0 && (\r\n <MenuItem>\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCount} new notifications`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <p>Notifications</p>\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={handleProfileMenuOpen}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"account of current user\"\r\n aria-controls=\"primary-account-menu\"\r\n aria-haspopup=\"true\"\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n <p>Profile</p>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <Box sx={{ flexGrow: 1 }} className={`app-header ${className || \"\"}`}>\r\n <AppBar\r\n sx={{\r\n position: \"fixed\",\r\n top: 0,\r\n backgroundColor: \"#ffffff\",\r\n }}\r\n >\r\n <Toolbar>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"start\"\r\n aria-label=\"open drawer\"\r\n sx={{ \r\n mr: 2,\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n onClick={handleDrawerToggle}\r\n >\r\n {isDrawerOpen ? (\r\n <MenuOpenIcon fontSize={\"large\"} />\r\n ) : (\r\n <MenuIcon fontSize={\"large\"} />\r\n )}\r\n </IconButton>\r\n <Typography\r\n variant=\"h6\"\r\n noWrap\r\n component=\"div\"\r\n sx={{ display: { xs: \"none\", sm: \"block\" } }}\r\n data-testid=\"var-miner-wrapper\"\r\n >\r\n <span className=\"var\">{finalLogo.first}</span>\r\n <span className=\"miner\">{finalLogo.second}</span>\r\n </Typography>\r\n <Box sx={{ flexGrow: 1 }} />\r\n <Box sx={{ display: { xs: \"none\", md: \"flex\" } }}>\r\n {notificationCount > 0 && (\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCount} new notifications`}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n )}\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleProfileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n sizes=\"large\"\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n </Box>\r\n <Box sx={{ display: { xs: \"flex\", md: \"none\" } }}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"show more\"\r\n aria-controls={mobileMenuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleMobileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <MoreIcon />\r\n </IconButton>\r\n </Box>\r\n </Toolbar>\r\n </AppBar>\r\n {renderMobileMenu}\r\n {renderMenu}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n\r\n"],"names":["_jsx","React","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/DrawerContext.tsx","../src/AppHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\ninterface DrawerContextType {\r\n isDrawerOpen: boolean;\r\n openDrawer: () => void;\r\n closeDrawer: () => void;\r\n toggleDrawer: () => void;\r\n}\r\n\r\nconst DrawerContext = React.createContext<DrawerContextType>({\r\n isDrawerOpen: false,\r\n openDrawer: () => {},\r\n closeDrawer: () => {},\r\n toggleDrawer: () => {},\r\n});\r\n\r\nexport const DrawerProvider = ({ children }: { children: React.ReactNode }) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);\r\n\r\n const openDrawer = () => {\r\n setIsDrawerOpen(true);\r\n };\r\n\r\n const closeDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen((prev) => !prev);\r\n };\r\n\r\n return (\r\n <DrawerContext.Provider\r\n value={{ isDrawerOpen, openDrawer, closeDrawer, toggleDrawer }}\r\n >\r\n {children}\r\n </DrawerContext.Provider>\r\n );\r\n};\r\n\r\nexport const useDrawer = () => React.useContext(DrawerContext);\r\n\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport LogoutOutlinedIcon from \"@mui/icons-material/LogoutOutlined\";\r\nimport MailIcon from \"@mui/icons-material/Mail\";\r\nimport MenuIcon from \"@mui/icons-material/Menu\";\r\nimport MenuOpenIcon from \"@mui/icons-material/MenuOpen\";\r\nimport MoreIcon from \"@mui/icons-material/MoreVert\";\r\nimport NotificationsActiveOutlined from \"@mui/icons-material/NotificationsActiveOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@mui/icons-material/PersonOutlineOutlined\";\r\nimport SettingsOutlinedIcon from \"@mui/icons-material/SettingsOutlined\";\r\nimport {\r\n AppBar,\r\n Avatar,\r\n Badge,\r\n Box,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n styled,\r\n Toolbar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { deepOrange } from \"@mui/material/colors\";\r\nimport React from \"react\";\r\nimport { useDrawer } from \"./DrawerContext\";\r\nimport { AppHeaderProps } from \"./types\";\r\nimport \"./styles/Header.scss\";\r\n\r\n// Default routes - absolute paths from root\r\nconst DEFAULT_ROUTES = {\r\n settings: \"/account/overview\",\r\n profile: \"/profile\",\r\n logout: \"/logout\",\r\n};\r\n\r\n// Default logo - can be overridden via props\r\nconst DEFAULT_LOGO = {\r\n first: \"VAR\",\r\n second: \"MINER\",\r\n};\r\n\r\nconst AppHeader: React.FC<AppHeaderProps> = ({\r\n user = {\r\n name: \"Shivam Kumar\",\r\n email: \"shivam@redcliffelabs.com\",\r\n role: \"Lab Technician\",\r\n initials: \"SK\",\r\n },\r\n isOnline = true,\r\n logo,\r\n notificationCount = 0,\r\n messageCount,\r\n onDrawerToggle,\r\n routes,\r\n onSettingsClick,\r\n onProfileClick,\r\n onSignOutClick,\r\n className,\r\n}) => {\r\n // Use provided logo or default\r\n const finalLogo = logo ?? DEFAULT_LOGO;\r\n \r\n const { isDrawerOpen, toggleDrawer } = useDrawer();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n React.useState<null | HTMLElement>(null);\r\n\r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n // Merge provided routes with defaults - all routes are absolute from root\r\n const finalRoutes = {\r\n settings: routes?.settings ?? DEFAULT_ROUTES.settings,\r\n profile: routes?.profile ?? DEFAULT_ROUTES.profile,\r\n logout: routes?.logout ?? DEFAULT_ROUTES.logout,\r\n };\r\n\r\n const OnlineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const OfflineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"gray\",\r\n color: \"gray\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const handleDrawerToggle = () => {\r\n toggleDrawer();\r\n onDrawerToggle?.();\r\n };\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleSettingsClick = () => {\r\n handleClose();\r\n if (onSettingsClick) {\r\n onSettingsClick();\r\n } else {\r\n // Use window.location to navigate to absolute path, bypassing React Router basename\r\n const path = finalRoutes.settings.startsWith('/') \r\n ? finalRoutes.settings \r\n : `/${finalRoutes.settings}`;\r\n window.location.href = path;\r\n }\r\n };\r\n\r\n const handleProfileClick = () => {\r\n handleClose();\r\n if (onProfileClick) {\r\n onProfileClick();\r\n } else {\r\n // Use window.location to navigate to absolute path, bypassing React Router basename\r\n const path = finalRoutes.profile.startsWith('/') \r\n ? finalRoutes.profile \r\n : `/${finalRoutes.profile}`;\r\n window.location.href = path;\r\n }\r\n };\r\n\r\n const handleSignOutClick = () => {\r\n handleClose();\r\n if (onSignOutClick) {\r\n onSignOutClick();\r\n } else {\r\n localStorage.clear();\r\n // Use window.location to navigate to absolute path, bypassing React Router basename\r\n const path = finalRoutes.logout.startsWith('/') \r\n ? finalRoutes.logout \r\n : `/${finalRoutes.logout}`;\r\n window.location.href = path;\r\n }\r\n };\r\n\r\n const menuId = \"primary-account-menu\";\r\n\r\n const getInitials = () => {\r\n if (user.initials) return user.initials;\r\n return user.name\r\n .split(\" \")\r\n .map((n) => n[0])\r\n .join(\"\")\r\n .toUpperCase()\r\n .slice(0, 2);\r\n };\r\n\r\n const profileList = (\r\n <List\r\n className=\"profile-menu-section\"\r\n sx={{\r\n width: \"100%\",\r\n maxWidth: 360,\r\n pointerEvents: \"none\",\r\n }}\r\n component=\"div\"\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n >\r\n <ListItem alignItems=\"flex-start\" className=\"profile-menu-item\">\r\n <ListItemAvatar>\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </ListItemAvatar>\r\n <ListItemText\r\n secondary={\r\n <React.Fragment>\r\n <Typography className=\"profile-name\" component=\"p\">\r\n {user.name}\r\n </Typography>\r\n <Typography className=\"profile-email\" component=\"p\">\r\n {user.email}\r\n </Typography>\r\n <Typography className=\"profile-role\" component=\"p\">\r\n Role: {user.role}\r\n </Typography>\r\n </React.Fragment>\r\n }\r\n />\r\n </ListItem>\r\n </List>\r\n );\r\n\r\n const renderMenu = (\r\n <Menu\r\n anchorEl={anchorEl}\r\n id=\"account-menu\"\r\n open={open}\r\n onClose={handleClose}\r\n onClick={handleClose}\r\n slotProps={{\r\n paper: {\r\n elevation: 0,\r\n sx: {\r\n overflow: \"visible\",\r\n filter: \"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))\",\r\n mt: 1.5,\r\n \"& .MuiAvatar-root\": {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n },\r\n \"&::before\": {\r\n content: '\"\"',\r\n display: \"block\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 14,\r\n width: 10,\r\n height: 10,\r\n bgcolor: \"background.paper\",\r\n transform: \"translateY(-50%) rotate(45deg)\",\r\n zIndex: 0,\r\n },\r\n },\r\n },\r\n }}\r\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\r\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\r\n >\r\n {profileList}\r\n <Divider />\r\n <MenuItem onClick={handleSettingsClick}>\r\n <ListItemIcon>\r\n <SettingsOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Account Settings\r\n </MenuItem>\r\n <MenuItem onClick={handleProfileClick}>\r\n <ListItemIcon>\r\n <PersonOutlineOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Profile\r\n </MenuItem>\r\n <MenuItem onClick={handleSignOutClick}>\r\n <ListItemIcon>\r\n <LogoutOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Sign out\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n const mobileMenuId = \"primary-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n <Menu\r\n anchorEl={mobileMoreAnchorEl}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n id={mobileMenuId}\r\n keepMounted\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n open={isMobileMenuOpen}\r\n onClose={handleMobileMenuClose}\r\n >\r\n {messageCount !== undefined && (\r\n <MenuItem>\r\n <IconButton \r\n size=\"large\" \r\n aria-label={`show ${messageCount} new mails`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={messageCount} color=\"error\">\r\n <MailIcon />\r\n </Badge>\r\n </IconButton>\r\n <p>Messages</p>\r\n </MenuItem>\r\n )}\r\n {notificationCount > 0 && (\r\n <MenuItem>\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCount} new notifications`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <p>Notifications</p>\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={handleProfileMenuOpen}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"account of current user\"\r\n aria-controls=\"primary-account-menu\"\r\n aria-haspopup=\"true\"\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n <p>Profile</p>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <Box sx={{ flexGrow: 1 }} className={`app-header ${className || \"\"}`}>\r\n <AppBar\r\n sx={{\r\n position: \"fixed\",\r\n top: 0,\r\n backgroundColor: \"#ffffff\",\r\n }}\r\n >\r\n <Toolbar>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"start\"\r\n aria-label=\"open drawer\"\r\n sx={{ \r\n mr: 2,\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n onClick={handleDrawerToggle}\r\n >\r\n {isDrawerOpen ? (\r\n <MenuOpenIcon fontSize={\"large\"} />\r\n ) : (\r\n <MenuIcon fontSize={\"large\"} />\r\n )}\r\n </IconButton>\r\n <Typography\r\n variant=\"h6\"\r\n noWrap\r\n component=\"div\"\r\n sx={{ display: { xs: \"none\", sm: \"block\" } }}\r\n data-testid=\"var-miner-wrapper\"\r\n >\r\n <span className=\"var\">{finalLogo.first}</span>\r\n <span className=\"miner\">{finalLogo.second}</span>\r\n </Typography>\r\n <Box sx={{ flexGrow: 1 }} />\r\n <Box sx={{ display: { xs: \"none\", md: \"flex\" } }}>\r\n {notificationCount > 0 && (\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCount} new notifications`}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n )}\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleProfileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n sizes=\"large\"\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n </Box>\r\n <Box sx={{ display: { xs: \"flex\", md: \"none\" } }}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"show more\"\r\n aria-controls={mobileMenuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleMobileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <MoreIcon />\r\n </IconButton>\r\n </Box>\r\n </Toolbar>\r\n </AppBar>\r\n {renderMobileMenu}\r\n {renderMenu}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n\r\n"],"names":["_jsx","React","_jsxs"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,7 +13,6 @@ var SettingsOutlinedIcon = require('@mui/icons-material/SettingsOutlined');
13
13
  var material = require('@mui/material');
14
14
  var colors = require('@mui/material/colors');
15
15
  var React = require('react');
16
- var reactRouterDom = require('react-router-dom');
17
16
 
18
17
  function _interopNamespaceDefault(e) {
19
18
  var n = Object.create(null);
@@ -75,7 +74,6 @@ const AppHeader = ({ user = {
75
74
  // Use provided logo or default
76
75
  const finalLogo = logo ?? DEFAULT_LOGO;
77
76
  const { isDrawerOpen, toggleDrawer } = useDrawer();
78
- const navigate = reactRouterDom.useNavigate();
79
77
  const [anchorEl, setAnchorEl] = React.useState(null);
80
78
  const [mobileMoreAnchorEl, setMobileMoreAnchorEl] = React.useState(null);
81
79
  const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);
@@ -128,7 +126,11 @@ const AppHeader = ({ user = {
128
126
  onSettingsClick();
129
127
  }
130
128
  else {
131
- navigate(finalRoutes.settings);
129
+ // Use window.location to navigate to absolute path, bypassing React Router basename
130
+ const path = finalRoutes.settings.startsWith('/')
131
+ ? finalRoutes.settings
132
+ : `/${finalRoutes.settings}`;
133
+ window.location.href = path;
132
134
  }
133
135
  };
134
136
  const handleProfileClick = () => {
@@ -137,7 +139,11 @@ const AppHeader = ({ user = {
137
139
  onProfileClick();
138
140
  }
139
141
  else {
140
- navigate(finalRoutes.profile);
142
+ // Use window.location to navigate to absolute path, bypassing React Router basename
143
+ const path = finalRoutes.profile.startsWith('/')
144
+ ? finalRoutes.profile
145
+ : `/${finalRoutes.profile}`;
146
+ window.location.href = path;
141
147
  }
142
148
  };
143
149
  const handleSignOutClick = () => {
@@ -147,7 +153,11 @@ const AppHeader = ({ user = {
147
153
  }
148
154
  else {
149
155
  localStorage.clear();
150
- navigate(finalRoutes.logout);
156
+ // Use window.location to navigate to absolute path, bypassing React Router basename
157
+ const path = finalRoutes.logout.startsWith('/')
158
+ ? finalRoutes.logout
159
+ : `/${finalRoutes.logout}`;
160
+ window.location.href = path;
151
161
  }
152
162
  };
153
163
  const menuId = "primary-account-menu";
@@ -193,7 +203,7 @@ const AppHeader = ({ user = {
193
203
  },
194
204
  },
195
205
  },
196
- }, transformOrigin: { horizontal: "right", vertical: "top" }, anchorOrigin: { horizontal: "right", vertical: "bottom" }, children: [profileList, jsxRuntime.jsx(material.Divider, {}), jsxRuntime.jsxs(material.MenuItem, { onClick: handleSettingsClick, children: [jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(SettingsOutlinedIcon, { fontSize: "small" }) }), "Settings"] }), jsxRuntime.jsxs(material.MenuItem, { onClick: handleProfileClick, children: [jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(PersonOutlineOutlinedIcon, { fontSize: "small" }) }), "Profile"] }), jsxRuntime.jsxs(material.MenuItem, { onClick: handleSignOutClick, children: [jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(LogoutOutlinedIcon, { fontSize: "small" }) }), "Sign out"] })] }));
206
+ }, transformOrigin: { horizontal: "right", vertical: "top" }, anchorOrigin: { horizontal: "right", vertical: "bottom" }, children: [profileList, jsxRuntime.jsx(material.Divider, {}), jsxRuntime.jsxs(material.MenuItem, { onClick: handleSettingsClick, children: [jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(SettingsOutlinedIcon, { fontSize: "small" }) }), "Account Settings"] }), jsxRuntime.jsxs(material.MenuItem, { onClick: handleProfileClick, children: [jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(PersonOutlineOutlinedIcon, { fontSize: "small" }) }), "Profile"] }), jsxRuntime.jsxs(material.MenuItem, { onClick: handleSignOutClick, children: [jsxRuntime.jsx(material.ListItemIcon, { children: jsxRuntime.jsx(LogoutOutlinedIcon, { fontSize: "small" }) }), "Sign out"] })] }));
197
207
  const mobileMenuId = "primary-account-menu-mobile";
198
208
  const renderMobileMenu = (jsxRuntime.jsxs(material.Menu, { anchorEl: mobileMoreAnchorEl, anchorOrigin: {
199
209
  vertical: "top",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/DrawerContext.tsx","../src/AppHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\ninterface DrawerContextType {\r\n isDrawerOpen: boolean;\r\n openDrawer: () => void;\r\n closeDrawer: () => void;\r\n toggleDrawer: () => void;\r\n}\r\n\r\nconst DrawerContext = React.createContext<DrawerContextType>({\r\n isDrawerOpen: false,\r\n openDrawer: () => {},\r\n closeDrawer: () => {},\r\n toggleDrawer: () => {},\r\n});\r\n\r\nexport const DrawerProvider = ({ children }: { children: React.ReactNode }) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);\r\n\r\n const openDrawer = () => {\r\n setIsDrawerOpen(true);\r\n };\r\n\r\n const closeDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen((prev) => !prev);\r\n };\r\n\r\n return (\r\n <DrawerContext.Provider\r\n value={{ isDrawerOpen, openDrawer, closeDrawer, toggleDrawer }}\r\n >\r\n {children}\r\n </DrawerContext.Provider>\r\n );\r\n};\r\n\r\nexport const useDrawer = () => React.useContext(DrawerContext);\r\n\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport LogoutOutlinedIcon from \"@mui/icons-material/LogoutOutlined\";\r\nimport MailIcon from \"@mui/icons-material/Mail\";\r\nimport MenuIcon from \"@mui/icons-material/Menu\";\r\nimport MenuOpenIcon from \"@mui/icons-material/MenuOpen\";\r\nimport MoreIcon from \"@mui/icons-material/MoreVert\";\r\nimport NotificationsActiveOutlined from \"@mui/icons-material/NotificationsActiveOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@mui/icons-material/PersonOutlineOutlined\";\r\nimport SettingsOutlinedIcon from \"@mui/icons-material/SettingsOutlined\";\r\nimport {\r\n AppBar,\r\n Avatar,\r\n Badge,\r\n Box,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n styled,\r\n Toolbar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { deepOrange } from \"@mui/material/colors\";\r\nimport React from \"react\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useDrawer } from \"./DrawerContext\";\r\nimport { AppHeaderProps } from \"./types\";\r\nimport \"./styles/Header.scss\";\r\n\r\n// Default routes - absolute paths from root\r\nconst DEFAULT_ROUTES = {\r\n settings: \"/account/overview\",\r\n profile: \"/profile\",\r\n logout: \"/logout\",\r\n};\r\n\r\n// Default logo - can be overridden via props\r\nconst DEFAULT_LOGO = {\r\n first: \"VAR\",\r\n second: \"MINER\",\r\n};\r\n\r\nconst AppHeader: React.FC<AppHeaderProps> = ({\r\n user = {\r\n name: \"Shivam Kumar\",\r\n email: \"shivam@redcliffelabs.com\",\r\n role: \"Lab Technician\",\r\n initials: \"SK\",\r\n },\r\n isOnline = true,\r\n logo,\r\n notificationCount = 0,\r\n messageCount,\r\n onDrawerToggle,\r\n routes,\r\n onSettingsClick,\r\n onProfileClick,\r\n onSignOutClick,\r\n className,\r\n}) => {\r\n // Use provided logo or default\r\n const finalLogo = logo ?? DEFAULT_LOGO;\r\n \r\n const { isDrawerOpen, toggleDrawer } = useDrawer();\r\n const navigate = useNavigate();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n React.useState<null | HTMLElement>(null);\r\n\r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n // Merge provided routes with defaults - all routes are absolute from root\r\n const finalRoutes = {\r\n settings: routes?.settings ?? DEFAULT_ROUTES.settings,\r\n profile: routes?.profile ?? DEFAULT_ROUTES.profile,\r\n logout: routes?.logout ?? DEFAULT_ROUTES.logout,\r\n };\r\n\r\n const OnlineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const OfflineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"gray\",\r\n color: \"gray\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const handleDrawerToggle = () => {\r\n toggleDrawer();\r\n onDrawerToggle?.();\r\n };\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleSettingsClick = () => {\r\n handleClose();\r\n if (onSettingsClick) {\r\n onSettingsClick();\r\n } else {\r\n navigate(finalRoutes.settings);\r\n }\r\n };\r\n\r\n const handleProfileClick = () => {\r\n handleClose();\r\n if (onProfileClick) {\r\n onProfileClick();\r\n } else {\r\n navigate(finalRoutes.profile);\r\n }\r\n };\r\n\r\n const handleSignOutClick = () => {\r\n handleClose();\r\n if (onSignOutClick) {\r\n onSignOutClick();\r\n } else {\r\n localStorage.clear();\r\n navigate(finalRoutes.logout);\r\n }\r\n };\r\n\r\n const menuId = \"primary-account-menu\";\r\n\r\n const getInitials = () => {\r\n if (user.initials) return user.initials;\r\n return user.name\r\n .split(\" \")\r\n .map((n) => n[0])\r\n .join(\"\")\r\n .toUpperCase()\r\n .slice(0, 2);\r\n };\r\n\r\n const profileList = (\r\n <List\r\n className=\"profile-menu-section\"\r\n sx={{\r\n width: \"100%\",\r\n maxWidth: 360,\r\n pointerEvents: \"none\",\r\n }}\r\n component=\"div\"\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n >\r\n <ListItem alignItems=\"flex-start\" className=\"profile-menu-item\">\r\n <ListItemAvatar>\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </ListItemAvatar>\r\n <ListItemText\r\n secondary={\r\n <React.Fragment>\r\n <Typography className=\"profile-name\" component=\"p\">\r\n {user.name}\r\n </Typography>\r\n <Typography className=\"profile-email\" component=\"p\">\r\n {user.email}\r\n </Typography>\r\n <Typography className=\"profile-role\" component=\"p\">\r\n Role: {user.role}\r\n </Typography>\r\n </React.Fragment>\r\n }\r\n />\r\n </ListItem>\r\n </List>\r\n );\r\n\r\n const renderMenu = (\r\n <Menu\r\n anchorEl={anchorEl}\r\n id=\"account-menu\"\r\n open={open}\r\n onClose={handleClose}\r\n onClick={handleClose}\r\n slotProps={{\r\n paper: {\r\n elevation: 0,\r\n sx: {\r\n overflow: \"visible\",\r\n filter: \"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))\",\r\n mt: 1.5,\r\n \"& .MuiAvatar-root\": {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n },\r\n \"&::before\": {\r\n content: '\"\"',\r\n display: \"block\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 14,\r\n width: 10,\r\n height: 10,\r\n bgcolor: \"background.paper\",\r\n transform: \"translateY(-50%) rotate(45deg)\",\r\n zIndex: 0,\r\n },\r\n },\r\n },\r\n }}\r\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\r\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\r\n >\r\n {profileList}\r\n <Divider />\r\n <MenuItem onClick={handleSettingsClick}>\r\n <ListItemIcon>\r\n <SettingsOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Settings\r\n </MenuItem>\r\n <MenuItem onClick={handleProfileClick}>\r\n <ListItemIcon>\r\n <PersonOutlineOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Profile\r\n </MenuItem>\r\n <MenuItem onClick={handleSignOutClick}>\r\n <ListItemIcon>\r\n <LogoutOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Sign out\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n const mobileMenuId = \"primary-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n <Menu\r\n anchorEl={mobileMoreAnchorEl}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n id={mobileMenuId}\r\n keepMounted\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n open={isMobileMenuOpen}\r\n onClose={handleMobileMenuClose}\r\n >\r\n {messageCount !== undefined && (\r\n <MenuItem>\r\n <IconButton \r\n size=\"large\" \r\n aria-label={`show ${messageCount} new mails`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={messageCount} color=\"error\">\r\n <MailIcon />\r\n </Badge>\r\n </IconButton>\r\n <p>Messages</p>\r\n </MenuItem>\r\n )}\r\n {notificationCount > 0 && (\r\n <MenuItem>\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCount} new notifications`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <p>Notifications</p>\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={handleProfileMenuOpen}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"account of current user\"\r\n aria-controls=\"primary-account-menu\"\r\n aria-haspopup=\"true\"\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n <p>Profile</p>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <Box sx={{ flexGrow: 1 }} className={`app-header ${className || \"\"}`}>\r\n <AppBar\r\n sx={{\r\n position: \"fixed\",\r\n top: 0,\r\n backgroundColor: \"#ffffff\",\r\n }}\r\n >\r\n <Toolbar>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"start\"\r\n aria-label=\"open drawer\"\r\n sx={{ \r\n mr: 2,\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n onClick={handleDrawerToggle}\r\n >\r\n {isDrawerOpen ? (\r\n <MenuOpenIcon fontSize={\"large\"} />\r\n ) : (\r\n <MenuIcon fontSize={\"large\"} />\r\n )}\r\n </IconButton>\r\n <Typography\r\n variant=\"h6\"\r\n noWrap\r\n component=\"div\"\r\n sx={{ display: { xs: \"none\", sm: \"block\" } }}\r\n data-testid=\"var-miner-wrapper\"\r\n >\r\n <span className=\"var\">{finalLogo.first}</span>\r\n <span className=\"miner\">{finalLogo.second}</span>\r\n </Typography>\r\n <Box sx={{ flexGrow: 1 }} />\r\n <Box sx={{ display: { xs: \"none\", md: \"flex\" } }}>\r\n {notificationCount > 0 && (\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCount} new notifications`}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n )}\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleProfileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n sizes=\"large\"\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n </Box>\r\n <Box sx={{ display: { xs: \"flex\", md: \"none\" } }}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"show more\"\r\n aria-controls={mobileMenuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleMobileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <MoreIcon />\r\n </IconButton>\r\n </Box>\r\n </Toolbar>\r\n </AppBar>\r\n {renderMobileMenu}\r\n {renderMenu}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n\r\n"],"names":["React","_jsx","useNavigate","styled","Badge","List","_jsxs","ListItem","ListItemAvatar","Avatar","deepOrange","ListItemText","Typography","Menu","Divider","MenuItem","ListItemIcon","IconButton","Box","AppBar","Toolbar"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/DrawerContext.tsx","../src/AppHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\ninterface DrawerContextType {\r\n isDrawerOpen: boolean;\r\n openDrawer: () => void;\r\n closeDrawer: () => void;\r\n toggleDrawer: () => void;\r\n}\r\n\r\nconst DrawerContext = React.createContext<DrawerContextType>({\r\n isDrawerOpen: false,\r\n openDrawer: () => {},\r\n closeDrawer: () => {},\r\n toggleDrawer: () => {},\r\n});\r\n\r\nexport const DrawerProvider = ({ children }: { children: React.ReactNode }) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = React.useState(false);\r\n\r\n const openDrawer = () => {\r\n setIsDrawerOpen(true);\r\n };\r\n\r\n const closeDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n\r\n const toggleDrawer = () => {\r\n setIsDrawerOpen((prev) => !prev);\r\n };\r\n\r\n return (\r\n <DrawerContext.Provider\r\n value={{ isDrawerOpen, openDrawer, closeDrawer, toggleDrawer }}\r\n >\r\n {children}\r\n </DrawerContext.Provider>\r\n );\r\n};\r\n\r\nexport const useDrawer = () => React.useContext(DrawerContext);\r\n\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport LogoutOutlinedIcon from \"@mui/icons-material/LogoutOutlined\";\r\nimport MailIcon from \"@mui/icons-material/Mail\";\r\nimport MenuIcon from \"@mui/icons-material/Menu\";\r\nimport MenuOpenIcon from \"@mui/icons-material/MenuOpen\";\r\nimport MoreIcon from \"@mui/icons-material/MoreVert\";\r\nimport NotificationsActiveOutlined from \"@mui/icons-material/NotificationsActiveOutlined\";\r\nimport PersonOutlineOutlinedIcon from \"@mui/icons-material/PersonOutlineOutlined\";\r\nimport SettingsOutlinedIcon from \"@mui/icons-material/SettingsOutlined\";\r\nimport {\r\n AppBar,\r\n Avatar,\r\n Badge,\r\n Box,\r\n Divider,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemIcon,\r\n ListItemText,\r\n Menu,\r\n MenuItem,\r\n styled,\r\n Toolbar,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { deepOrange } from \"@mui/material/colors\";\r\nimport React from \"react\";\r\nimport { useDrawer } from \"./DrawerContext\";\r\nimport { AppHeaderProps } from \"./types\";\r\nimport \"./styles/Header.scss\";\r\n\r\n// Default routes - absolute paths from root\r\nconst DEFAULT_ROUTES = {\r\n settings: \"/account/overview\",\r\n profile: \"/profile\",\r\n logout: \"/logout\",\r\n};\r\n\r\n// Default logo - can be overridden via props\r\nconst DEFAULT_LOGO = {\r\n first: \"VAR\",\r\n second: \"MINER\",\r\n};\r\n\r\nconst AppHeader: React.FC<AppHeaderProps> = ({\r\n user = {\r\n name: \"Shivam Kumar\",\r\n email: \"shivam@redcliffelabs.com\",\r\n role: \"Lab Technician\",\r\n initials: \"SK\",\r\n },\r\n isOnline = true,\r\n logo,\r\n notificationCount = 0,\r\n messageCount,\r\n onDrawerToggle,\r\n routes,\r\n onSettingsClick,\r\n onProfileClick,\r\n onSignOutClick,\r\n className,\r\n}) => {\r\n // Use provided logo or default\r\n const finalLogo = logo ?? DEFAULT_LOGO;\r\n \r\n const { isDrawerOpen, toggleDrawer } = useDrawer();\r\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\r\n const [mobileMoreAnchorEl, setMobileMoreAnchorEl] =\r\n React.useState<null | HTMLElement>(null);\r\n\r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n // Merge provided routes with defaults - all routes are absolute from root\r\n const finalRoutes = {\r\n settings: routes?.settings ?? DEFAULT_ROUTES.settings,\r\n profile: routes?.profile ?? DEFAULT_ROUTES.profile,\r\n logout: routes?.logout ?? DEFAULT_ROUTES.logout,\r\n };\r\n\r\n const OnlineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"#44b700\",\r\n color: \"#44b700\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const OfflineBadge = styled(Badge)(({ theme }) => ({\r\n \"& .MuiBadge-badge\": {\r\n backgroundColor: \"gray\",\r\n color: \"gray\",\r\n boxShadow: `0 0 0 2px ${theme.palette.background.paper}`,\r\n width: 12,\r\n height: 12,\r\n borderRadius: \"50%\",\r\n },\r\n }));\r\n\r\n const handleDrawerToggle = () => {\r\n toggleDrawer();\r\n onDrawerToggle?.();\r\n };\r\n\r\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleSettingsClick = () => {\r\n handleClose();\r\n if (onSettingsClick) {\r\n onSettingsClick();\r\n } else {\r\n // Use window.location to navigate to absolute path, bypassing React Router basename\r\n const path = finalRoutes.settings.startsWith('/') \r\n ? finalRoutes.settings \r\n : `/${finalRoutes.settings}`;\r\n window.location.href = path;\r\n }\r\n };\r\n\r\n const handleProfileClick = () => {\r\n handleClose();\r\n if (onProfileClick) {\r\n onProfileClick();\r\n } else {\r\n // Use window.location to navigate to absolute path, bypassing React Router basename\r\n const path = finalRoutes.profile.startsWith('/') \r\n ? finalRoutes.profile \r\n : `/${finalRoutes.profile}`;\r\n window.location.href = path;\r\n }\r\n };\r\n\r\n const handleSignOutClick = () => {\r\n handleClose();\r\n if (onSignOutClick) {\r\n onSignOutClick();\r\n } else {\r\n localStorage.clear();\r\n // Use window.location to navigate to absolute path, bypassing React Router basename\r\n const path = finalRoutes.logout.startsWith('/') \r\n ? finalRoutes.logout \r\n : `/${finalRoutes.logout}`;\r\n window.location.href = path;\r\n }\r\n };\r\n\r\n const menuId = \"primary-account-menu\";\r\n\r\n const getInitials = () => {\r\n if (user.initials) return user.initials;\r\n return user.name\r\n .split(\" \")\r\n .map((n) => n[0])\r\n .join(\"\")\r\n .toUpperCase()\r\n .slice(0, 2);\r\n };\r\n\r\n const profileList = (\r\n <List\r\n className=\"profile-menu-section\"\r\n sx={{\r\n width: \"100%\",\r\n maxWidth: 360,\r\n pointerEvents: \"none\",\r\n }}\r\n component=\"div\"\r\n aria-hidden=\"true\"\r\n tabIndex={-1}\r\n >\r\n <ListItem alignItems=\"flex-start\" className=\"profile-menu-item\">\r\n <ListItemAvatar>\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{ bgcolor: deepOrange[500] }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </ListItemAvatar>\r\n <ListItemText\r\n secondary={\r\n <React.Fragment>\r\n <Typography className=\"profile-name\" component=\"p\">\r\n {user.name}\r\n </Typography>\r\n <Typography className=\"profile-email\" component=\"p\">\r\n {user.email}\r\n </Typography>\r\n <Typography className=\"profile-role\" component=\"p\">\r\n Role: {user.role}\r\n </Typography>\r\n </React.Fragment>\r\n }\r\n />\r\n </ListItem>\r\n </List>\r\n );\r\n\r\n const renderMenu = (\r\n <Menu\r\n anchorEl={anchorEl}\r\n id=\"account-menu\"\r\n open={open}\r\n onClose={handleClose}\r\n onClick={handleClose}\r\n slotProps={{\r\n paper: {\r\n elevation: 0,\r\n sx: {\r\n overflow: \"visible\",\r\n filter: \"drop-shadow(0px 2px 8px rgba(0,0,0,0.32))\",\r\n mt: 1.5,\r\n \"& .MuiAvatar-root\": {\r\n width: 32,\r\n height: 32,\r\n ml: -0.5,\r\n mr: 1,\r\n },\r\n \"&::before\": {\r\n content: '\"\"',\r\n display: \"block\",\r\n position: \"absolute\",\r\n top: 0,\r\n right: 14,\r\n width: 10,\r\n height: 10,\r\n bgcolor: \"background.paper\",\r\n transform: \"translateY(-50%) rotate(45deg)\",\r\n zIndex: 0,\r\n },\r\n },\r\n },\r\n }}\r\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\r\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\r\n >\r\n {profileList}\r\n <Divider />\r\n <MenuItem onClick={handleSettingsClick}>\r\n <ListItemIcon>\r\n <SettingsOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Account Settings\r\n </MenuItem>\r\n <MenuItem onClick={handleProfileClick}>\r\n <ListItemIcon>\r\n <PersonOutlineOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Profile\r\n </MenuItem>\r\n <MenuItem onClick={handleSignOutClick}>\r\n <ListItemIcon>\r\n <LogoutOutlinedIcon fontSize=\"small\" />\r\n </ListItemIcon>\r\n Sign out\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n const mobileMenuId = \"primary-account-menu-mobile\";\r\n const renderMobileMenu = (\r\n <Menu\r\n anchorEl={mobileMoreAnchorEl}\r\n anchorOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n id={mobileMenuId}\r\n keepMounted\r\n transformOrigin={{\r\n vertical: \"top\",\r\n horizontal: \"right\",\r\n }}\r\n open={isMobileMenuOpen}\r\n onClose={handleMobileMenuClose}\r\n >\r\n {messageCount !== undefined && (\r\n <MenuItem>\r\n <IconButton \r\n size=\"large\" \r\n aria-label={`show ${messageCount} new mails`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={messageCount} color=\"error\">\r\n <MailIcon />\r\n </Badge>\r\n </IconButton>\r\n <p>Messages</p>\r\n </MenuItem>\r\n )}\r\n {notificationCount > 0 && (\r\n <MenuItem>\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCount} new notifications`}\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n <p>Notifications</p>\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={handleProfileMenuOpen}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"account of current user\"\r\n aria-controls=\"primary-account-menu\"\r\n aria-haspopup=\"true\"\r\n sx={{ color: '#1e2f97' }}\r\n >\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <AccountCircle\r\n titleAccess={user.name}\r\n aria-label=\"User avatar\"\r\n />\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n <p>Profile</p>\r\n </MenuItem>\r\n </Menu>\r\n );\r\n\r\n return (\r\n <Box sx={{ flexGrow: 1 }} className={`app-header ${className || \"\"}`}>\r\n <AppBar\r\n sx={{\r\n position: \"fixed\",\r\n top: 0,\r\n backgroundColor: \"#ffffff\",\r\n }}\r\n >\r\n <Toolbar>\r\n <IconButton\r\n size=\"large\"\r\n edge=\"start\"\r\n aria-label=\"open drawer\"\r\n sx={{ \r\n mr: 2,\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n onClick={handleDrawerToggle}\r\n >\r\n {isDrawerOpen ? (\r\n <MenuOpenIcon fontSize={\"large\"} />\r\n ) : (\r\n <MenuIcon fontSize={\"large\"} />\r\n )}\r\n </IconButton>\r\n <Typography\r\n variant=\"h6\"\r\n noWrap\r\n component=\"div\"\r\n sx={{ display: { xs: \"none\", sm: \"block\" } }}\r\n data-testid=\"var-miner-wrapper\"\r\n >\r\n <span className=\"var\">{finalLogo.first}</span>\r\n <span className=\"miner\">{finalLogo.second}</span>\r\n </Typography>\r\n <Box sx={{ flexGrow: 1 }} />\r\n <Box sx={{ display: { xs: \"none\", md: \"flex\" } }}>\r\n {notificationCount > 0 && (\r\n <IconButton\r\n size=\"large\"\r\n aria-label={`show ${notificationCount} new notifications`}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <Badge badgeContent={notificationCount} color=\"error\">\r\n <NotificationsActiveOutlined />\r\n </Badge>\r\n </IconButton>\r\n )}\r\n <IconButton\r\n size=\"large\"\r\n edge=\"end\"\r\n aria-label=\"account of current user\"\r\n aria-controls={menuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleProfileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n {isOnline ? (\r\n <OnlineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Online\"\r\n aria-label=\"Online status badge\"\r\n data-testid=\"online-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n sizes=\"large\"\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OnlineBadge>\r\n ) : (\r\n <OfflineBadge\r\n overlap=\"circular\"\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n variant=\"dot\"\r\n title=\"Offline\"\r\n aria-label=\"Offline status badge\"\r\n data-testid=\"offline-badge\"\r\n >\r\n <Avatar\r\n sx={{\r\n bgcolor: deepOrange[500],\r\n width: 20,\r\n height: 20,\r\n p: 1,\r\n }}\r\n alt={user.name}\r\n title={user.name}\r\n src={user.avatar}\r\n >\r\n {getInitials()}\r\n </Avatar>\r\n </OfflineBadge>\r\n )}\r\n </IconButton>\r\n </Box>\r\n <Box sx={{ display: { xs: \"flex\", md: \"none\" } }}>\r\n <IconButton\r\n size=\"large\"\r\n aria-label=\"show more\"\r\n aria-controls={mobileMenuId}\r\n aria-haspopup=\"true\"\r\n onClick={handleMobileMenuOpen}\r\n sx={{\r\n color: '#1e2f97',\r\n '&:hover': {\r\n backgroundColor: 'rgba(30, 47, 151, 0.04)',\r\n }\r\n }}\r\n >\r\n <MoreIcon />\r\n </IconButton>\r\n </Box>\r\n </Toolbar>\r\n </AppBar>\r\n {renderMobileMenu}\r\n {renderMenu}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default AppHeader;\r\n\r\n"],"names":["React","_jsx","styled","Badge","List","_jsxs","ListItem","ListItemAvatar","Avatar","deepOrange","ListItemText","Typography","Menu","Divider","MenuItem","ListItemIcon","IconButton","Box","AppBar","Toolbar"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "varminer-app-header",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "type": "module",
5
5
  "description": "A plug-and-play React header component with Material-UI, drawer toggle, notifications, and user profile menu",
6
6
  "main": "dist/index.js",
@@ -54,13 +54,13 @@
54
54
  },
55
55
  "homepage": "https://github.com/your-org/app-header#readme",
56
56
  "peerDependencies": {
57
+ "@emotion/react": "^11.0.0",
58
+ "@emotion/styled": "^11.0.0",
59
+ "@mui/icons-material": "^5.0.0 || ^6.0.0 || ^7.0.0",
60
+ "@mui/material": "^5.0.0 || ^6.0.0 || ^7.0.0",
57
61
  "react": "^18.0.0 || ^19.0.0",
58
62
  "react-dom": "^18.0.0 || ^19.0.0",
59
- "react-router-dom": "^6.0.0 || ^7.0.0",
60
- "@mui/material": "^5.0.0 || ^6.0.0 || ^7.0.0",
61
- "@mui/icons-material": "^5.0.0 || ^6.0.0 || ^7.0.0",
62
- "@emotion/react": "^11.0.0",
63
- "@emotion/styled": "^11.0.0"
63
+ "react-router-dom": "^6.0.0 || ^7.0.0"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@rollup/plugin-commonjs": "^25.0.7",
@@ -70,11 +70,13 @@
70
70
  "@types/react-dom": "^18.2.0",
71
71
  "rollup": "^4.9.0",
72
72
  "rollup-plugin-dts": "^6.1.0",
73
- "rollup-plugin-postcss": "^4.0.2",
74
73
  "rollup-plugin-peer-deps-external": "^2.2.4",
74
+ "rollup-plugin-postcss": "^4.0.2",
75
75
  "sass": "^1.69.0",
76
76
  "tslib": "^2.6.2",
77
77
  "typescript": "^5.3.0"
78
+ },
79
+ "dependencies": {
80
+ "varminer-app-header": "^1.0.1"
78
81
  }
79
82
  }
80
-