@drodil/backstage-plugin-qeta-react 3.12.1 → 3.12.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.
|
@@ -60,12 +60,28 @@ const LeftMenu = (props) => {
|
|
|
60
60
|
loading: loadingUser,
|
|
61
61
|
error: userError
|
|
62
62
|
} = useIdentityApi((api) => api.getBackstageIdentity(), []);
|
|
63
|
+
const StyledMenuItem = styled(MenuItem)(
|
|
64
|
+
({ theme, ...p }) => {
|
|
65
|
+
return p.active ? {
|
|
66
|
+
width: "100%",
|
|
67
|
+
color: theme.palette.primary.contrastText,
|
|
68
|
+
backgroundColor: theme.palette.primary.light,
|
|
69
|
+
borderRadius: 1,
|
|
70
|
+
"&:hover": {
|
|
71
|
+
backgroundColor: theme.palette.primary.dark
|
|
72
|
+
},
|
|
73
|
+
"& svg": {
|
|
74
|
+
color: theme.palette.primary.contrastText
|
|
75
|
+
}
|
|
76
|
+
} : { width: "100%", backgroundColor: "initial", borderRadius: 1 };
|
|
77
|
+
}
|
|
78
|
+
);
|
|
63
79
|
const CustomMenuItem = ({
|
|
64
80
|
route,
|
|
65
81
|
children
|
|
66
82
|
}) => {
|
|
67
83
|
return /* @__PURE__ */ React__default.createElement(
|
|
68
|
-
|
|
84
|
+
StyledMenuItem,
|
|
69
85
|
{
|
|
70
86
|
onClick: (e) => {
|
|
71
87
|
navigate(route);
|
|
@@ -73,20 +89,7 @@ const LeftMenu = (props) => {
|
|
|
73
89
|
props.onClick(e);
|
|
74
90
|
}
|
|
75
91
|
},
|
|
76
|
-
|
|
77
|
-
...route === location.pathname ? {
|
|
78
|
-
color: "primary.contrastText",
|
|
79
|
-
backgroundColor: "primary.light",
|
|
80
|
-
borderRadius: 1,
|
|
81
|
-
"&:hover": {
|
|
82
|
-
backgroundColor: "primary.dark"
|
|
83
|
-
},
|
|
84
|
-
"& svg": {
|
|
85
|
-
color: "primary.contrastText"
|
|
86
|
-
}
|
|
87
|
-
} : { backgroundColor: "initial", borderRadius: 1 }
|
|
88
|
-
},
|
|
89
|
-
style: { width: "100%" }
|
|
92
|
+
active: route === location.pathname
|
|
90
93
|
},
|
|
91
94
|
children
|
|
92
95
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftMenu.esm.js","sources":["../../../src/components/LeftMenu/LeftMenu.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItem from '@mui/material/ListItem';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport MenuList from '@mui/material/MenuList';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport AccountBox from '@mui/icons-material/AccountBox';\nimport LoyaltyOutlined from '@mui/icons-material/LoyaltyOutlined';\nimport StarIcon from '@mui/icons-material/Star';\nimport React, { ReactNode } from 'react';\nimport { useApp, useRouteRef } from '@backstage/core-plugin-api';\nimport HelpOutlined from '@mui/icons-material/HelpOutlined';\nimport { useNavigate } from 'react-router-dom';\nimport Home from '@mui/icons-material/Home';\nimport { useLocation } from 'react-use';\nimport CollectionsBookmarkIcon from '@mui/icons-material/CollectionsBookmark';\nimport PlaylistPlay from '@mui/icons-material/PlaylistPlay';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport { GroupIcon } from '@backstage/core-components';\nimport {\n articlesRouteRef,\n collectionsRouteRef,\n entitiesRouteRef,\n favoriteQuestionsRouteRef,\n moderatorRouteRef,\n qetaRouteRef,\n questionsRouteRef,\n statisticsRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n} from '../../routes';\nimport { TrophyIcon } from '../TopRankingUsersCard';\nimport { useIdentityApi, useIsModerator, useTranslation } from '../../hooks';\nimport { styled } from '@mui/system';\n\nconst LeftMenuItem = styled(ListItemIcon)({\n minWidth: '26px !important',\n});\n\nexport const LeftMenu = (props: {\n onKeyDown?: (event: React.KeyboardEvent) => void;\n autoFocusItem?: boolean;\n onClick?: (\n event: MouseEvent | TouchEvent | React.MouseEvent<EventTarget>,\n ) => void;\n inPopup?: boolean;\n}) => {\n const rootRoute = useRouteRef(qetaRouteRef);\n const tagsRoute = useRouteRef(tagsRouteRef);\n const favoritesRoute = useRouteRef(favoriteQuestionsRouteRef);\n const statisticsRoute = useRouteRef(statisticsRouteRef);\n const userRoute = useRouteRef(userRouteRef);\n const questionsRoute = useRouteRef(questionsRouteRef);\n const articlesRoute = useRouteRef(articlesRouteRef);\n const collectionsRoute = useRouteRef(collectionsRouteRef);\n const entitiesRoute = useRouteRef(entitiesRouteRef);\n const usersRoute = useRouteRef(usersRouteRef);\n const moderatorRoute = useRouteRef(moderatorRouteRef);\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const { isModerator } = useIsModerator();\n const app = useApp();\n const {\n value: user,\n loading: loadingUser,\n error: userError,\n } = useIdentityApi(api => api.getBackstageIdentity(), []);\n\n const CustomMenuItem = ({\n route,\n children,\n }: {\n route: string;\n children: ReactNode[];\n }) => {\n return (\n <MenuItem\n onClick={e => {\n navigate(route);\n if (props.onClick) {\n props.onClick(e);\n }\n }}\n sx={{\n ...(route === location.pathname\n ? {\n color: 'primary.contrastText',\n backgroundColor: 'primary.light',\n borderRadius: 1,\n '&:hover': {\n backgroundColor: 'primary.dark',\n },\n '& svg': {\n color: 'primary.contrastText',\n },\n }\n : { backgroundColor: 'initial', borderRadius: 1 }),\n }}\n style={{ width: '100%' }}\n >\n {children}\n </MenuItem>\n );\n };\n\n const EntityIcon = app.getSystemIcon('kind:system') ?? SvgIcon;\n\n return (\n <MenuList\n id=\"left-menu\"\n sx={{\n top: '0',\n maxWidth: '165px',\n paddingTop: '2rem',\n ...(props.inPopup\n ? { marginRight: 0, padding: '0.5rem' }\n : {\n marginRight: 4,\n float: 'right',\n position: 'sticky',\n }),\n }}\n onKeyDown={props.onKeyDown}\n autoFocusItem={props.autoFocusItem}\n >\n <Box\n display={\n props.inPopup\n ? {}\n : { xs: 'none', sm: 'none', md: 'none', lg: 'block' }\n }\n >\n <CustomMenuItem route={rootRoute()}>\n <LeftMenuItem>\n <Home fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.home')}\n </CustomMenuItem>\n <ListItem>\n <Typography variant=\"subtitle2\">{t('leftMenu.content')}</Typography>\n </ListItem>\n <CustomMenuItem route={questionsRoute()}>\n <LeftMenuItem>\n <HelpOutlined fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.questions')}\n </CustomMenuItem>\n <CustomMenuItem route={articlesRoute()}>\n <LeftMenuItem>\n <CollectionsBookmarkIcon fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.articles')}\n </CustomMenuItem>\n <CustomMenuItem route={favoritesRoute()}>\n <LeftMenuItem>\n <StarIcon fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.favoriteQuestions')}\n </CustomMenuItem>\n <CustomMenuItem route={entitiesRoute()}>\n <LeftMenuItem>\n <EntityIcon fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.entities')}\n </CustomMenuItem>\n <CustomMenuItem route={tagsRoute()}>\n <LeftMenuItem>\n <LoyaltyOutlined fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.tags')}\n </CustomMenuItem>\n <ListItem>\n <Typography variant=\"subtitle2\">{t('leftMenu.community')}</Typography>\n </ListItem>\n <CustomMenuItem route={collectionsRoute()}>\n <LeftMenuItem>\n <PlaylistPlay fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.collections')}\n </CustomMenuItem>\n <CustomMenuItem route={usersRoute()}>\n <LeftMenuItem>\n <GroupIcon fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.users')}\n </CustomMenuItem>\n {user && !loadingUser && !userError && (\n <CustomMenuItem route={`${userRoute()}/${user.userEntityRef}`}>\n <LeftMenuItem>\n <AccountBox fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.profile')}\n </CustomMenuItem>\n )}\n <CustomMenuItem route={statisticsRoute()}>\n <LeftMenuItem>\n <TrophyIcon />\n </LeftMenuItem>\n {t('leftMenu.statistics')}\n </CustomMenuItem>\n {isModerator && (\n <>\n <ListItem>\n <Typography variant=\"subtitle2\">\n {t('leftMenu.manage')}\n </Typography>\n </ListItem>\n <CustomMenuItem route={moderatorRoute()}>\n <LeftMenuItem>\n <SettingsIcon />\n </LeftMenuItem>\n {t('leftMenu.moderate')}\n </CustomMenuItem>\n </>\n )}\n </Box>\n </MenuList>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LeftMenu.esm.js","sources":["../../../src/components/LeftMenu/LeftMenu.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport type { MenuItemProps } from '@mui/material/MenuItem';\nimport MenuItem from '@mui/material/MenuItem';\nimport ListItem from '@mui/material/ListItem';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport MenuList from '@mui/material/MenuList';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport AccountBox from '@mui/icons-material/AccountBox';\nimport LoyaltyOutlined from '@mui/icons-material/LoyaltyOutlined';\nimport StarIcon from '@mui/icons-material/Star';\nimport React, { ReactNode } from 'react';\nimport { useApp, useRouteRef } from '@backstage/core-plugin-api';\nimport HelpOutlined from '@mui/icons-material/HelpOutlined';\nimport { useNavigate } from 'react-router-dom';\nimport Home from '@mui/icons-material/Home';\nimport { useLocation } from 'react-use';\nimport CollectionsBookmarkIcon from '@mui/icons-material/CollectionsBookmark';\nimport PlaylistPlay from '@mui/icons-material/PlaylistPlay';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport { GroupIcon } from '@backstage/core-components';\nimport {\n articlesRouteRef,\n collectionsRouteRef,\n entitiesRouteRef,\n favoriteQuestionsRouteRef,\n moderatorRouteRef,\n qetaRouteRef,\n questionsRouteRef,\n statisticsRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n} from '../../routes';\nimport { TrophyIcon } from '../TopRankingUsersCard';\nimport { useIdentityApi, useIsModerator, useTranslation } from '../../hooks';\nimport { styled } from '@mui/system';\n\nconst LeftMenuItem = styled(ListItemIcon)({\n minWidth: '26px !important',\n});\n\nexport const LeftMenu = (props: {\n onKeyDown?: (event: React.KeyboardEvent) => void;\n autoFocusItem?: boolean;\n onClick?: (\n event: MouseEvent | TouchEvent | React.MouseEvent<EventTarget>,\n ) => void;\n inPopup?: boolean;\n}) => {\n const rootRoute = useRouteRef(qetaRouteRef);\n const tagsRoute = useRouteRef(tagsRouteRef);\n const favoritesRoute = useRouteRef(favoriteQuestionsRouteRef);\n const statisticsRoute = useRouteRef(statisticsRouteRef);\n const userRoute = useRouteRef(userRouteRef);\n const questionsRoute = useRouteRef(questionsRouteRef);\n const articlesRoute = useRouteRef(articlesRouteRef);\n const collectionsRoute = useRouteRef(collectionsRouteRef);\n const entitiesRoute = useRouteRef(entitiesRouteRef);\n const usersRoute = useRouteRef(usersRouteRef);\n const moderatorRoute = useRouteRef(moderatorRouteRef);\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const { isModerator } = useIsModerator();\n const app = useApp();\n const {\n value: user,\n loading: loadingUser,\n error: userError,\n } = useIdentityApi(api => api.getBackstageIdentity(), []);\n\n const StyledMenuItem = styled(MenuItem)<MenuItemProps & { active: boolean }>(\n ({ theme, ...p }) => {\n return p.active\n ? {\n width: '100%',\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.light,\n borderRadius: 1,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n },\n '& svg': {\n color: theme.palette.primary.contrastText,\n },\n }\n : { width: '100%', backgroundColor: 'initial', borderRadius: 1 };\n },\n );\n\n const CustomMenuItem = ({\n route,\n children,\n }: {\n route: string;\n children: ReactNode[];\n }) => {\n return (\n <StyledMenuItem\n onClick={e => {\n navigate(route);\n if (props.onClick) {\n props.onClick(e);\n }\n }}\n active={route === location.pathname}\n >\n {children}\n </StyledMenuItem>\n );\n };\n\n const EntityIcon = app.getSystemIcon('kind:system') ?? SvgIcon;\n\n return (\n <MenuList\n id=\"left-menu\"\n sx={{\n top: '0',\n maxWidth: '165px',\n paddingTop: '2rem',\n ...(props.inPopup\n ? { marginRight: 0, padding: '0.5rem' }\n : {\n marginRight: 4,\n float: 'right',\n position: 'sticky',\n }),\n }}\n onKeyDown={props.onKeyDown}\n autoFocusItem={props.autoFocusItem}\n >\n <Box\n display={\n props.inPopup\n ? {}\n : { xs: 'none', sm: 'none', md: 'none', lg: 'block' }\n }\n >\n <CustomMenuItem route={rootRoute()}>\n <LeftMenuItem>\n <Home fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.home')}\n </CustomMenuItem>\n <ListItem>\n <Typography variant=\"subtitle2\">{t('leftMenu.content')}</Typography>\n </ListItem>\n <CustomMenuItem route={questionsRoute()}>\n <LeftMenuItem>\n <HelpOutlined fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.questions')}\n </CustomMenuItem>\n <CustomMenuItem route={articlesRoute()}>\n <LeftMenuItem>\n <CollectionsBookmarkIcon fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.articles')}\n </CustomMenuItem>\n <CustomMenuItem route={favoritesRoute()}>\n <LeftMenuItem>\n <StarIcon fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.favoriteQuestions')}\n </CustomMenuItem>\n <CustomMenuItem route={entitiesRoute()}>\n <LeftMenuItem>\n <EntityIcon fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.entities')}\n </CustomMenuItem>\n <CustomMenuItem route={tagsRoute()}>\n <LeftMenuItem>\n <LoyaltyOutlined fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.tags')}\n </CustomMenuItem>\n <ListItem>\n <Typography variant=\"subtitle2\">{t('leftMenu.community')}</Typography>\n </ListItem>\n <CustomMenuItem route={collectionsRoute()}>\n <LeftMenuItem>\n <PlaylistPlay fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.collections')}\n </CustomMenuItem>\n <CustomMenuItem route={usersRoute()}>\n <LeftMenuItem>\n <GroupIcon fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.users')}\n </CustomMenuItem>\n {user && !loadingUser && !userError && (\n <CustomMenuItem route={`${userRoute()}/${user.userEntityRef}`}>\n <LeftMenuItem>\n <AccountBox fontSize=\"small\" />\n </LeftMenuItem>\n {t('leftMenu.profile')}\n </CustomMenuItem>\n )}\n <CustomMenuItem route={statisticsRoute()}>\n <LeftMenuItem>\n <TrophyIcon />\n </LeftMenuItem>\n {t('leftMenu.statistics')}\n </CustomMenuItem>\n {isModerator && (\n <>\n <ListItem>\n <Typography variant=\"subtitle2\">\n {t('leftMenu.manage')}\n </Typography>\n </ListItem>\n <CustomMenuItem route={moderatorRoute()}>\n <LeftMenuItem>\n <SettingsIcon />\n </LeftMenuItem>\n {t('leftMenu.moderate')}\n </CustomMenuItem>\n </>\n )}\n </Box>\n </MenuList>\n );\n};\n"],"names":["React"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"frontend",
|
|
8
8
|
"backstage.io"
|
|
9
9
|
],
|
|
10
|
-
"version": "3.12.
|
|
10
|
+
"version": "3.12.2",
|
|
11
11
|
"main": "dist/index.esm.js",
|
|
12
12
|
"types": "dist/index.d.ts",
|
|
13
13
|
"prepublishOnly": "yarn tsc && yarn build",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@backstage/plugin-catalog-react": "^1.14.1",
|
|
57
57
|
"@backstage/plugin-permission-react": "^0.4.28",
|
|
58
58
|
"@backstage/plugin-signals-react": "^0.0.7",
|
|
59
|
-
"@drodil/backstage-plugin-qeta-common": "^3.12.
|
|
59
|
+
"@drodil/backstage-plugin-qeta-common": "^3.12.2",
|
|
60
60
|
"@mui/icons-material": "^5.16.7",
|
|
61
61
|
"@mui/lab": "^5.0.0-alpha.169",
|
|
62
62
|
"@mui/material": "^5.16.7",
|