@drodil/backstage-plugin-qeta-react 3.56.1 → 3.57.0

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/FollowedLists/FollowedCollectionsList.esm.js +60 -18
  2. package/dist/components/FollowedLists/FollowedCollectionsList.esm.js.map +1 -1
  3. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js +46 -18
  4. package/dist/components/FollowedLists/FollowedEntitiesList.esm.js.map +1 -1
  5. package/dist/components/FollowedLists/FollowedTagsList.esm.js +44 -18
  6. package/dist/components/FollowedLists/FollowedTagsList.esm.js.map +1 -1
  7. package/dist/components/FollowedLists/FollowedUsersList.esm.js +55 -26
  8. package/dist/components/FollowedLists/FollowedUsersList.esm.js.map +1 -1
  9. package/dist/components/Links/Links.esm.js +26 -18
  10. package/dist/components/Links/Links.esm.js.map +1 -1
  11. package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js +4 -2
  12. package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js.map +1 -1
  13. package/dist/components/PostHighlightList/PostHighlightList.esm.js +23 -145
  14. package/dist/components/PostHighlightList/PostHighlightList.esm.js.map +1 -1
  15. package/dist/components/TagsAndEntities/EntityChip.esm.js +42 -109
  16. package/dist/components/TagsAndEntities/EntityChip.esm.js.map +1 -1
  17. package/dist/components/TagsAndEntities/TagChip.esm.js +56 -118
  18. package/dist/components/TagsAndEntities/TagChip.esm.js.map +1 -1
  19. package/dist/components/TagsContainer/EditTagModal.esm.js.map +1 -1
  20. package/dist/components/TagsContainer/TagsContainer.esm.js +2 -1
  21. package/dist/components/TagsContainer/TagsContainer.esm.js.map +1 -1
  22. package/dist/components/Timeline/TimelineItem.esm.js +53 -2
  23. package/dist/components/Timeline/TimelineItem.esm.js.map +1 -1
  24. package/dist/components/Tooltips/CollectionTooltip.esm.js +151 -0
  25. package/dist/components/Tooltips/CollectionTooltip.esm.js.map +1 -0
  26. package/dist/components/Tooltips/EntityTooltip.esm.js +188 -0
  27. package/dist/components/Tooltips/EntityTooltip.esm.js.map +1 -0
  28. package/dist/components/Tooltips/PostTooltip.esm.js +257 -0
  29. package/dist/components/Tooltips/PostTooltip.esm.js.map +1 -0
  30. package/dist/components/Tooltips/TagTooltip.esm.js +199 -0
  31. package/dist/components/Tooltips/TagTooltip.esm.js.map +1 -0
  32. package/dist/components/Tooltips/UserTooltip.esm.js +259 -0
  33. package/dist/components/Tooltips/UserTooltip.esm.js.map +1 -0
  34. package/dist/hooks/useEntityAuthor.esm.js +3 -5
  35. package/dist/hooks/useEntityAuthor.esm.js.map +1 -1
  36. package/package.json +3 -3
  37. package/dist/components/TagsAndEntities/UserChip.esm.js +0 -88
  38. package/dist/components/TagsAndEntities/UserChip.esm.js.map +0 -1
@@ -3,11 +3,43 @@ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
3
3
  import { qetaTranslationRef } from '../../translation.esm.js';
4
4
  import { useCollectionsFollow } from '../../hooks/useCollectionsFollow.esm.js';
5
5
  import { RightListContainer, RightList } from '../Utility/RightList.esm.js';
6
- import { makeStyles, ListItem, Box, Tooltip, ListItemText } from '@material-ui/core';
6
+ import { makeStyles, ListItem, Box, ListItemText } from '@material-ui/core';
7
7
  import PlaylistPlayOutlined from '@material-ui/icons/PlaylistPlayOutlined';
8
8
  import { Link } from 'react-router-dom';
9
9
  import { collectionRouteRef } from '../../routes.esm.js';
10
10
  import { useRouteRef } from '@backstage/core-plugin-api';
11
+ import 'react';
12
+ import '../../api.esm.js';
13
+ import '../MarkdownRenderer/MarkdownRenderer.esm.js';
14
+ import 'react-use';
15
+ import '@backstage/plugin-signals-react';
16
+ import '../../hooks/useListItemStyles.esm.js';
17
+ import '@backstage/catalog-model';
18
+ import 'dataloader';
19
+ import '@backstage/plugin-catalog-react';
20
+ import 'react-use/lib/useAsync';
21
+ import '@backstage/plugin-permission-react';
22
+ import '@drodil/backstage-plugin-qeta-common';
23
+ import '@backstage/plugin-permission-common';
24
+ import 'react-use/lib/useDebounce';
25
+ import '../FilterPanel/FilterPanel.esm.js';
26
+ import '../QetaContext/QetaContext.esm.js';
27
+ import '@material-ui/lab';
28
+ import '@material-ui/icons/VisibilityOff';
29
+ import '@material-ui/icons/Visibility';
30
+ import '@material-ui/icons/LoyaltyOutlined';
31
+ import '@material-ui/icons/HelpOutline';
32
+ import '@material-ui/icons/DescriptionOutlined';
33
+ import '@material-ui/icons/PeopleAltOutlined';
34
+ import '../../hooks/useTooltipStyles.esm.js';
35
+ import { CollectionTooltip } from '../Tooltips/CollectionTooltip.esm.js';
36
+ import '@material-ui/icons/QuestionAnswerOutlined';
37
+ import '@material-ui/icons/Stars';
38
+ import '@material-ui/icons/CheckCircleOutline';
39
+ import 'react-relative-time';
40
+ import '@material-ui/icons/ThumbUpOutlined';
41
+ import '@material-ui/icons/VisibilityOutlined';
42
+ import '@material-ui/icons/ChatBubbleOutline';
11
43
 
12
44
  const useStyles = makeStyles((theme) => ({
13
45
  listItem: {
@@ -53,24 +85,34 @@ const FollowedCollectionsList = () => {
53
85
  }
54
86
  return /* @__PURE__ */ jsx(RightListContainer, { children: /* @__PURE__ */ jsx(RightList, { title: t("rightMenu.followedCollections"), limit: 5, randomize: true, children: collections.collections.map((collection) => {
55
87
  const href = collectionRoute({ id: collection.id.toString(10) });
56
- return /* @__PURE__ */ jsxs(
57
- ListItem,
88
+ return /* @__PURE__ */ jsx(
89
+ CollectionTooltip,
58
90
  {
59
- dense: true,
60
- button: true,
61
- className: classes.listItem,
62
- component: Link,
63
- to: href,
64
- children: [
65
- /* @__PURE__ */ jsx(Box, { className: classes.iconBox, children: /* @__PURE__ */ jsx(PlaylistPlayOutlined, { fontSize: "small" }) }),
66
- /* @__PURE__ */ jsx(Tooltip, { title: collection.title, arrow: true, children: /* @__PURE__ */ jsx(
67
- ListItemText,
68
- {
69
- primary: collection.title,
70
- classes: { primary: classes.listItemText }
71
- }
72
- ) })
73
- ]
91
+ collectionId: collection.id,
92
+ interactive: false,
93
+ enterDelay: 400,
94
+ enterNextDelay: 400,
95
+ placement: "left",
96
+ children: /* @__PURE__ */ jsxs(
97
+ ListItem,
98
+ {
99
+ dense: true,
100
+ button: true,
101
+ className: classes.listItem,
102
+ component: Link,
103
+ to: href,
104
+ children: [
105
+ /* @__PURE__ */ jsx(Box, { className: classes.iconBox, children: /* @__PURE__ */ jsx(PlaylistPlayOutlined, { fontSize: "small" }) }),
106
+ /* @__PURE__ */ jsx(
107
+ ListItemText,
108
+ {
109
+ primary: collection.title,
110
+ classes: { primary: classes.listItemText }
111
+ }
112
+ )
113
+ ]
114
+ }
115
+ )
74
116
  },
75
117
  collection.id
76
118
  );
@@ -1 +1 @@
1
- {"version":3,"file":"FollowedCollectionsList.esm.js","sources":["../../../src/components/FollowedLists/FollowedCollectionsList.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport { useCollectionsFollow } from '../../hooks/useCollectionsFollow';\nimport { RightList, RightListContainer } from '../Utility/RightList';\nimport {\n Box,\n ListItem,\n ListItemText,\n makeStyles,\n Tooltip,\n} from '@material-ui/core';\nimport PlaylistPlayOutlined from '@material-ui/icons/PlaylistPlayOutlined';\nimport { Link } from 'react-router-dom';\nimport { collectionRouteRef } from '../../routes';\nimport { useRouteRef } from '@backstage/core-plugin-api';\n\nconst useStyles = makeStyles(theme => ({\n listItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 4px',\n minHeight: 28,\n cursor: 'pointer',\n transition: 'background 0.2s',\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n listItemText: {\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n flex: 1,\n },\n iconBox: {\n minWidth: 28,\n maxWidth: 28,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(0.5),\n color: theme.palette.text.secondary,\n },\n}));\n\nexport const FollowedCollectionsList = () => {\n const collections = useCollectionsFollow();\n const { t } = useTranslationRef(qetaTranslationRef);\n const classes = useStyles();\n const collectionRoute = useRouteRef(collectionRouteRef);\n\n if (collections.collections.length === 0 || collections.loading) {\n return null;\n }\n\n return (\n <RightListContainer>\n <RightList title={t('rightMenu.followedCollections')} limit={5} randomize>\n {collections.collections.map(collection => {\n const href = collectionRoute({ id: collection.id.toString(10) });\n return (\n <ListItem\n key={collection.id}\n dense\n button\n className={classes.listItem}\n component={Link}\n to={href}\n >\n <Box className={classes.iconBox}>\n <PlaylistPlayOutlined fontSize=\"small\" />\n </Box>\n <Tooltip title={collection.title} arrow>\n <ListItemText\n primary={collection.title}\n classes={{ primary: classes.listItemText }}\n />\n </Tooltip>\n </ListItem>\n );\n })}\n </RightList>\n </RightListContainer>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FollowedCollectionsList.esm.js","sources":["../../../src/components/FollowedLists/FollowedCollectionsList.tsx"],"sourcesContent":["import { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport { useCollectionsFollow } from '../../hooks/useCollectionsFollow';\nimport { RightList, RightListContainer } from '../Utility/RightList';\nimport { Box, ListItem, ListItemText, makeStyles } from '@material-ui/core';\nimport PlaylistPlayOutlined from '@material-ui/icons/PlaylistPlayOutlined';\nimport { Link } from 'react-router-dom';\nimport { collectionRouteRef } from '../../routes';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { CollectionTooltip } from '../Tooltips';\n\nconst useStyles = makeStyles(theme => ({\n listItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 4px',\n minHeight: 28,\n cursor: 'pointer',\n transition: 'background 0.2s',\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n listItemText: {\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n flex: 1,\n },\n iconBox: {\n minWidth: 28,\n maxWidth: 28,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(0.5),\n color: theme.palette.text.secondary,\n },\n}));\n\nexport const FollowedCollectionsList = () => {\n const collections = useCollectionsFollow();\n const { t } = useTranslationRef(qetaTranslationRef);\n const classes = useStyles();\n const collectionRoute = useRouteRef(collectionRouteRef);\n\n if (collections.collections.length === 0 || collections.loading) {\n return null;\n }\n\n return (\n <RightListContainer>\n <RightList title={t('rightMenu.followedCollections')} limit={5} randomize>\n {collections.collections.map(collection => {\n const href = collectionRoute({ id: collection.id.toString(10) });\n return (\n <CollectionTooltip\n key={collection.id}\n collectionId={collection.id}\n interactive={false}\n enterDelay={400}\n enterNextDelay={400}\n placement=\"left\"\n >\n <ListItem\n dense\n button\n className={classes.listItem}\n component={Link}\n to={href}\n >\n <Box className={classes.iconBox}>\n <PlaylistPlayOutlined fontSize=\"small\" />\n </Box>\n <ListItemText\n primary={collection.title}\n classes={{ primary: classes.listItemText }}\n />\n </ListItem>\n </CollectionTooltip>\n );\n })}\n </RightList>\n </RightListContainer>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -15,13 +15,31 @@ import 'react-use/lib/useAsync';
15
15
  import '@backstage/plugin-permission-react';
16
16
  import '@drodil/backstage-plugin-qeta-common';
17
17
  import '@backstage/plugin-permission-common';
18
- import { makeStyles, ListItem, Box, Tooltip, ListItemText } from '@material-ui/core';
18
+ import { makeStyles, ListItem, Box, ListItemText } from '@material-ui/core';
19
19
  import { Link } from 'react-router-dom';
20
20
  import 'react-use/lib/useDebounce';
21
21
  import '../FilterPanel/FilterPanel.esm.js';
22
22
  import '../QetaContext/QetaContext.esm.js';
23
23
  import { RightListContainer, RightList } from '../Utility/RightList.esm.js';
24
24
  import { entityRouteRef } from '../../routes.esm.js';
25
+ import '../MarkdownRenderer/MarkdownRenderer.esm.js';
26
+ import '@material-ui/lab';
27
+ import '@material-ui/icons/VisibilityOff';
28
+ import '@material-ui/icons/Visibility';
29
+ import '@material-ui/icons/LoyaltyOutlined';
30
+ import '@material-ui/icons/HelpOutline';
31
+ import '@material-ui/icons/DescriptionOutlined';
32
+ import '@material-ui/icons/PeopleAltOutlined';
33
+ import '../../hooks/useTooltipStyles.esm.js';
34
+ import { EntityTooltip } from '../Tooltips/EntityTooltip.esm.js';
35
+ import '@material-ui/icons/LibraryBooksOutlined';
36
+ import '@material-ui/icons/QuestionAnswerOutlined';
37
+ import '@material-ui/icons/Stars';
38
+ import '@material-ui/icons/CheckCircleOutline';
39
+ import 'react-relative-time';
40
+ import '@material-ui/icons/ThumbUpOutlined';
41
+ import '@material-ui/icons/VisibilityOutlined';
42
+ import '@material-ui/icons/ChatBubbleOutline';
25
43
 
26
44
  const useStyles = makeStyles((theme) => ({
27
45
  listItem: {
@@ -62,24 +80,34 @@ const FollowedEntityItem = ({ entityRef }) => {
62
80
  const entityRoute = useRouteRef(entityRouteRef);
63
81
  const { primaryTitle, Icon } = useEntityPresentation(entityRef);
64
82
  const href = entityRoute({ entityRef });
65
- return /* @__PURE__ */ jsxs(
66
- ListItem,
83
+ return /* @__PURE__ */ jsx(
84
+ EntityTooltip,
67
85
  {
68
- dense: true,
69
- button: true,
70
- className: classes.listItem,
71
- component: Link,
72
- to: href,
73
- children: [
74
- /* @__PURE__ */ jsx(Box, { className: classes.iconBox, children: Icon ? /* @__PURE__ */ jsx(Icon, { fontSize: "small" }) : null }),
75
- /* @__PURE__ */ jsx(Tooltip, { title: primaryTitle ?? entityRef, arrow: true, children: /* @__PURE__ */ jsx(
76
- ListItemText,
77
- {
78
- primary: primaryTitle ?? entityRef,
79
- classes: { primary: classes.listItemText }
80
- }
81
- ) })
82
- ]
86
+ entity: entityRef,
87
+ interactive: false,
88
+ enterDelay: 400,
89
+ enterNextDelay: 400,
90
+ placement: "left",
91
+ children: /* @__PURE__ */ jsxs(
92
+ ListItem,
93
+ {
94
+ dense: true,
95
+ button: true,
96
+ className: classes.listItem,
97
+ component: Link,
98
+ to: href,
99
+ children: [
100
+ /* @__PURE__ */ jsx(Box, { className: classes.iconBox, children: Icon ? /* @__PURE__ */ jsx(Icon, { fontSize: "small" }) : null }),
101
+ /* @__PURE__ */ jsx(
102
+ ListItemText,
103
+ {
104
+ primary: primaryTitle ?? entityRef,
105
+ classes: { primary: classes.listItemText }
106
+ }
107
+ )
108
+ ]
109
+ }
110
+ )
83
111
  }
84
112
  );
85
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FollowedEntitiesList.esm.js","sources":["../../../src/components/FollowedLists/FollowedEntitiesList.tsx"],"sourcesContent":["import { useEntityFollow } from '../../hooks';\nimport { RightList, RightListContainer } from '../Utility/RightList';\nimport {\n Box,\n ListItem,\n ListItemText,\n makeStyles,\n Tooltip,\n} from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport { Link } from 'react-router-dom';\nimport { entityRouteRef } from '../../routes';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { useEntityPresentation } from '@backstage/plugin-catalog-react';\n\nconst useStyles = makeStyles(theme => ({\n listItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 4px',\n minHeight: 28,\n cursor: 'pointer',\n transition: 'background 0.2s',\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n listItemText: {\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n flex: 1,\n },\n iconBox: {\n minWidth: 28,\n maxWidth: 28,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(0.5),\n color: theme.palette.text.secondary,\n },\n}));\n\nconst FollowedEntityItem = ({ entityRef }: { entityRef: string }) => {\n const classes = useStyles();\n const entityRoute = useRouteRef(entityRouteRef);\n const { primaryTitle, Icon } = useEntityPresentation(entityRef);\n const href = entityRoute({ entityRef: entityRef });\n\n return (\n <ListItem\n dense\n button\n className={classes.listItem}\n component={Link}\n to={href}\n >\n <Box className={classes.iconBox}>\n {Icon ? <Icon fontSize=\"small\" /> : null}\n </Box>\n <Tooltip title={primaryTitle ?? entityRef} arrow>\n <ListItemText\n primary={primaryTitle ?? entityRef}\n classes={{ primary: classes.listItemText }}\n />\n </Tooltip>\n </ListItem>\n );\n};\n\nexport const FollowedEntitiesList = () => {\n const entities = useEntityFollow();\n const { t } = useTranslationRef(qetaTranslationRef);\n\n if (entities.entities.length === 0 || entities.loading) {\n return null;\n }\n\n return (\n <RightListContainer>\n <RightList title={t('rightMenu.followedEntities')} limit={5} randomize>\n {entities.entities.map(entity => (\n <FollowedEntityItem key={entity} entityRef={entity} />\n ))}\n </RightList>\n </RightListContainer>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FollowedEntitiesList.esm.js","sources":["../../../src/components/FollowedLists/FollowedEntitiesList.tsx"],"sourcesContent":["import { useEntityFollow } from '../../hooks';\nimport { RightList, RightListContainer } from '../Utility/RightList';\nimport { Box, ListItem, ListItemText, makeStyles } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport { Link } from 'react-router-dom';\nimport { entityRouteRef } from '../../routes';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { useEntityPresentation } from '@backstage/plugin-catalog-react';\nimport { EntityTooltip } from '../Tooltips';\n\nconst useStyles = makeStyles(theme => ({\n listItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 4px',\n minHeight: 28,\n cursor: 'pointer',\n transition: 'background 0.2s',\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n listItemText: {\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n flex: 1,\n },\n iconBox: {\n minWidth: 28,\n maxWidth: 28,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(0.5),\n color: theme.palette.text.secondary,\n },\n}));\n\nconst FollowedEntityItem = ({ entityRef }: { entityRef: string }) => {\n const classes = useStyles();\n const entityRoute = useRouteRef(entityRouteRef);\n const { primaryTitle, Icon } = useEntityPresentation(entityRef);\n const href = entityRoute({ entityRef: entityRef });\n\n return (\n <EntityTooltip\n entity={entityRef}\n interactive={false}\n enterDelay={400}\n enterNextDelay={400}\n placement=\"left\"\n >\n <ListItem\n dense\n button\n className={classes.listItem}\n component={Link}\n to={href}\n >\n <Box className={classes.iconBox}>\n {Icon ? <Icon fontSize=\"small\" /> : null}\n </Box>\n <ListItemText\n primary={primaryTitle ?? entityRef}\n classes={{ primary: classes.listItemText }}\n />\n </ListItem>\n </EntityTooltip>\n );\n};\n\nexport const FollowedEntitiesList = () => {\n const entities = useEntityFollow();\n const { t } = useTranslationRef(qetaTranslationRef);\n\n if (entities.entities.length === 0 || entities.loading) {\n return null;\n }\n\n return (\n <RightListContainer>\n <RightList title={t('rightMenu.followedEntities')} limit={5} randomize>\n {entities.entities.map(entity => (\n <FollowedEntityItem key={entity} entityRef={entity} />\n ))}\n </RightList>\n </RightListContainer>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import 'react-use/lib/useAsync';
15
15
  import '@backstage/plugin-permission-react';
16
16
  import '@drodil/backstage-plugin-qeta-common';
17
17
  import '@backstage/plugin-permission-common';
18
- import { makeStyles, ListItem, Box, Tooltip, ListItemText } from '@material-ui/core';
18
+ import { makeStyles, ListItem, Box, ListItemText } from '@material-ui/core';
19
19
  import { Link } from 'react-router-dom';
20
20
  import 'react-use/lib/useDebounce';
21
21
  import '../FilterPanel/FilterPanel.esm.js';
@@ -23,6 +23,22 @@ import '../QetaContext/QetaContext.esm.js';
23
23
  import { RightListContainer, RightList } from '../Utility/RightList.esm.js';
24
24
  import LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';
25
25
  import { tagRouteRef } from '../../routes.esm.js';
26
+ import { TagTooltip } from '../Tooltips/TagTooltip.esm.js';
27
+ import '@material-ui/lab';
28
+ import '@material-ui/icons/VisibilityOff';
29
+ import '@material-ui/icons/Visibility';
30
+ import '@material-ui/icons/HelpOutline';
31
+ import '@material-ui/icons/DescriptionOutlined';
32
+ import '@material-ui/icons/PeopleAltOutlined';
33
+ import '../../hooks/useTooltipStyles.esm.js';
34
+ import '@material-ui/icons/LibraryBooksOutlined';
35
+ import '@material-ui/icons/QuestionAnswerOutlined';
36
+ import '@material-ui/icons/Stars';
37
+ import '@material-ui/icons/CheckCircleOutline';
38
+ import 'react-relative-time';
39
+ import '@material-ui/icons/ThumbUpOutlined';
40
+ import '@material-ui/icons/VisibilityOutlined';
41
+ import '@material-ui/icons/ChatBubbleOutline';
26
42
 
27
43
  const useStyles = makeStyles((theme) => ({
28
44
  listItem: {
@@ -68,24 +84,34 @@ const FollowedTagsList = () => {
68
84
  }
69
85
  return /* @__PURE__ */ jsx(RightListContainer, { children: /* @__PURE__ */ jsx(RightList, { title: t("rightMenu.followedTags"), limit: 5, randomize: true, children: tags.tags.map((tag) => {
70
86
  const href = tagRoute({ tag });
71
- return /* @__PURE__ */ jsxs(
72
- ListItem,
87
+ return /* @__PURE__ */ jsx(
88
+ TagTooltip,
73
89
  {
74
- dense: true,
75
- button: true,
76
- className: classes.listItem,
77
- component: Link,
78
- to: href,
79
- children: [
80
- /* @__PURE__ */ jsx(Box, { className: classes.iconBox, children: /* @__PURE__ */ jsx(LocalOfferOutlined, { fontSize: "small" }) }),
81
- /* @__PURE__ */ jsx(Tooltip, { title: tag, arrow: true, children: /* @__PURE__ */ jsx(
82
- ListItemText,
83
- {
84
- primary: `${tag}`,
85
- classes: { primary: classes.listItemText }
86
- }
87
- ) })
88
- ]
90
+ tag,
91
+ interactive: false,
92
+ enterDelay: 400,
93
+ enterNextDelay: 400,
94
+ placement: "left",
95
+ children: /* @__PURE__ */ jsxs(
96
+ ListItem,
97
+ {
98
+ dense: true,
99
+ button: true,
100
+ className: classes.listItem,
101
+ component: Link,
102
+ to: href,
103
+ children: [
104
+ /* @__PURE__ */ jsx(Box, { className: classes.iconBox, children: /* @__PURE__ */ jsx(LocalOfferOutlined, { fontSize: "small" }) }),
105
+ /* @__PURE__ */ jsx(
106
+ ListItemText,
107
+ {
108
+ primary: `${tag}`,
109
+ classes: { primary: classes.listItemText }
110
+ }
111
+ )
112
+ ]
113
+ }
114
+ )
89
115
  },
90
116
  tag
91
117
  );
@@ -1 +1 @@
1
- {"version":3,"file":"FollowedTagsList.esm.js","sources":["../../../src/components/FollowedLists/FollowedTagsList.tsx"],"sourcesContent":["import { useTagsFollow } from '../../hooks';\nimport { RightList, RightListContainer } from '../Utility/RightList';\nimport {\n Box,\n ListItem,\n ListItemText,\n makeStyles,\n Tooltip,\n} from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';\nimport { Link } from 'react-router-dom';\nimport { tagRouteRef } from '../../routes';\nimport { useRouteRef } from '@backstage/core-plugin-api';\n\nconst useStyles = makeStyles(theme => ({\n listItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 4px',\n minHeight: 28,\n cursor: 'pointer',\n transition: 'background 0.2s',\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n listItemText: {\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n flex: 1,\n },\n iconBox: {\n minWidth: 28,\n maxWidth: 28,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(0.5),\n color: theme.palette.text.secondary,\n },\n}));\n\nexport const FollowedTagsList = () => {\n const tags = useTagsFollow();\n const { t } = useTranslationRef(qetaTranslationRef);\n const classes = useStyles();\n const tagRoute = useRouteRef(tagRouteRef);\n\n if (tags.tags.length === 0 || tags.loading) {\n return null;\n }\n\n return (\n <RightListContainer>\n <RightList title={t('rightMenu.followedTags')} limit={5} randomize>\n {tags.tags.map(tag => {\n const href = tagRoute({ tag: tag });\n return (\n <ListItem\n key={tag}\n dense\n button\n className={classes.listItem}\n component={Link}\n to={href}\n >\n <Box className={classes.iconBox}>\n <LocalOfferOutlined fontSize=\"small\" />\n </Box>\n <Tooltip title={tag} arrow>\n <ListItemText\n primary={`${tag}`}\n classes={{ primary: classes.listItemText }}\n />\n </Tooltip>\n </ListItem>\n );\n })}\n </RightList>\n </RightListContainer>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FollowedTagsList.esm.js","sources":["../../../src/components/FollowedLists/FollowedTagsList.tsx"],"sourcesContent":["import { useTagsFollow } from '../../hooks';\nimport { RightList, RightListContainer } from '../Utility/RightList';\nimport { Box, ListItem, ListItemText, makeStyles } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';\nimport { Link } from 'react-router-dom';\nimport { tagRouteRef } from '../../routes';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { TagTooltip } from '../Tooltips';\n\nconst useStyles = makeStyles(theme => ({\n listItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 4px',\n minHeight: 28,\n cursor: 'pointer',\n transition: 'background 0.2s',\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n listItemText: {\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n flex: 1,\n },\n iconBox: {\n minWidth: 28,\n maxWidth: 28,\n height: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4,\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(0.5),\n color: theme.palette.text.secondary,\n },\n}));\n\nexport const FollowedTagsList = () => {\n const tags = useTagsFollow();\n const { t } = useTranslationRef(qetaTranslationRef);\n const classes = useStyles();\n const tagRoute = useRouteRef(tagRouteRef);\n\n if (tags.tags.length === 0 || tags.loading) {\n return null;\n }\n\n return (\n <RightListContainer>\n <RightList title={t('rightMenu.followedTags')} limit={5} randomize>\n {tags.tags.map(tag => {\n const href = tagRoute({ tag: tag });\n return (\n <TagTooltip\n key={tag}\n tag={tag}\n interactive={false}\n enterDelay={400}\n enterNextDelay={400}\n placement=\"left\"\n >\n <ListItem\n dense\n button\n className={classes.listItem}\n component={Link}\n to={href}\n >\n <Box className={classes.iconBox}>\n <LocalOfferOutlined fontSize=\"small\" />\n </Box>\n <ListItemText\n primary={`${tag}`}\n classes={{ primary: classes.listItemText }}\n />\n </ListItem>\n </TagTooltip>\n );\n })}\n </RightList>\n </RightListContainer>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import 'react-use/lib/useAsync';
13
13
  import '@backstage/plugin-permission-react';
14
14
  import '@drodil/backstage-plugin-qeta-common';
15
15
  import '@backstage/plugin-permission-common';
16
- import { makeStyles, ListItem, Avatar, Tooltip, ListItemText } from '@material-ui/core';
16
+ import { makeStyles, ListItem, Avatar, ListItemText } from '@material-ui/core';
17
17
  import { Link } from 'react-router-dom';
18
18
  import 'react-use/lib/useDebounce';
19
19
  import '../FilterPanel/FilterPanel.esm.js';
@@ -21,6 +21,25 @@ import '../QetaContext/QetaContext.esm.js';
21
21
  import 'dataloader';
22
22
  import { RightListContainer, RightList } from '../Utility/RightList.esm.js';
23
23
  import { userRouteRef } from '../../routes.esm.js';
24
+ import '../MarkdownRenderer/MarkdownRenderer.esm.js';
25
+ import '@material-ui/lab';
26
+ import '@material-ui/icons/VisibilityOff';
27
+ import '@material-ui/icons/Visibility';
28
+ import '@material-ui/icons/LoyaltyOutlined';
29
+ import '@material-ui/icons/HelpOutline';
30
+ import '@material-ui/icons/DescriptionOutlined';
31
+ import '@material-ui/icons/PeopleAltOutlined';
32
+ import '../../hooks/useTooltipStyles.esm.js';
33
+ import '@backstage/catalog-model';
34
+ import '@backstage/plugin-catalog-react';
35
+ import '@material-ui/icons/LibraryBooksOutlined';
36
+ import { UserTooltip } from '../Tooltips/UserTooltip.esm.js';
37
+ import 'react-relative-time';
38
+ import '@material-ui/icons/ThumbUpOutlined';
39
+ import '@material-ui/icons/VisibilityOutlined';
40
+ import '@material-ui/icons/QuestionAnswerOutlined';
41
+ import '@material-ui/icons/ChatBubbleOutline';
42
+ import '@material-ui/icons/CheckCircleOutline';
24
43
 
25
44
  const useStyles = makeStyles((theme) => ({
26
45
  listItem: {
@@ -56,32 +75,42 @@ const FollowedUserItem = ({ entityRef }) => {
56
75
  const userRoute = useRouteRef(userRouteRef);
57
76
  const { name, initials, user } = useUserInfo(entityRef);
58
77
  const href = `${userRoute()}/${entityRef}`;
59
- return /* @__PURE__ */ jsxs(
60
- ListItem,
78
+ return /* @__PURE__ */ jsx(
79
+ UserTooltip,
61
80
  {
62
- dense: true,
63
- button: true,
64
- className: classes.listItem,
65
- component: Link,
66
- to: href,
67
- children: [
68
- /* @__PURE__ */ jsx(
69
- Avatar,
70
- {
71
- src: user?.spec?.profile?.picture,
72
- alt: name,
73
- className: classes.avatar,
74
- children: initials
75
- }
76
- ),
77
- /* @__PURE__ */ jsx(Tooltip, { title: name ?? entityRef, arrow: true, children: /* @__PURE__ */ jsx(
78
- ListItemText,
79
- {
80
- primary: name ?? entityRef,
81
- classes: { primary: classes.listItemText }
82
- }
83
- ) })
84
- ]
81
+ entityRef,
82
+ interactive: false,
83
+ enterDelay: 400,
84
+ enterNextDelay: 400,
85
+ placement: "left",
86
+ children: /* @__PURE__ */ jsxs(
87
+ ListItem,
88
+ {
89
+ dense: true,
90
+ button: true,
91
+ className: classes.listItem,
92
+ component: Link,
93
+ to: href,
94
+ children: [
95
+ /* @__PURE__ */ jsx(
96
+ Avatar,
97
+ {
98
+ src: user?.spec?.profile?.picture,
99
+ alt: name,
100
+ className: classes.avatar,
101
+ children: initials
102
+ }
103
+ ),
104
+ /* @__PURE__ */ jsx(
105
+ ListItemText,
106
+ {
107
+ primary: name ?? entityRef,
108
+ classes: { primary: classes.listItemText }
109
+ }
110
+ )
111
+ ]
112
+ }
113
+ )
85
114
  }
86
115
  );
87
116
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FollowedUsersList.esm.js","sources":["../../../src/components/FollowedLists/FollowedUsersList.tsx"],"sourcesContent":["import { useUserFollow } from '../../hooks';\nimport { useUserInfo } from '../../hooks/useEntityAuthor';\nimport { RightList, RightListContainer } from '../Utility/RightList';\nimport {\n Avatar,\n ListItem,\n ListItemText,\n makeStyles,\n Tooltip,\n} from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport { Link } from 'react-router-dom';\nimport { userRouteRef } from '../../routes';\nimport { useRouteRef } from '@backstage/core-plugin-api';\n\nconst useStyles = makeStyles(theme => ({\n listItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 4px',\n minHeight: 28,\n cursor: 'pointer',\n transition: 'background 0.2s',\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n listItemText: {\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n flex: 1,\n },\n avatar: {\n width: 24,\n height: 24,\n fontSize: '0.75rem',\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(0.5),\n },\n}));\n\nconst FollowedUserItem = ({ entityRef }: { entityRef: string }) => {\n const classes = useStyles();\n const userRoute = useRouteRef(userRouteRef);\n const { name, initials, user } = useUserInfo(entityRef);\n const href = `${userRoute()}/${entityRef}`;\n\n return (\n <ListItem\n dense\n button\n className={classes.listItem}\n component={Link}\n to={href}\n >\n <Avatar\n src={user?.spec?.profile?.picture}\n alt={name}\n className={classes.avatar}\n >\n {initials}\n </Avatar>\n <Tooltip title={name ?? entityRef} arrow>\n <ListItemText\n primary={name ?? entityRef}\n classes={{ primary: classes.listItemText }}\n />\n </Tooltip>\n </ListItem>\n );\n};\n\nexport const FollowedUsersList = () => {\n const users = useUserFollow();\n const { t } = useTranslationRef(qetaTranslationRef);\n\n if (users.users.length === 0 || users.loading) {\n return null;\n }\n\n return (\n <RightListContainer>\n <RightList title={t('rightMenu.followedUsers')} limit={5} randomize>\n {users.users.map(user => (\n <FollowedUserItem key={user} entityRef={user} />\n ))}\n </RightList>\n </RightListContainer>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FollowedUsersList.esm.js","sources":["../../../src/components/FollowedLists/FollowedUsersList.tsx"],"sourcesContent":["import { useUserFollow } from '../../hooks';\nimport { useUserInfo } from '../../hooks/useEntityAuthor';\nimport { RightList, RightListContainer } from '../Utility/RightList';\nimport { Avatar, ListItem, ListItemText, makeStyles } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport { Link } from 'react-router-dom';\nimport { userRouteRef } from '../../routes';\nimport { useRouteRef } from '@backstage/core-plugin-api';\nimport { UserTooltip } from '../Tooltips';\n\nconst useStyles = makeStyles(theme => ({\n listItem: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 4px',\n minHeight: 28,\n cursor: 'pointer',\n transition: 'background 0.2s',\n textDecoration: 'none',\n color: 'inherit',\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n listItemText: {\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n flex: 1,\n },\n avatar: {\n width: 24,\n height: 24,\n fontSize: '0.75rem',\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(0.5),\n },\n}));\n\nconst FollowedUserItem = ({ entityRef }: { entityRef: string }) => {\n const classes = useStyles();\n const userRoute = useRouteRef(userRouteRef);\n const { name, initials, user } = useUserInfo(entityRef);\n const href = `${userRoute()}/${entityRef}`;\n\n return (\n <UserTooltip\n entityRef={entityRef}\n interactive={false}\n enterDelay={400}\n enterNextDelay={400}\n placement=\"left\"\n >\n <ListItem\n dense\n button\n className={classes.listItem}\n component={Link}\n to={href}\n >\n <Avatar\n src={user?.spec?.profile?.picture}\n alt={name}\n className={classes.avatar}\n >\n {initials}\n </Avatar>\n <ListItemText\n primary={name ?? entityRef}\n classes={{ primary: classes.listItemText }}\n />\n </ListItem>\n </UserTooltip>\n );\n};\n\nexport const FollowedUsersList = () => {\n const users = useUserFollow();\n const { t } = useTranslationRef(qetaTranslationRef);\n\n if (users.users.length === 0 || users.loading) {\n return null;\n }\n\n return (\n <RightListContainer>\n <RightList title={t('rightMenu.followedUsers')} limit={5} randomize>\n {users.users.map(user => (\n <FollowedUserItem key={user} entityRef={user} />\n ))}\n </RightList>\n </RightListContainer>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,SAAA,GAAY,WAAW,CAAU,KAAA,MAAA;AAAA,EACrC,QAAU,EAAA;AAAA,IACR,OAAS,EAAA,MAAA;AAAA,IACT,UAAY,EAAA,QAAA;AAAA,IACZ,OAAS,EAAA,OAAA;AAAA,IACT,SAAW,EAAA,EAAA;AAAA,IACX,MAAQ,EAAA,SAAA;AAAA,IACR,UAAY,EAAA,iBAAA;AAAA,IACZ,cAAgB,EAAA,MAAA;AAAA,IAChB,KAAO,EAAA,SAAA;AAAA,IACP,SAAW,EAAA;AAAA,MACT,UAAA,EAAY,KAAM,CAAA,OAAA,CAAQ,MAAO,CAAA;AAAA;AACnC,GACF;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,KAAA,EAAO,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA,OAAA;AAAA,IAC1B,UAAY,EAAA,QAAA;AAAA,IACZ,QAAU,EAAA,QAAA;AAAA,IACV,YAAc,EAAA,UAAA;AAAA,IACd,IAAM,EAAA;AAAA,GACR;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,EAAA;AAAA,IACP,MAAQ,EAAA,EAAA;AAAA,IACR,QAAU,EAAA,SAAA;AAAA,IACV,WAAA,EAAa,KAAM,CAAA,OAAA,CAAQ,CAAC,CAAA;AAAA,IAC5B,UAAA,EAAY,KAAM,CAAA,OAAA,CAAQ,GAAG;AAAA;AAEjC,CAAE,CAAA,CAAA;AAEF,MAAM,gBAAmB,GAAA,CAAC,EAAE,SAAA,EAAuC,KAAA;AACjE,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAM,MAAA,SAAA,GAAY,YAAY,YAAY,CAAA;AAC1C,EAAA,MAAM,EAAE,IAAM,EAAA,QAAA,EAAU,IAAK,EAAA,GAAI,YAAY,SAAS,CAAA;AACtD,EAAA,MAAM,IAAO,GAAA,CAAA,EAAG,SAAU,EAAC,IAAI,SAAS,CAAA,CAAA;AAExC,EACE,uBAAA,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,WAAa,EAAA,KAAA;AAAA,MACb,UAAY,EAAA,GAAA;AAAA,MACZ,cAAgB,EAAA,GAAA;AAAA,MAChB,SAAU,EAAA,MAAA;AAAA,MAEV,QAAA,kBAAA,IAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,KAAK,EAAA,IAAA;AAAA,UACL,MAAM,EAAA,IAAA;AAAA,UACN,WAAW,OAAQ,CAAA,QAAA;AAAA,UACnB,SAAW,EAAA,IAAA;AAAA,UACX,EAAI,EAAA,IAAA;AAAA,UAEJ,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,GAAA,EAAK,IAAM,EAAA,IAAA,EAAM,OAAS,EAAA,OAAA;AAAA,gBAC1B,GAAK,EAAA,IAAA;AAAA,gBACL,WAAW,OAAQ,CAAA,MAAA;AAAA,gBAElB,QAAA,EAAA;AAAA;AAAA,aACH;AAAA,4BACA,GAAA;AAAA,cAAC,YAAA;AAAA,cAAA;AAAA,gBACC,SAAS,IAAQ,IAAA,SAAA;AAAA,gBACjB,OAAS,EAAA,EAAE,OAAS,EAAA,OAAA,CAAQ,YAAa;AAAA;AAAA;AAC3C;AAAA;AAAA;AACF;AAAA,GACF;AAEJ,CAAA;AAEO,MAAM,oBAAoB,MAAM;AACrC,EAAA,MAAM,QAAQ,aAAc,EAAA;AAC5B,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAElD,EAAA,IAAI,KAAM,CAAA,KAAA,CAAM,MAAW,KAAA,CAAA,IAAK,MAAM,OAAS,EAAA;AAC7C,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,GAAA,CAAC,sBACC,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAU,OAAO,CAAE,CAAA,yBAAyB,CAAG,EAAA,KAAA,EAAO,CAAG,EAAA,SAAA,EAAS,MAChE,QAAM,EAAA,KAAA,CAAA,KAAA,CAAM,GAAI,CAAA,CAAA,IAAA,qBACd,GAAA,CAAA,gBAAA,EAAA,EAA4B,WAAW,IAAjB,EAAA,EAAA,IAAuB,CAC/C,CAAA,EACH,CACF,EAAA,CAAA;AAEJ;;;;"}
@@ -14,14 +14,31 @@ import 'react-use/lib/useAsync';
14
14
  import '@backstage/plugin-permission-react';
15
15
  import '@drodil/backstage-plugin-qeta-common';
16
16
  import '@backstage/plugin-permission-common';
17
- import { Tooltip } from '@material-ui/core';
17
+ import '@material-ui/core';
18
18
  import 'react-router-dom';
19
19
  import 'react-use/lib/useDebounce';
20
20
  import '../FilterPanel/FilterPanel.esm.js';
21
21
  import '../QetaContext/QetaContext.esm.js';
22
22
  import 'dataloader';
23
- import { UserTooltip } from '../TagsAndEntities/UserChip.esm.js';
24
- import { useTooltipStyles } from '../../hooks/useTooltipStyles.esm.js';
23
+ import '../MarkdownRenderer/MarkdownRenderer.esm.js';
24
+ import '@material-ui/lab';
25
+ import '@material-ui/icons/VisibilityOff';
26
+ import '@material-ui/icons/Visibility';
27
+ import '@material-ui/icons/LoyaltyOutlined';
28
+ import '@material-ui/icons/HelpOutline';
29
+ import '@material-ui/icons/DescriptionOutlined';
30
+ import '@material-ui/icons/PeopleAltOutlined';
31
+ import '../../hooks/useTooltipStyles.esm.js';
32
+ import '@backstage/catalog-model';
33
+ import '@backstage/plugin-catalog-react';
34
+ import '@material-ui/icons/LibraryBooksOutlined';
35
+ import { UserTooltip } from '../Tooltips/UserTooltip.esm.js';
36
+ import 'react-relative-time';
37
+ import '@material-ui/icons/ThumbUpOutlined';
38
+ import '@material-ui/icons/VisibilityOutlined';
39
+ import '@material-ui/icons/QuestionAnswerOutlined';
40
+ import '@material-ui/icons/ChatBubbleOutline';
41
+ import '@material-ui/icons/CheckCircleOutline';
25
42
 
26
43
  const UserLink = (props) => {
27
44
  const { entityRef, linkProps, anonymous, noLink } = props;
@@ -30,37 +47,28 @@ const UserLink = (props) => {
30
47
  entityRef,
31
48
  anonymous ?? entityRef === "anonymous"
32
49
  );
33
- const classes = useTooltipStyles();
34
50
  if (anonymous && !isCurrentUser) {
35
51
  return /* @__PURE__ */ jsx("span", { children: name });
36
52
  }
37
53
  if (noLink) {
38
54
  return /* @__PURE__ */ jsx(
39
- Tooltip,
55
+ UserTooltip,
40
56
  {
41
- arrow: true,
42
- title: /* @__PURE__ */ jsx(UserTooltip, { entityRef, anonymous }),
57
+ entityRef,
58
+ anonymous,
43
59
  enterDelay: 400,
44
60
  interactive: true,
45
- classes: {
46
- tooltip: classes.tooltip,
47
- arrow: classes.tooltipArrow
48
- },
49
61
  children: /* @__PURE__ */ jsx("span", { children: name })
50
62
  }
51
63
  );
52
64
  }
53
65
  return /* @__PURE__ */ jsx(
54
- Tooltip,
66
+ UserTooltip,
55
67
  {
56
- arrow: true,
57
- title: /* @__PURE__ */ jsx(UserTooltip, { entityRef, anonymous }),
68
+ entityRef,
69
+ anonymous,
58
70
  enterDelay: 400,
59
71
  interactive: true,
60
- classes: {
61
- tooltip: classes.tooltip,
62
- arrow: classes.tooltipArrow
63
- },
64
72
  children: /* @__PURE__ */ jsx(Link, { to: `${userRoute()}/${entityRef}`, ...linkProps, children: name })
65
73
  }
66
74
  );
@@ -1 +1 @@
1
- {"version":3,"file":"Links.esm.js","sources":["../../../src/components/Links/Links.tsx"],"sourcesContent":["import { useRouteRef } from '@backstage/core-plugin-api';\nimport { Link, LinkProps } from '@backstage/core-components';\nimport { userRouteRef } from '../../routes';\nimport { Answer, Comment, Post } from '@drodil/backstage-plugin-qeta-common';\nimport { useUserInfo } from '../../hooks';\nimport { UserTooltip } from '../TagsAndEntities/UserChip';\nimport { Tooltip } from '@material-ui/core';\nimport { useTooltipStyles } from '../../hooks/useTooltipStyles';\n\nexport const UserLink = (props: {\n entityRef: string;\n anonymous?: boolean;\n linkProps?: LinkProps;\n noLink?: boolean;\n}) => {\n const { entityRef, linkProps, anonymous, noLink } = props;\n const userRoute = useRouteRef(userRouteRef);\n const { name, isCurrentUser } = useUserInfo(\n entityRef,\n anonymous ?? entityRef === 'anonymous',\n );\n const classes = useTooltipStyles();\n\n if (anonymous && !isCurrentUser) {\n return <span>{name}</span>;\n }\n\n if (noLink) {\n return (\n <Tooltip\n arrow\n title={<UserTooltip entityRef={entityRef} anonymous={anonymous} />}\n enterDelay={400}\n interactive\n classes={{\n tooltip: classes.tooltip,\n arrow: classes.tooltipArrow,\n }}\n >\n <span>{name}</span>\n </Tooltip>\n );\n }\n\n return (\n <Tooltip\n arrow\n title={<UserTooltip entityRef={entityRef} anonymous={anonymous} />}\n enterDelay={400}\n interactive\n classes={{\n tooltip: classes.tooltip,\n arrow: classes.tooltipArrow,\n }}\n >\n <Link to={`${userRoute()}/${entityRef}`} {...linkProps}>\n {name}\n </Link>\n </Tooltip>\n );\n};\n\nexport const AuthorLink = (props: {\n entity: Post | Answer | Comment;\n linkProps?: LinkProps;\n}) => {\n const { entity, linkProps } = props;\n return (\n <UserLink\n entityRef={entity.author}\n linkProps={linkProps}\n anonymous={'anonymous' in entity ? entity.anonymous : undefined}\n />\n );\n};\n\nexport const UpdatedByLink = (props: {\n entity: Post | Answer | Comment;\n linkProps?: LinkProps;\n}) => {\n const { entity, linkProps } = props;\n if (!entity.updatedBy) {\n return null;\n }\n return (\n <UserLink\n entityRef={entity.updatedBy}\n linkProps={linkProps}\n anonymous={'anonymous' in entity ? entity.anonymous : undefined}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AASa,MAAA,QAAA,GAAW,CAAC,KAKnB,KAAA;AACJ,EAAA,MAAM,EAAE,SAAA,EAAW,SAAW,EAAA,SAAA,EAAW,QAAW,GAAA,KAAA;AACpD,EAAM,MAAA,SAAA,GAAY,YAAY,YAAY,CAAA;AAC1C,EAAM,MAAA,EAAE,IAAM,EAAA,aAAA,EAAkB,GAAA,WAAA;AAAA,IAC9B,SAAA;AAAA,IACA,aAAa,SAAc,KAAA;AAAA,GAC7B;AACA,EAAA,MAAM,UAAU,gBAAiB,EAAA;AAEjC,EAAI,IAAA,SAAA,IAAa,CAAC,aAAe,EAAA;AAC/B,IAAO,uBAAA,GAAA,CAAC,UAAM,QAAK,EAAA,IAAA,EAAA,CAAA;AAAA;AAGrB,EAAA,IAAI,MAAQ,EAAA;AACV,IACE,uBAAA,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,KAAK,EAAA,IAAA;AAAA,QACL,KAAO,kBAAA,GAAA,CAAC,WAAY,EAAA,EAAA,SAAA,EAAsB,SAAsB,EAAA,CAAA;AAAA,QAChE,UAAY,EAAA,GAAA;AAAA,QACZ,WAAW,EAAA,IAAA;AAAA,QACX,OAAS,EAAA;AAAA,UACP,SAAS,OAAQ,CAAA,OAAA;AAAA,UACjB,OAAO,OAAQ,CAAA;AAAA,SACjB;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,UAAM,QAAK,EAAA,IAAA,EAAA;AAAA;AAAA,KACd;AAAA;AAIJ,EACE,uBAAA,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,KAAK,EAAA,IAAA;AAAA,MACL,KAAO,kBAAA,GAAA,CAAC,WAAY,EAAA,EAAA,SAAA,EAAsB,SAAsB,EAAA,CAAA;AAAA,MAChE,UAAY,EAAA,GAAA;AAAA,MACZ,WAAW,EAAA,IAAA;AAAA,MACX,OAAS,EAAA;AAAA,QACP,SAAS,OAAQ,CAAA,OAAA;AAAA,QACjB,OAAO,OAAQ,CAAA;AAAA,OACjB;AAAA,MAEA,QAAA,kBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAI,CAAG,EAAA,SAAA,EAAW,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAAK,GAAG,SAAA,EAC1C,QACH,EAAA,IAAA,EAAA;AAAA;AAAA,GACF;AAEJ;AAEa,MAAA,UAAA,GAAa,CAAC,KAGrB,KAAA;AACJ,EAAM,MAAA,EAAE,MAAQ,EAAA,SAAA,EAAc,GAAA,KAAA;AAC9B,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAW,MAAO,CAAA,MAAA;AAAA,MAClB,SAAA;AAAA,MACA,SAAW,EAAA,WAAA,IAAe,MAAS,GAAA,MAAA,CAAO,SAAY,GAAA,KAAA;AAAA;AAAA,GACxD;AAEJ;AAEa,MAAA,aAAA,GAAgB,CAAC,KAGxB,KAAA;AACJ,EAAM,MAAA,EAAE,MAAQ,EAAA,SAAA,EAAc,GAAA,KAAA;AAC9B,EAAI,IAAA,CAAC,OAAO,SAAW,EAAA;AACrB,IAAO,OAAA,IAAA;AAAA;AAET,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAW,MAAO,CAAA,SAAA;AAAA,MAClB,SAAA;AAAA,MACA,SAAW,EAAA,WAAA,IAAe,MAAS,GAAA,MAAA,CAAO,SAAY,GAAA,KAAA;AAAA;AAAA,GACxD;AAEJ;;;;"}
1
+ {"version":3,"file":"Links.esm.js","sources":["../../../src/components/Links/Links.tsx"],"sourcesContent":["import { useRouteRef } from '@backstage/core-plugin-api';\nimport { Link, LinkProps } from '@backstage/core-components';\nimport { userRouteRef } from '../../routes';\nimport { Answer, Comment, Post } from '@drodil/backstage-plugin-qeta-common';\nimport { useUserInfo } from '../../hooks';\nimport { UserTooltip } from '../Tooltips';\n\nexport const UserLink = (props: {\n entityRef: string;\n anonymous?: boolean;\n linkProps?: LinkProps;\n noLink?: boolean;\n}) => {\n const { entityRef, linkProps, anonymous, noLink } = props;\n const userRoute = useRouteRef(userRouteRef);\n const { name, isCurrentUser } = useUserInfo(\n entityRef,\n anonymous ?? entityRef === 'anonymous',\n );\n if (anonymous && !isCurrentUser) {\n return <span>{name}</span>;\n }\n\n if (noLink) {\n return (\n <UserTooltip\n entityRef={entityRef}\n anonymous={anonymous}\n enterDelay={400}\n interactive\n >\n <span>{name}</span>\n </UserTooltip>\n );\n }\n\n return (\n <UserTooltip\n entityRef={entityRef}\n anonymous={anonymous}\n enterDelay={400}\n interactive\n >\n <Link to={`${userRoute()}/${entityRef}`} {...linkProps}>\n {name}\n </Link>\n </UserTooltip>\n );\n};\n\nexport const AuthorLink = (props: {\n entity: Post | Answer | Comment;\n linkProps?: LinkProps;\n}) => {\n const { entity, linkProps } = props;\n return (\n <UserLink\n entityRef={entity.author}\n linkProps={linkProps}\n anonymous={'anonymous' in entity ? entity.anonymous : undefined}\n />\n );\n};\n\nexport const UpdatedByLink = (props: {\n entity: Post | Answer | Comment;\n linkProps?: LinkProps;\n}) => {\n const { entity, linkProps } = props;\n if (!entity.updatedBy) {\n return null;\n }\n return (\n <UserLink\n entityRef={entity.updatedBy}\n linkProps={linkProps}\n anonymous={'anonymous' in entity ? entity.anonymous : undefined}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOa,MAAA,QAAA,GAAW,CAAC,KAKnB,KAAA;AACJ,EAAA,MAAM,EAAE,SAAA,EAAW,SAAW,EAAA,SAAA,EAAW,QAAW,GAAA,KAAA;AACpD,EAAM,MAAA,SAAA,GAAY,YAAY,YAAY,CAAA;AAC1C,EAAM,MAAA,EAAE,IAAM,EAAA,aAAA,EAAkB,GAAA,WAAA;AAAA,IAC9B,SAAA;AAAA,IACA,aAAa,SAAc,KAAA;AAAA,GAC7B;AACA,EAAI,IAAA,SAAA,IAAa,CAAC,aAAe,EAAA;AAC/B,IAAO,uBAAA,GAAA,CAAC,UAAM,QAAK,EAAA,IAAA,EAAA,CAAA;AAAA;AAGrB,EAAA,IAAI,MAAQ,EAAA;AACV,IACE,uBAAA,GAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,SAAA;AAAA,QACA,SAAA;AAAA,QACA,UAAY,EAAA,GAAA;AAAA,QACZ,WAAW,EAAA,IAAA;AAAA,QAEX,QAAA,kBAAA,GAAA,CAAC,UAAM,QAAK,EAAA,IAAA,EAAA;AAAA;AAAA,KACd;AAAA;AAIJ,EACE,uBAAA,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAY,EAAA,GAAA;AAAA,MACZ,WAAW,EAAA,IAAA;AAAA,MAEX,QAAA,kBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAI,CAAG,EAAA,SAAA,EAAW,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAAK,GAAG,SAAA,EAC1C,QACH,EAAA,IAAA,EAAA;AAAA;AAAA,GACF;AAEJ;AAEa,MAAA,UAAA,GAAa,CAAC,KAGrB,KAAA;AACJ,EAAM,MAAA,EAAE,MAAQ,EAAA,SAAA,EAAc,GAAA,KAAA;AAC9B,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAW,MAAO,CAAA,MAAA;AAAA,MAClB,SAAA;AAAA,MACA,SAAW,EAAA,WAAA,IAAe,MAAS,GAAA,MAAA,CAAO,SAAY,GAAA,KAAA;AAAA;AAAA,GACxD;AAEJ;AAEa,MAAA,aAAA,GAAgB,CAAC,KAGxB,KAAA;AACJ,EAAM,MAAA,EAAE,MAAQ,EAAA,SAAA,EAAc,GAAA,KAAA;AAC9B,EAAI,IAAA,CAAC,OAAO,SAAW,EAAA;AACrB,IAAO,OAAA,IAAA;AAAA;AAET,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,WAAW,MAAO,CAAA,SAAA;AAAA,MAClB,SAAA;AAAA,MACA,SAAW,EAAA,WAAA,IAAe,MAAS,GAAA,MAAA,CAAO,SAAY,GAAA,KAAA;AAAA;AAAA,GACxD;AAEJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { useEffect, Children, createElement } from 'react';
2
+ import { lazy, useEffect, Children, createElement } from 'react';
3
3
  import SyntaxHighlighter from 'react-syntax-highlighter';
4
4
  import { MarkdownHooks } from 'react-markdown';
5
5
  import { a11yDark, a11yLight } from 'react-syntax-highlighter/dist/esm/styles/hljs';
@@ -17,9 +17,11 @@ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
17
17
  import { qetaTranslationRef } from '../../translation.esm.js';
18
18
  import GithubSlugger from 'github-slugger';
19
19
  import { find } from 'unist-util-find';
20
- import { TagChip } from '../TagsAndEntities/TagChip.esm.js';
21
20
  import { useQetaContext } from '../QetaContext/QetaContext.esm.js';
22
21
 
22
+ const TagChip = lazy(
23
+ () => import('../TagsAndEntities/TagChip.esm.js').then((m) => ({ default: m.TagChip }))
24
+ );
23
25
  const slugger = new GithubSlugger();
24
26
  const useStyles = makeStyles(
25
27
  (theme) => {