@drodil/backstage-plugin-qeta-react 3.49.0 → 3.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/components/Buttons/OpenLinkButton.esm.js +6 -1
  2. package/dist/components/Buttons/OpenLinkButton.esm.js.map +1 -1
  3. package/dist/components/CollectionsGrid/CollectionsGridItem.esm.js +8 -10
  4. package/dist/components/CollectionsGrid/CollectionsGridItem.esm.js.map +1 -1
  5. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js +84 -84
  6. package/dist/components/EntitiesGrid/EntitiesGridItem.esm.js.map +1 -1
  7. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js +27 -22
  8. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js.map +1 -1
  9. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js +6 -3
  10. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js.map +1 -1
  11. package/dist/components/FollowedLists/FollowedTagsList.esm.js +27 -22
  12. package/dist/components/FollowedLists/FollowedTagsList.esm.js.map +1 -1
  13. package/dist/components/FollowedLists/FollowedUsersList.esm.js +6 -3
  14. package/dist/components/FollowedLists/FollowedUsersList.esm.js.map +1 -1
  15. package/dist/components/HomePageCards/ImpactCard.esm.js +2 -3
  16. package/dist/components/HomePageCards/ImpactCard.esm.js.map +1 -1
  17. package/dist/components/LeftMenu/LeftMenu.esm.js +1 -1
  18. package/dist/components/LeftMenu/LeftMenu.esm.js.map +1 -1
  19. package/dist/components/PostHighlightList/PostHighlightList.esm.js +6 -3
  20. package/dist/components/PostHighlightList/PostHighlightList.esm.js.map +1 -1
  21. package/dist/components/PostsContainer/PostListItem.esm.js +8 -13
  22. package/dist/components/PostsContainer/PostListItem.esm.js.map +1 -1
  23. package/dist/components/PostsGrid/PostsGridItem.esm.js +6 -2
  24. package/dist/components/PostsGrid/PostsGridItem.esm.js.map +1 -1
  25. package/dist/components/TagsAndEntities/EntityChip.esm.js +8 -7
  26. package/dist/components/TagsAndEntities/EntityChip.esm.js.map +1 -1
  27. package/dist/components/TagsAndEntities/TagChip.esm.js +8 -7
  28. package/dist/components/TagsAndEntities/TagChip.esm.js.map +1 -1
  29. package/dist/components/TagsGrid/TagGridItem.esm.js +157 -154
  30. package/dist/components/TagsGrid/TagGridItem.esm.js.map +1 -1
  31. package/dist/components/UsersGrid/UsersGridItem.esm.js +113 -113
  32. package/dist/components/UsersGrid/UsersGridItem.esm.js.map +1 -1
  33. package/dist/components/Utility/ClickableLink.esm.js +28 -0
  34. package/dist/components/Utility/ClickableLink.esm.js.map +1 -0
  35. package/dist/index.d.ts +1 -1
  36. package/dist/index.esm.js +2 -0
  37. package/dist/index.esm.js.map +1 -1
  38. package/package.json +2 -2
@@ -1,6 +1,5 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useRouteRef } from '@backstage/core-plugin-api';
3
- import { useNavigate } from 'react-router-dom';
4
3
  import { useEntityPresentation } from '@backstage/plugin-catalog-react';
5
4
  import { userRouteRef } from '../../routes.esm.js';
6
5
  import '../../api.esm.js';
@@ -22,6 +21,7 @@ import LinkIcon from '@material-ui/icons/Link';
22
21
  import { qetaTranslationRef } from '../../translation.esm.js';
23
22
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
24
23
  import useGridItemStyles from '../GridItemStyles/useGridItemStyles.esm.js';
24
+ import { ClickableLink } from '../Utility/ClickableLink.esm.js';
25
25
 
26
26
  const useStyles = makeStyles((theme) => ({
27
27
  statsGrid: {
@@ -44,7 +44,6 @@ const UsersGridItem = (props) => {
44
44
  const classes = useGridItemStyles();
45
45
  const localClasses = useStyles();
46
46
  const userRoute = useRouteRef(userRouteRef);
47
- const navigate = useNavigate();
48
47
  const { t } = useTranslationRef(qetaTranslationRef);
49
48
  const { primaryTitle, Icon } = useEntityPresentation(user.userRef);
50
49
  const {
@@ -58,14 +57,15 @@ const UsersGridItem = (props) => {
58
57
  loading: loadingUser,
59
58
  error: userError
60
59
  } = useIdentityApi((api) => api.getBackstageIdentity(), []);
61
- return /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, xl: 4, children: /* @__PURE__ */ jsxs(
62
- Card,
63
- {
64
- className: classes.card,
65
- style: { cursor: "pointer" },
66
- onClick: () => navigate(`${userRoute()}/${user.userRef}`),
67
- children: [
68
- /* @__PURE__ */ jsxs(Box, { className: classes.cardHeader, display: "flex", alignItems: "center", children: [
60
+ const href = `${userRoute()}/${user.userRef}`;
61
+ return /* @__PURE__ */ jsx(Grid, { item: true, xs: 12, md: 6, xl: 4, children: /* @__PURE__ */ jsx(Card, { className: classes.card, children: /* @__PURE__ */ jsxs(ClickableLink, { href, ariaLabel: primaryTitle, children: [
62
+ /* @__PURE__ */ jsxs(
63
+ Box,
64
+ {
65
+ className: classes.cardHeader,
66
+ display: "flex",
67
+ alignItems: "center",
68
+ children: [
69
69
  Icon && /* @__PURE__ */ jsx(
70
70
  Avatar,
71
71
  {
@@ -78,113 +78,113 @@ const UsersGridItem = (props) => {
78
78
  }
79
79
  ),
80
80
  /* @__PURE__ */ jsx(Box, { flex: 1, minWidth: 0, children: /* @__PURE__ */ jsx(Tooltip, { title: secondaryTitle ?? "", arrow: true, children: /* @__PURE__ */ jsx(Typography, { variant: "h6", noWrap: true, children: primaryTitle }) }) }),
81
- !loadingUser && !userError && currentUser?.userEntityRef !== user.userRef ? /* @__PURE__ */ jsx(Box, { flexShrink: 0, children: /* @__PURE__ */ jsx(
82
- "div",
81
+ !loadingUser && !userError && currentUser?.userEntityRef !== user.userRef ? /* @__PURE__ */ jsx(
82
+ Box,
83
83
  {
84
- onClick: (e) => e.stopPropagation(),
85
- onKeyPress: () => {
84
+ flexShrink: 0,
85
+ onClick: (e) => {
86
+ e.preventDefault();
87
+ e.stopPropagation();
86
88
  },
87
- role: "button",
88
- tabIndex: 0,
89
89
  children: /* @__PURE__ */ jsx(UserFollowButton, { userRef: user.userRef })
90
90
  }
91
- ) }) : null
92
- ] }),
93
- /* @__PURE__ */ jsx(
94
- CardContent,
95
- {
96
- className: `${classes.cardContent} ${localClasses.flexColumn}`,
97
- children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 1, className: localClasses.statsGrid, children: [
98
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
99
- Box,
100
- {
101
- display: "flex",
102
- flexDirection: "column",
103
- alignItems: "center",
104
- className: localClasses.statItem,
105
- children: [
106
- /* @__PURE__ */ jsx(QuestionAnswerIcon, { fontSize: "small", color: "disabled" }),
107
- /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalQuestions }),
108
- /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.questions") })
109
- ]
110
- }
111
- ) }),
112
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
113
- Box,
114
- {
115
- display: "flex",
116
- flexDirection: "column",
117
- alignItems: "center",
118
- className: localClasses.statItem,
119
- children: [
120
- /* @__PURE__ */ jsx(CheckCircle, { fontSize: "small", color: "disabled" }),
121
- /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalAnswers }),
122
- /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.answers") })
123
- ]
124
- }
125
- ) }),
126
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
127
- Box,
128
- {
129
- display: "flex",
130
- flexDirection: "column",
131
- alignItems: "center",
132
- className: localClasses.statItem,
133
- children: [
134
- /* @__PURE__ */ jsx(ThumbUp, { fontSize: "small", color: "disabled" }),
135
- /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalVotes }),
136
- /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.votes") })
137
- ]
138
- }
139
- ) }),
140
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
141
- Box,
142
- {
143
- display: "flex",
144
- flexDirection: "column",
145
- alignItems: "center",
146
- className: localClasses.statItem,
147
- children: [
148
- /* @__PURE__ */ jsx(DescriptionIcon, { fontSize: "small", color: "disabled" }),
149
- /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalArticles }),
150
- /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.articles") })
151
- ]
152
- }
153
- ) }),
154
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
155
- Box,
156
- {
157
- display: "flex",
158
- flexDirection: "column",
159
- alignItems: "center",
160
- className: localClasses.statItem,
161
- children: [
162
- /* @__PURE__ */ jsx(Visibility, { fontSize: "small", color: "disabled" }),
163
- /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalViews }),
164
- /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.views") })
165
- ]
166
- }
167
- ) }),
168
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
169
- Box,
170
- {
171
- display: "flex",
172
- flexDirection: "column",
173
- alignItems: "center",
174
- className: localClasses.statItem,
175
- children: [
176
- /* @__PURE__ */ jsx(LinkIcon, { fontSize: "small", color: "disabled" }),
177
- /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalLinks }),
178
- /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.links") })
179
- ]
180
- }
181
- ) })
182
- ] })
183
- }
184
- )
185
- ]
186
- }
187
- ) });
91
+ ) : null
92
+ ]
93
+ }
94
+ ),
95
+ /* @__PURE__ */ jsx(
96
+ CardContent,
97
+ {
98
+ className: `${classes.cardContent} ${localClasses.flexColumn}`,
99
+ children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 1, className: localClasses.statsGrid, children: [
100
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
101
+ Box,
102
+ {
103
+ display: "flex",
104
+ flexDirection: "column",
105
+ alignItems: "center",
106
+ className: localClasses.statItem,
107
+ children: [
108
+ /* @__PURE__ */ jsx(QuestionAnswerIcon, { fontSize: "small", color: "disabled" }),
109
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalQuestions }),
110
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.questions") })
111
+ ]
112
+ }
113
+ ) }),
114
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
115
+ Box,
116
+ {
117
+ display: "flex",
118
+ flexDirection: "column",
119
+ alignItems: "center",
120
+ className: localClasses.statItem,
121
+ children: [
122
+ /* @__PURE__ */ jsx(CheckCircle, { fontSize: "small", color: "disabled" }),
123
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalAnswers }),
124
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.answers") })
125
+ ]
126
+ }
127
+ ) }),
128
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
129
+ Box,
130
+ {
131
+ display: "flex",
132
+ flexDirection: "column",
133
+ alignItems: "center",
134
+ className: localClasses.statItem,
135
+ children: [
136
+ /* @__PURE__ */ jsx(ThumbUp, { fontSize: "small", color: "disabled" }),
137
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalVotes }),
138
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.votes") })
139
+ ]
140
+ }
141
+ ) }),
142
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
143
+ Box,
144
+ {
145
+ display: "flex",
146
+ flexDirection: "column",
147
+ alignItems: "center",
148
+ className: localClasses.statItem,
149
+ children: [
150
+ /* @__PURE__ */ jsx(DescriptionIcon, { fontSize: "small", color: "disabled" }),
151
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalArticles }),
152
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.articles") })
153
+ ]
154
+ }
155
+ ) }),
156
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
157
+ Box,
158
+ {
159
+ display: "flex",
160
+ flexDirection: "column",
161
+ alignItems: "center",
162
+ className: localClasses.statItem,
163
+ children: [
164
+ /* @__PURE__ */ jsx(Visibility, { fontSize: "small", color: "disabled" }),
165
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalViews }),
166
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.views") })
167
+ ]
168
+ }
169
+ ) }),
170
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsxs(
171
+ Box,
172
+ {
173
+ display: "flex",
174
+ flexDirection: "column",
175
+ alignItems: "center",
176
+ className: localClasses.statItem,
177
+ children: [
178
+ /* @__PURE__ */ jsx(LinkIcon, { fontSize: "small", color: "disabled" }),
179
+ /* @__PURE__ */ jsx(Typography, { variant: "body2", style: { fontWeight: 600 }, children: user.totalLinks }),
180
+ /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "textSecondary", children: t("common.links") })
181
+ ]
182
+ }
183
+ ) })
184
+ ] })
185
+ }
186
+ )
187
+ ] }) }) });
188
188
  };
189
189
 
190
190
  export { UsersGridItem };
@@ -1 +1 @@
1
- {"version":3,"file":"UsersGridItem.esm.js","sources":["../../../src/components/UsersGrid/UsersGridItem.tsx"],"sourcesContent":["import { UserResponse } from '@drodil/backstage-plugin-qeta-common';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { useNavigate } from 'react-router-dom';\nimport { useEntityPresentation } from '@backstage/plugin-catalog-react';\nimport { userRouteRef } from '../../routes';\nimport { useIdentityApi } from '../../hooks';\nimport { useEntityAuthor } from '../../hooks/useEntityAuthor';\nimport {\n Avatar,\n Card,\n CardContent,\n Grid,\n Tooltip,\n Typography,\n Box,\n makeStyles,\n} from '@material-ui/core';\nimport { UserFollowButton } from '../Buttons/UserFollowButton';\nimport Visibility from '@material-ui/icons/Visibility';\nimport QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';\nimport ThumbUpIcon from '@material-ui/icons/ThumbUp';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport LinkIcon from '@material-ui/icons/Link';\nimport { qetaTranslationRef } from '../../translation.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport useGridItemStyles from '../GridItemStyles/useGridItemStyles';\n\nconst useStyles = makeStyles(theme => ({\n statsGrid: {\n marginTop: 'auto',\n },\n statItem: {\n padding: theme.spacing(1),\n borderRadius: theme.shape.borderRadius,\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n },\n flexColumn: {\n display: 'flex',\n flexDirection: 'column',\n },\n}));\n\nexport const UsersGridItem = (props: { user: UserResponse }) => {\n const { user } = props;\n const classes = useGridItemStyles();\n const localClasses = useStyles();\n const userRoute = useRouteRef(userRouteRef);\n const navigate = useNavigate();\n const { t } = useTranslationRef(qetaTranslationRef);\n const { primaryTitle, Icon } = useEntityPresentation(user.userRef);\n const {\n name,\n initials,\n user: userEntity,\n secondaryTitle,\n } = useEntityAuthor(user);\n const {\n value: currentUser,\n loading: loadingUser,\n error: userError,\n } = useIdentityApi(api => api.getBackstageIdentity(), []);\n\n return (\n <Grid item xs={12} md={6} xl={4}>\n <Card\n className={classes.card}\n style={{ cursor: 'pointer' }}\n onClick={() => navigate(`${userRoute()}/${user.userRef}`)}\n >\n <Box className={classes.cardHeader} display=\"flex\" alignItems=\"center\">\n {Icon && (\n <Avatar\n src={userEntity?.spec?.profile?.picture}\n className=\"avatar\"\n alt={name}\n variant=\"rounded\"\n style={{ marginRight: 16 }}\n >\n {initials}\n </Avatar>\n )}\n <Box flex={1} minWidth={0}>\n <Tooltip title={secondaryTitle ?? ''} arrow>\n <Typography variant=\"h6\" noWrap>\n {primaryTitle}\n </Typography>\n </Tooltip>\n </Box>\n {!loadingUser &&\n !userError &&\n currentUser?.userEntityRef !== user.userRef ? (\n <Box flexShrink={0}>\n <div\n onClick={e => e.stopPropagation()}\n onKeyPress={() => {}}\n role=\"button\"\n tabIndex={0}\n >\n <UserFollowButton userRef={user.userRef} />\n </div>\n </Box>\n ) : null}\n </Box>\n <CardContent\n className={`${classes.cardContent} ${localClasses.flexColumn}`}\n >\n <Grid container spacing={1} className={localClasses.statsGrid}>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <QuestionAnswerIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalQuestions}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.questions')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <CheckCircleIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalAnswers}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.answers')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <ThumbUpIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalVotes}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.votes')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <DescriptionIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalArticles}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.articles')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <Visibility fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalViews}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.views')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <LinkIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalLinks}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.links')}\n </Typography>\n </Box>\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n </Grid>\n );\n};\n"],"names":["CheckCircleIcon","ThumbUpIcon"],"mappings":"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"}
1
+ {"version":3,"file":"UsersGridItem.esm.js","sources":["../../../src/components/UsersGrid/UsersGridItem.tsx"],"sourcesContent":["import { UserResponse } from '@drodil/backstage-plugin-qeta-common';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { useEntityPresentation } from '@backstage/plugin-catalog-react';\nimport { userRouteRef } from '../../routes';\nimport { useIdentityApi } from '../../hooks';\nimport { useEntityAuthor } from '../../hooks/useEntityAuthor';\nimport {\n Avatar,\n Box,\n Card,\n CardContent,\n Grid,\n makeStyles,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport { UserFollowButton } from '../Buttons/UserFollowButton';\nimport Visibility from '@material-ui/icons/Visibility';\nimport QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';\nimport ThumbUpIcon from '@material-ui/icons/ThumbUp';\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\nimport DescriptionIcon from '@material-ui/icons/Description';\nimport LinkIcon from '@material-ui/icons/Link';\nimport { qetaTranslationRef } from '../../translation.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport useGridItemStyles from '../GridItemStyles/useGridItemStyles';\nimport { ClickableLink } from '../Utility/ClickableLink';\n\nconst useStyles = makeStyles(theme => ({\n statsGrid: {\n marginTop: 'auto',\n },\n statItem: {\n padding: theme.spacing(1),\n borderRadius: theme.shape.borderRadius,\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n },\n flexColumn: {\n display: 'flex',\n flexDirection: 'column',\n },\n}));\n\nexport const UsersGridItem = (props: { user: UserResponse }) => {\n const { user } = props;\n const classes = useGridItemStyles();\n const localClasses = useStyles();\n const userRoute = useRouteRef(userRouteRef);\n const { t } = useTranslationRef(qetaTranslationRef);\n const { primaryTitle, Icon } = useEntityPresentation(user.userRef);\n const {\n name,\n initials,\n user: userEntity,\n secondaryTitle,\n } = useEntityAuthor(user);\n const {\n value: currentUser,\n loading: loadingUser,\n error: userError,\n } = useIdentityApi(api => api.getBackstageIdentity(), []);\n\n const href = `${userRoute()}/${user.userRef}`;\n\n return (\n <Grid item xs={12} md={6} xl={4}>\n <Card className={classes.card}>\n <ClickableLink href={href} ariaLabel={primaryTitle}>\n <Box\n className={classes.cardHeader}\n display=\"flex\"\n alignItems=\"center\"\n >\n {Icon && (\n <Avatar\n src={userEntity?.spec?.profile?.picture}\n className=\"avatar\"\n alt={name}\n variant=\"rounded\"\n style={{ marginRight: 16 }}\n >\n {initials}\n </Avatar>\n )}\n <Box flex={1} minWidth={0}>\n <Tooltip title={secondaryTitle ?? ''} arrow>\n <Typography variant=\"h6\" noWrap>\n {primaryTitle}\n </Typography>\n </Tooltip>\n </Box>\n {!loadingUser &&\n !userError &&\n currentUser?.userEntityRef !== user.userRef ? (\n <Box\n flexShrink={0}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <UserFollowButton userRef={user.userRef} />\n </Box>\n ) : null}\n </Box>\n <CardContent\n className={`${classes.cardContent} ${localClasses.flexColumn}`}\n >\n <Grid container spacing={1} className={localClasses.statsGrid}>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <QuestionAnswerIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalQuestions}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.questions')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <CheckCircleIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalAnswers}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.answers')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <ThumbUpIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalVotes}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.votes')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <DescriptionIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalArticles}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.articles')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <Visibility fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalViews}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.views')}\n </Typography>\n </Box>\n </Grid>\n <Grid item xs={4}>\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n className={localClasses.statItem}\n >\n <LinkIcon fontSize=\"small\" color=\"disabled\" />\n <Typography variant=\"body2\" style={{ fontWeight: 600 }}>\n {user.totalLinks}\n </Typography>\n <Typography variant=\"caption\" color=\"textSecondary\">\n {t('common.links')}\n </Typography>\n </Box>\n </Grid>\n </Grid>\n </CardContent>\n </ClickableLink>\n </Card>\n </Grid>\n );\n};\n"],"names":["CheckCircleIcon","ThumbUpIcon"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useNavigate } from 'react-router-dom';
3
+
4
+ const ClickableLink = (props) => {
5
+ const { href, children, ariaLabel } = props;
6
+ const navigate = useNavigate();
7
+ return /* @__PURE__ */ jsx(
8
+ "a",
9
+ {
10
+ href,
11
+ onClick: (e) => {
12
+ e.preventDefault();
13
+ navigate(href);
14
+ },
15
+ "aria-label": ariaLabel,
16
+ style: {
17
+ textDecoration: "none",
18
+ color: "inherit",
19
+ display: "block",
20
+ cursor: "pointer"
21
+ },
22
+ children
23
+ }
24
+ );
25
+ };
26
+
27
+ export { ClickableLink };
28
+ //# sourceMappingURL=ClickableLink.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClickableLink.esm.js","sources":["../../../src/components/Utility/ClickableLink.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nexport interface ClickableLinkProps {\n href: string;\n children: ReactNode;\n ariaLabel?: string;\n}\n\nexport const ClickableLink = (props: ClickableLinkProps) => {\n const { href, children, ariaLabel } = props;\n const navigate = useNavigate();\n\n return (\n <a\n href={href}\n onClick={(e: React.MouseEvent) => {\n e.preventDefault();\n navigate(href);\n }}\n aria-label={ariaLabel}\n style={{\n textDecoration: 'none',\n color: 'inherit',\n display: 'block',\n cursor: 'pointer',\n }}\n >\n {children}\n </a>\n );\n};\n"],"names":[],"mappings":";;;AASa,MAAA,aAAA,GAAgB,CAAC,KAA8B,KAAA;AAC1D,EAAA,MAAM,EAAE,IAAA,EAAM,QAAU,EAAA,SAAA,EAAc,GAAA,KAAA;AACtC,EAAA,MAAM,WAAW,WAAY,EAAA;AAE7B,EACE,uBAAA,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA,EAAS,CAAC,CAAwB,KAAA;AAChC,QAAA,CAAA,CAAE,cAAe,EAAA;AACjB,QAAA,QAAA,CAAS,IAAI,CAAA;AAAA,OACf;AAAA,MACA,YAAY,EAAA,SAAA;AAAA,MACZ,KAAO,EAAA;AAAA,QACL,cAAgB,EAAA,MAAA;AAAA,QAChB,KAAO,EAAA,SAAA;AAAA,QACP,OAAS,EAAA,OAAA;AAAA,QACT,MAAQ,EAAA;AAAA,OACV;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;;;"}
package/dist/index.d.ts CHANGED
@@ -236,7 +236,7 @@ declare const OpenLinkButton: (props: {
236
236
  entity: PostResponse;
237
237
  className?: string;
238
238
  style?: React.CSSProperties;
239
- }) => react_jsx_runtime.JSX.Element;
239
+ }) => react_jsx_runtime.JSX.Element | null;
240
240
 
241
241
  declare const CreateCollectionButton: () => react_jsx_runtime.JSX.Element;
242
242
 
package/dist/index.esm.js CHANGED
@@ -55,6 +55,8 @@ export { SuggestionsCard } from './components/SuggestionsCard/SuggestionsCard.es
55
55
  export { LinkCard } from './components/LinkCard/LinkCard.esm.js';
56
56
  export { FaviconItem } from './components/FaviconItem/FaviconItem.esm.js';
57
57
  export { QetaContext, QetaProvider, useQetaContext } from './components/QetaContext/QetaContext.esm.js';
58
+ import 'react/jsx-runtime';
59
+ import 'react-router-dom';
58
60
  export { DeletedBanner } from './components/Utility/DeletedBanner.esm.js';
59
61
  export { DraftBanner } from './components/Utility/DraftBanner.esm.js';
60
62
  export { StatusChip } from './components/Utility/StatusChip.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "frontend",
8
8
  "backstage.io"
9
9
  ],
10
- "version": "3.49.0",
10
+ "version": "3.49.1",
11
11
  "main": "dist/index.esm.js",
12
12
  "types": "dist/index.d.ts",
13
13
  "prepublishOnly": "yarn tsc && yarn build",
@@ -57,7 +57,7 @@
57
57
  "@backstage/plugin-permission-common": "^0.9.3",
58
58
  "@backstage/plugin-permission-react": "^0.4.39",
59
59
  "@backstage/plugin-signals-react": "^0.0.18",
60
- "@drodil/backstage-plugin-qeta-common": "^3.49.0",
60
+ "@drodil/backstage-plugin-qeta-common": "^3.49.1",
61
61
  "@jsdevtools/rehype-toc": "^3.0.2",
62
62
  "@material-ui/core": "^4.12.2",
63
63
  "@material-ui/icons": "^4.11.3",