@drodil/backstage-plugin-qeta-react 3.57.0 → 3.58.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 (52) hide show
  1. package/dist/components/Badges/BadgeChip.esm.js +2 -2
  2. package/dist/components/Badges/BadgeChip.esm.js.map +1 -1
  3. package/dist/components/Buttons/CollectionFollowButton.esm.js +4 -4
  4. package/dist/components/Buttons/CollectionFollowButton.esm.js.map +1 -1
  5. package/dist/components/Buttons/EntityFollowButton.esm.js +4 -4
  6. package/dist/components/Buttons/EntityFollowButton.esm.js.map +1 -1
  7. package/dist/components/Buttons/FollowPostButton.esm.js +44 -0
  8. package/dist/components/Buttons/FollowPostButton.esm.js.map +1 -0
  9. package/dist/components/Buttons/TagFollowButton.esm.js +4 -4
  10. package/dist/components/Buttons/TagFollowButton.esm.js.map +1 -1
  11. package/dist/components/Buttons/UserFollowButton.esm.js +4 -4
  12. package/dist/components/Buttons/UserFollowButton.esm.js.map +1 -1
  13. package/dist/components/ContentHeader/ContentHeader.esm.js +2 -2
  14. package/dist/components/HomePageCards/CommunityActivityCard.esm.js +164 -0
  15. package/dist/components/HomePageCards/CommunityActivityCard.esm.js.map +1 -0
  16. package/dist/components/HomePageCards/FollowedItemsCard.esm.js +296 -0
  17. package/dist/components/HomePageCards/FollowedItemsCard.esm.js.map +1 -0
  18. package/dist/components/HomePageCards/ImpactCard.esm.js +141 -112
  19. package/dist/components/HomePageCards/ImpactCard.esm.js.map +1 -1
  20. package/dist/components/HomePageCards/PostsCard.esm.js +2 -2
  21. package/dist/components/Links/Links.esm.js +1 -1
  22. package/dist/components/PostHighlightList/PostHighlightList.esm.js +33 -5
  23. package/dist/components/PostHighlightList/PostHighlightList.esm.js.map +1 -1
  24. package/dist/components/PostsContainer/PostListItem.esm.js +2 -1
  25. package/dist/components/PostsContainer/PostListItem.esm.js.map +1 -1
  26. package/dist/components/PostsContainer/PostsContainer.esm.js +2 -2
  27. package/dist/components/PostsContainer/PostsGridItem.esm.js +2 -2
  28. package/dist/components/QetaEntityContainer/QetaEntityContainer.esm.js +3 -3
  29. package/dist/components/QetaEntityContainer/QetaEntityContainer.esm.js.map +1 -1
  30. package/dist/components/StatsChart/StatsChart.esm.js +10 -1
  31. package/dist/components/StatsChart/StatsChart.esm.js.map +1 -1
  32. package/dist/components/SuggestionsCard/SuggestionsCard.esm.js +8 -1
  33. package/dist/components/SuggestionsCard/SuggestionsCard.esm.js.map +1 -1
  34. package/dist/components/Timeline/Timeline.esm.js +3 -0
  35. package/dist/components/Timeline/Timeline.esm.js.map +1 -1
  36. package/dist/components/Timeline/TimelineItem.esm.js +1 -1
  37. package/dist/components/Tooltips/PostTooltip.esm.js +1 -0
  38. package/dist/components/Tooltips/PostTooltip.esm.js.map +1 -1
  39. package/dist/components/UsersContainer/UserListItem.esm.js +1 -0
  40. package/dist/components/UsersContainer/UserListItem.esm.js.map +1 -1
  41. package/dist/components/Utility/RightList.esm.js +14 -4
  42. package/dist/components/Utility/RightList.esm.js.map +1 -1
  43. package/dist/hooks/useEntityAuthor.esm.js +1 -1
  44. package/dist/hooks/useEntityAuthor.esm.js.map +1 -1
  45. package/dist/hooks/useUserFollow.esm.js +22 -1
  46. package/dist/hooks/useUserFollow.esm.js.map +1 -1
  47. package/dist/index.d.ts +55 -6
  48. package/dist/index.esm.js +5 -2
  49. package/dist/index.esm.js.map +1 -1
  50. package/dist/translation.esm.js +48 -3
  51. package/dist/translation.esm.js.map +1 -1
  52. package/package.json +2 -2
@@ -16,7 +16,7 @@ import RateReview from '@material-ui/icons/RateReview';
16
16
  import DescriptionIcon from '@material-ui/icons/Description';
17
17
  import CreateIcon from '@material-ui/icons/Create';
18
18
  import LinkIcon from '@material-ui/icons/Link';
19
- import Comment from '@material-ui/icons/Comment';
19
+ import CommentIcon from '@material-ui/icons/Comment';
20
20
  import ViewColumn from '@material-ui/icons/ViewColumn';
21
21
  import Share from '@material-ui/icons/Share';
22
22
  import Public from '@material-ui/icons/Public';
@@ -162,7 +162,7 @@ const getIcon = (icon) => {
162
162
  case "link":
163
163
  return /* @__PURE__ */ jsx(LinkIcon, {});
164
164
  case "comment":
165
- return /* @__PURE__ */ jsx(Comment, {});
165
+ return /* @__PURE__ */ jsx(CommentIcon, {});
166
166
  case "view_column":
167
167
  return /* @__PURE__ */ jsx(ViewColumn, {});
168
168
  case "share":
@@ -1 +1 @@
1
- {"version":3,"file":"BadgeChip.esm.js","sources":["../../../src/components/Badges/BadgeChip.tsx"],"sourcesContent":["import { Badge } from '@drodil/backstage-plugin-qeta-common';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport Star from '@material-ui/icons/Star';\nimport VerifiedUser from '@material-ui/icons/VerifiedUser';\nimport Visibility from '@material-ui/icons/Visibility';\nimport EmojiEvents from '@material-ui/icons/EmojiEvents';\nimport Help from '@material-ui/icons/Help';\nimport Search from '@material-ui/icons/Search';\nimport Support from '@material-ui/icons/ContactSupport';\nimport Build from '@material-ui/icons/Build';\nimport School from '@material-ui/icons/School';\nimport MenuBook from '@material-ui/icons/MenuBook';\nimport CastForEducation from '@material-ui/icons/CastForEducation';\nimport ThumbUp from '@material-ui/icons/ThumbUp';\nimport RateReview from '@material-ui/icons/RateReview';\nimport Article from '@material-ui/icons/Description';\nimport Create from '@material-ui/icons/Create';\nimport Link from '@material-ui/icons/Link';\nimport Comment from '@material-ui/icons/Comment';\nimport ViewColumn from '@material-ui/icons/ViewColumn';\nimport Share from '@material-ui/icons/Share';\nimport Public from '@material-ui/icons/Public';\nimport RecordVoiceOver from '@material-ui/icons/RecordVoiceOver';\nimport SpeakerNotes from '@material-ui/icons/SpeakerNotes';\nimport Gavel from '@material-ui/icons/Gavel';\nimport DeviceHub from '@material-ui/icons/DeviceHub';\nimport Hearing from '@material-ui/icons/Hearing';\nimport Stars from '@material-ui/icons/Stars';\nimport Flare from '@material-ui/icons/Flare';\nimport CheckCircle from '@material-ui/icons/CheckCircle';\nimport DoneAll from '@material-ui/icons/DoneAll';\nimport PersonAdd from '@material-ui/icons/PersonAdd';\nimport TrendingUp from '@material-ui/icons/TrendingUp';\nimport Group from '@material-ui/icons/Group';\nimport NightsStay from '@material-ui/icons/NightsStay';\nimport ChatBubble from '@material-ui/icons/ChatBubble';\nimport Translate from '@material-ui/icons/Translate';\nimport LibraryBooks from '@material-ui/icons/LibraryBooks';\nimport CollectionsBookmark from '@material-ui/icons/CollectionsBookmark';\nimport LocalLibrary from '@material-ui/icons/LocalLibrary';\nimport Archive from '@material-ui/icons/Archive';\nimport PlaylistAdd from '@material-ui/icons/PlaylistAdd';\nimport FolderSpecial from '@material-ui/icons/FolderSpecial';\nimport StarRate from '@material-ui/icons/StarRate';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport Palette from '@material-ui/icons/Palette';\nimport CameraAlt from '@material-ui/icons/CameraAlt';\nimport LabelImportant from '@material-ui/icons/LabelImportant';\n\nconst useStyles = makeStyles(theme => ({\n badge: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: theme.spacing(1.5),\n borderRadius: theme.shape.borderRadius * 2,\n width: '100%',\n minHeight: 140,\n height: '100%',\n boxSizing: 'border-box',\n border: '1px solid rgba(0, 0, 0, 0.12)',\n boxShadow: '0 4px 8px rgba(0,0,0,0.1)',\n textAlign: 'center',\n userSelect: 'none',\n position: 'relative',\n },\n count: {\n position: 'absolute',\n top: 18,\n right: -12,\n backgroundColor: 'white !important',\n color: 'black !important',\n borderRadius: '2px',\n display: 'flex',\n padding: '4px',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '12px',\n fontWeight: 'bold',\n boxShadow: '0 2px 4px rgba(0,0,0,0.2)',\n },\n bronze: {\n background: 'linear-gradient(135deg, #cd7f32 0%, #a0522d 100%)',\n '& *': {\n color: '#ffffff',\n },\n },\n silver: {\n background: 'linear-gradient(135deg, #e8e8e8 0%, #a8a8a8 100%)',\n '& *': {\n color: '#333333',\n },\n },\n gold: {\n background: 'linear-gradient(135deg, #ffd700 0%, #daa520 100%)',\n '& *': {\n color: '#333333',\n },\n },\n diamond: {\n background: 'linear-gradient(135deg, #b9f2ff 0%, #7ec8e3 100%)',\n '& *': {\n color: '#333333',\n },\n },\n icon: {\n fontSize: 28,\n marginBottom: theme.spacing(0.5),\n },\n name: {\n fontWeight: 600,\n fontSize: '0.85rem',\n lineHeight: 1.2,\n marginBottom: theme.spacing(0.5),\n },\n level: {\n fontSize: '0.65rem',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n opacity: 0.85,\n marginBottom: theme.spacing(0.5),\n },\n description: {\n fontSize: '0.7rem',\n lineHeight: 1.3,\n opacity: 0.9,\n },\n}));\n\nconst getIcon = (icon: string) => {\n switch (icon) {\n case 'star':\n return <Star />;\n case 'local_police':\n return <VerifiedUser />;\n case 'visibility':\n return <Visibility />;\n case 'workspace_premium':\n return <EmojiEvents />;\n case 'help':\n return <Help />;\n case 'psychology':\n return <Search />;\n case 'support':\n return <Support />;\n case 'build':\n return <Build />;\n case 'school':\n return <School />;\n case 'menu_book':\n return <MenuBook />;\n case 'cast_for_education':\n return <CastForEducation />;\n case 'thumb_up':\n return <ThumbUp />;\n case 'rate_review':\n return <RateReview />;\n case 'article':\n return <Article />;\n case 'history_edu':\n return <Create />;\n case 'link':\n return <Link />;\n case 'comment':\n return <Comment />;\n case 'view_column':\n return <ViewColumn />;\n case 'share':\n return <Share />;\n case 'public':\n return <Public />;\n case 'record_voice_over':\n return <RecordVoiceOver />;\n case 'campaign':\n return <SpeakerNotes />;\n case 'gavel':\n return <Gavel />;\n case 'device_hub':\n return <DeviceHub />;\n case 'hearing':\n return <Hearing />;\n case 'military_tech':\n return <Stars />;\n case 'verified':\n return <VerifiedUser />;\n case 'check_circle':\n return <CheckCircle />;\n case 'done_all':\n return <DoneAll />;\n case 'construction':\n return <Build />;\n case 'auto_fix_high':\n return <Flare />;\n case 'person_add':\n return <PersonAdd />;\n case 'trending_up':\n return <TrendingUp />;\n case 'emoji_events':\n return <EmojiEvents />;\n case 'groups':\n return <Group />;\n case 'nights_stay':\n return <NightsStay />;\n case 'auto_stories':\n return <LibraryBooks />;\n case 'translate':\n return <Translate />;\n case 'chat_bubble':\n return <ChatBubble />;\n // Collection badges\n case 'collections_bookmark':\n return <CollectionsBookmark />;\n case 'local_library':\n return <LocalLibrary />;\n case 'archive':\n return <Archive />;\n case 'playlist_add':\n return <PlaylistAdd />;\n case 'folder_special':\n return <FolderSpecial />;\n case 'inventory':\n return <Archive />;\n case 'star_rate':\n return <StarRate />;\n case 'diamond':\n return <Stars />;\n case 'whatshot':\n return <Whatshot />;\n case 'palette':\n return <Palette />;\n case 'camera_alt':\n return <CameraAlt />;\n case 'label_important':\n return <LabelImportant />;\n default:\n return <VerifiedUser />;\n }\n};\n\nexport const BadgeChip = ({\n badge,\n count,\n}: {\n badge: Badge;\n count?: number;\n}) => {\n const classes = useStyles();\n const IconComponent = getIcon(badge.icon);\n\n return (\n <Box className={`${classes.badge} ${classes[badge.level]}`}>\n <Box className={classes.icon}>{IconComponent}</Box>\n <Typography className={classes.name}>{badge.name}</Typography>\n <Typography className={classes.level}>{badge.level}</Typography>\n <Typography className={classes.description}>\n {badge.description}\n </Typography>\n {count && count > 1 && <Box className={classes.count}>x {count}</Box>}\n </Box>\n );\n};\n"],"names":["Star","Help","Search","Article","Create","Link","CollectionsBookmark","PlaylistAdd"],"mappings":"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"}
1
+ {"version":3,"file":"BadgeChip.esm.js","sources":["../../../src/components/Badges/BadgeChip.tsx"],"sourcesContent":["import { Badge } from '@drodil/backstage-plugin-qeta-common';\nimport { Box, makeStyles, Typography } from '@material-ui/core';\nimport Star from '@material-ui/icons/Star';\nimport VerifiedUser from '@material-ui/icons/VerifiedUser';\nimport Visibility from '@material-ui/icons/Visibility';\nimport EmojiEvents from '@material-ui/icons/EmojiEvents';\nimport Help from '@material-ui/icons/Help';\nimport Search from '@material-ui/icons/Search';\nimport Support from '@material-ui/icons/ContactSupport';\nimport Build from '@material-ui/icons/Build';\nimport School from '@material-ui/icons/School';\nimport MenuBook from '@material-ui/icons/MenuBook';\nimport CastForEducation from '@material-ui/icons/CastForEducation';\nimport ThumbUp from '@material-ui/icons/ThumbUp';\nimport RateReview from '@material-ui/icons/RateReview';\nimport Article from '@material-ui/icons/Description';\nimport Create from '@material-ui/icons/Create';\nimport Link from '@material-ui/icons/Link';\nimport Comment from '@material-ui/icons/Comment';\nimport ViewColumn from '@material-ui/icons/ViewColumn';\nimport Share from '@material-ui/icons/Share';\nimport Public from '@material-ui/icons/Public';\nimport RecordVoiceOver from '@material-ui/icons/RecordVoiceOver';\nimport SpeakerNotes from '@material-ui/icons/SpeakerNotes';\nimport Gavel from '@material-ui/icons/Gavel';\nimport DeviceHub from '@material-ui/icons/DeviceHub';\nimport Hearing from '@material-ui/icons/Hearing';\nimport Stars from '@material-ui/icons/Stars';\nimport Flare from '@material-ui/icons/Flare';\nimport CheckCircle from '@material-ui/icons/CheckCircle';\nimport DoneAll from '@material-ui/icons/DoneAll';\nimport PersonAdd from '@material-ui/icons/PersonAdd';\nimport TrendingUp from '@material-ui/icons/TrendingUp';\nimport Group from '@material-ui/icons/Group';\nimport NightsStay from '@material-ui/icons/NightsStay';\nimport ChatBubble from '@material-ui/icons/ChatBubble';\nimport Translate from '@material-ui/icons/Translate';\nimport LibraryBooks from '@material-ui/icons/LibraryBooks';\nimport CollectionsBookmark from '@material-ui/icons/CollectionsBookmark';\nimport LocalLibrary from '@material-ui/icons/LocalLibrary';\nimport Archive from '@material-ui/icons/Archive';\nimport PlaylistAdd from '@material-ui/icons/PlaylistAdd';\nimport FolderSpecial from '@material-ui/icons/FolderSpecial';\nimport StarRate from '@material-ui/icons/StarRate';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport Palette from '@material-ui/icons/Palette';\nimport CameraAlt from '@material-ui/icons/CameraAlt';\nimport LabelImportant from '@material-ui/icons/LabelImportant';\n\nconst useStyles = makeStyles(theme => ({\n badge: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: theme.spacing(1.5),\n borderRadius: theme.shape.borderRadius * 2,\n width: '100%',\n minHeight: 140,\n height: '100%',\n boxSizing: 'border-box',\n border: '1px solid rgba(0, 0, 0, 0.12)',\n boxShadow: '0 4px 8px rgba(0,0,0,0.1)',\n textAlign: 'center',\n userSelect: 'none',\n position: 'relative',\n },\n count: {\n position: 'absolute',\n top: 18,\n right: -12,\n backgroundColor: 'white !important',\n color: 'black !important',\n borderRadius: '2px',\n display: 'flex',\n padding: '4px',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '12px',\n fontWeight: 'bold',\n boxShadow: '0 2px 4px rgba(0,0,0,0.2)',\n },\n bronze: {\n background: 'linear-gradient(135deg, #cd7f32 0%, #a0522d 100%)',\n '& *': {\n color: '#ffffff',\n },\n },\n silver: {\n background: 'linear-gradient(135deg, #e8e8e8 0%, #a8a8a8 100%)',\n '& *': {\n color: '#333333',\n },\n },\n gold: {\n background: 'linear-gradient(135deg, #ffd700 0%, #daa520 100%)',\n '& *': {\n color: '#333333',\n },\n },\n diamond: {\n background: 'linear-gradient(135deg, #b9f2ff 0%, #7ec8e3 100%)',\n '& *': {\n color: '#333333',\n },\n },\n icon: {\n fontSize: 28,\n marginBottom: theme.spacing(0.5),\n },\n name: {\n fontWeight: 600,\n fontSize: '0.85rem',\n lineHeight: 1.2,\n marginBottom: theme.spacing(0.5),\n },\n level: {\n fontSize: '0.65rem',\n textTransform: 'uppercase',\n letterSpacing: '0.5px',\n opacity: 0.85,\n marginBottom: theme.spacing(0.5),\n },\n description: {\n fontSize: '0.7rem',\n lineHeight: 1.3,\n opacity: 0.9,\n },\n}));\n\nconst getIcon = (icon: string) => {\n switch (icon) {\n case 'star':\n return <Star />;\n case 'local_police':\n return <VerifiedUser />;\n case 'visibility':\n return <Visibility />;\n case 'workspace_premium':\n return <EmojiEvents />;\n case 'help':\n return <Help />;\n case 'psychology':\n return <Search />;\n case 'support':\n return <Support />;\n case 'build':\n return <Build />;\n case 'school':\n return <School />;\n case 'menu_book':\n return <MenuBook />;\n case 'cast_for_education':\n return <CastForEducation />;\n case 'thumb_up':\n return <ThumbUp />;\n case 'rate_review':\n return <RateReview />;\n case 'article':\n return <Article />;\n case 'history_edu':\n return <Create />;\n case 'link':\n return <Link />;\n case 'comment':\n return <Comment />;\n case 'view_column':\n return <ViewColumn />;\n case 'share':\n return <Share />;\n case 'public':\n return <Public />;\n case 'record_voice_over':\n return <RecordVoiceOver />;\n case 'campaign':\n return <SpeakerNotes />;\n case 'gavel':\n return <Gavel />;\n case 'device_hub':\n return <DeviceHub />;\n case 'hearing':\n return <Hearing />;\n case 'military_tech':\n return <Stars />;\n case 'verified':\n return <VerifiedUser />;\n case 'check_circle':\n return <CheckCircle />;\n case 'done_all':\n return <DoneAll />;\n case 'construction':\n return <Build />;\n case 'auto_fix_high':\n return <Flare />;\n case 'person_add':\n return <PersonAdd />;\n case 'trending_up':\n return <TrendingUp />;\n case 'emoji_events':\n return <EmojiEvents />;\n case 'groups':\n return <Group />;\n case 'nights_stay':\n return <NightsStay />;\n case 'auto_stories':\n return <LibraryBooks />;\n case 'translate':\n return <Translate />;\n case 'chat_bubble':\n return <ChatBubble />;\n // Collection badges\n case 'collections_bookmark':\n return <CollectionsBookmark />;\n case 'local_library':\n return <LocalLibrary />;\n case 'archive':\n return <Archive />;\n case 'playlist_add':\n return <PlaylistAdd />;\n case 'folder_special':\n return <FolderSpecial />;\n case 'inventory':\n return <Archive />;\n case 'star_rate':\n return <StarRate />;\n case 'diamond':\n return <Stars />;\n case 'whatshot':\n return <Whatshot />;\n case 'palette':\n return <Palette />;\n case 'camera_alt':\n return <CameraAlt />;\n case 'label_important':\n return <LabelImportant />;\n default:\n return <VerifiedUser />;\n }\n};\n\nexport const BadgeChip = ({\n badge,\n count,\n}: {\n badge: Badge;\n count?: number;\n}) => {\n const classes = useStyles();\n const IconComponent = getIcon(badge.icon);\n\n return (\n <Box className={`${classes.badge} ${classes[badge.level]}`}>\n <Box className={classes.icon}>{IconComponent}</Box>\n <Typography className={classes.name}>{badge.name}</Typography>\n <Typography className={classes.level}>{badge.level}</Typography>\n <Typography className={classes.description}>\n {badge.description}\n </Typography>\n {count && count > 1 && <Box className={classes.count}>x {count}</Box>}\n </Box>\n );\n};\n"],"names":["Star","Help","Search","Article","Create","Link","Comment","CollectionsBookmark","PlaylistAdd"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { Tooltip, IconButton } from '@material-ui/core';
3
- import Visibility from '@material-ui/icons/Visibility';
4
- import VisibilityOff from '@material-ui/icons/VisibilityOff';
3
+ import NotificationsActive from '@material-ui/icons/NotificationsActive';
4
+ import NotificationsNone from '@material-ui/icons/NotificationsNone';
5
5
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
6
6
  import { qetaTranslationRef } from '../../translation.esm.js';
7
7
  import { useCollectionsFollow } from '../../hooks/useCollectionsFollow.esm.js';
@@ -17,7 +17,7 @@ const CollectionFollowButton = (props) => {
17
17
  IconButton,
18
18
  {
19
19
  size: "small",
20
- color: collections.isFollowingCollection(collection) ? "secondary" : "primary",
20
+ color: collections.isFollowingCollection(collection) ? "secondary" : "default",
21
21
  onClick: () => {
22
22
  if (collections.isFollowingCollection(collection)) {
23
23
  collections.unfollowCollection(collection);
@@ -26,7 +26,7 @@ const CollectionFollowButton = (props) => {
26
26
  }
27
27
  },
28
28
  style,
29
- children: collections.isFollowingCollection(collection) ? /* @__PURE__ */ jsx(VisibilityOff, {}) : /* @__PURE__ */ jsx(Visibility, {})
29
+ children: collections.isFollowingCollection(collection) ? /* @__PURE__ */ jsx(NotificationsActive, {}) : /* @__PURE__ */ jsx(NotificationsNone, {})
30
30
  }
31
31
  ) });
32
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionFollowButton.esm.js","sources":["../../../src/components/Buttons/CollectionFollowButton.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\nimport { Collection } from '@drodil/backstage-plugin-qeta-common';\nimport { useCollectionsFollow } from '../../hooks/useCollectionsFollow';\n\nexport const CollectionFollowButton = (props: {\n collection: Collection;\n style?: CSSProperties;\n}) => {\n const { collection, style } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const collections = useCollectionsFollow();\n if (collections.loading) {\n return null;\n }\n return (\n <Tooltip title={t('collectionButton.tooltip')}>\n <IconButton\n size=\"small\"\n color={\n collections.isFollowingCollection(collection)\n ? 'secondary'\n : 'primary'\n }\n onClick={() => {\n if (collections.isFollowingCollection(collection)) {\n collections.unfollowCollection(collection);\n } else {\n collections.followCollection(collection);\n }\n }}\n style={style}\n >\n {collections.isFollowingCollection(collection) ? (\n <VisibilityOff />\n ) : (\n <Visibility />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AASa,MAAA,sBAAA,GAAyB,CAAC,KAGjC,KAAA;AACJ,EAAM,MAAA,EAAE,UAAY,EAAA,KAAA,EAAU,GAAA,KAAA;AAC9B,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,cAAc,oBAAqB,EAAA;AACzC,EAAA,IAAI,YAAY,OAAS,EAAA;AACvB,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,0BAA0B,CAC1C,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,OAAA;AAAA,MACL,KACE,EAAA,WAAA,CAAY,qBAAsB,CAAA,UAAU,IACxC,WACA,GAAA,SAAA;AAAA,MAEN,SAAS,MAAM;AACb,QAAI,IAAA,WAAA,CAAY,qBAAsB,CAAA,UAAU,CAAG,EAAA;AACjD,UAAA,WAAA,CAAY,mBAAmB,UAAU,CAAA;AAAA,SACpC,MAAA;AACL,UAAA,WAAA,CAAY,iBAAiB,UAAU,CAAA;AAAA;AACzC,OACF;AAAA,MACA,KAAA;AAAA,MAEC,QAAA,EAAA,WAAA,CAAY,sBAAsB,UAAU,CAAA,uBAC1C,aAAc,EAAA,EAAA,CAAA,uBAEd,UAAW,EAAA,EAAA;AAAA;AAAA,GAGlB,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CollectionFollowButton.esm.js","sources":["../../../src/components/Buttons/CollectionFollowButton.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport NotificationsActive from '@material-ui/icons/NotificationsActive';\nimport NotificationsNone from '@material-ui/icons/NotificationsNone';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\nimport { Collection } from '@drodil/backstage-plugin-qeta-common';\nimport { useCollectionsFollow } from '../../hooks/useCollectionsFollow';\n\nexport const CollectionFollowButton = (props: {\n collection: Collection;\n style?: CSSProperties;\n}) => {\n const { collection, style } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const collections = useCollectionsFollow();\n if (collections.loading) {\n return null;\n }\n return (\n <Tooltip title={t('collectionButton.tooltip')}>\n <IconButton\n size=\"small\"\n color={\n collections.isFollowingCollection(collection)\n ? 'secondary'\n : 'default'\n }\n onClick={() => {\n if (collections.isFollowingCollection(collection)) {\n collections.unfollowCollection(collection);\n } else {\n collections.followCollection(collection);\n }\n }}\n style={style}\n >\n {collections.isFollowingCollection(collection) ? (\n <NotificationsActive />\n ) : (\n <NotificationsNone />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AASa,MAAA,sBAAA,GAAyB,CAAC,KAGjC,KAAA;AACJ,EAAM,MAAA,EAAE,UAAY,EAAA,KAAA,EAAU,GAAA,KAAA;AAC9B,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,cAAc,oBAAqB,EAAA;AACzC,EAAA,IAAI,YAAY,OAAS,EAAA;AACvB,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,0BAA0B,CAC1C,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,OAAA;AAAA,MACL,KACE,EAAA,WAAA,CAAY,qBAAsB,CAAA,UAAU,IACxC,WACA,GAAA,SAAA;AAAA,MAEN,SAAS,MAAM;AACb,QAAI,IAAA,WAAA,CAAY,qBAAsB,CAAA,UAAU,CAAG,EAAA;AACjD,UAAA,WAAA,CAAY,mBAAmB,UAAU,CAAA;AAAA,SACpC,MAAA;AACL,UAAA,WAAA,CAAY,iBAAiB,UAAU,CAAA;AAAA;AACzC,OACF;AAAA,MACA,KAAA;AAAA,MAEC,QAAA,EAAA,WAAA,CAAY,sBAAsB,UAAU,CAAA,uBAC1C,mBAAoB,EAAA,EAAA,CAAA,uBAEpB,iBAAkB,EAAA,EAAA;AAAA;AAAA,GAGzB,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import Visibility from '@material-ui/icons/Visibility';
3
- import VisibilityOff from '@material-ui/icons/VisibilityOff';
2
+ import NotificationsActive from '@material-ui/icons/NotificationsActive';
3
+ import NotificationsNone from '@material-ui/icons/NotificationsNone';
4
4
  import '@backstage/core-plugin-api';
5
5
  import '../../api.esm.js';
6
6
  import 'react-use';
@@ -35,7 +35,7 @@ const EntityFollowButton = (props) => {
35
35
  {
36
36
  disableRipple: true,
37
37
  size: "small",
38
- color: entities.isFollowingEntity(entityRef) ? "secondary" : "primary",
38
+ color: entities.isFollowingEntity(entityRef) ? "secondary" : "default",
39
39
  onClick: () => {
40
40
  if (entities.isFollowingEntity(entityRef)) {
41
41
  entities.unfollowEntity(entityRef);
@@ -43,7 +43,7 @@ const EntityFollowButton = (props) => {
43
43
  entities.followEntity(entityRef);
44
44
  }
45
45
  },
46
- children: entities.isFollowingEntity(entityRef) ? /* @__PURE__ */ jsx(VisibilityOff, {}) : /* @__PURE__ */ jsx(Visibility, {})
46
+ children: entities.isFollowingEntity(entityRef) ? /* @__PURE__ */ jsx(NotificationsActive, {}) : /* @__PURE__ */ jsx(NotificationsNone, {})
47
47
  }
48
48
  ) });
49
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFollowButton.esm.js","sources":["../../../src/components/Buttons/EntityFollowButton.tsx"],"sourcesContent":["import Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\nimport { useEntityFollow } from '../../hooks';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\n\nexport const EntityFollowButton = (props: { entityRef: string }) => {\n const { entityRef } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const entities = useEntityFollow();\n if (entities.loading) {\n return null;\n }\n\n return (\n <Tooltip title={t('entityButton.tooltip')}>\n <IconButton\n disableRipple\n size=\"small\"\n color={entities.isFollowingEntity(entityRef) ? 'secondary' : 'primary'}\n onClick={() => {\n if (entities.isFollowingEntity(entityRef)) {\n entities.unfollowEntity(entityRef);\n } else {\n entities.followEntity(entityRef);\n }\n }}\n >\n {entities.isFollowingEntity(entityRef) ? (\n <VisibilityOff />\n ) : (\n <Visibility />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOa,MAAA,kBAAA,GAAqB,CAAC,KAAiC,KAAA;AAClE,EAAM,MAAA,EAAE,WAAc,GAAA,KAAA;AACtB,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,WAAW,eAAgB,EAAA;AACjC,EAAA,IAAI,SAAS,OAAS,EAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,sBAAsB,CACtC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,aAAa,EAAA,IAAA;AAAA,MACb,IAAK,EAAA,OAAA;AAAA,MACL,KAAO,EAAA,QAAA,CAAS,iBAAkB,CAAA,SAAS,IAAI,WAAc,GAAA,SAAA;AAAA,MAC7D,SAAS,MAAM;AACb,QAAI,IAAA,QAAA,CAAS,iBAAkB,CAAA,SAAS,CAAG,EAAA;AACzC,UAAA,QAAA,CAAS,eAAe,SAAS,CAAA;AAAA,SAC5B,MAAA;AACL,UAAA,QAAA,CAAS,aAAa,SAAS,CAAA;AAAA;AACjC,OACF;AAAA,MAEC,QAAA,EAAA,QAAA,CAAS,kBAAkB,SAAS,CAAA,uBAClC,aAAc,EAAA,EAAA,CAAA,uBAEd,UAAW,EAAA,EAAA;AAAA;AAAA,GAGlB,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"EntityFollowButton.esm.js","sources":["../../../src/components/Buttons/EntityFollowButton.tsx"],"sourcesContent":["import NotificationsActive from '@material-ui/icons/NotificationsActive';\nimport NotificationsNone from '@material-ui/icons/NotificationsNone';\nimport { useEntityFollow } from '../../hooks';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\n\nexport const EntityFollowButton = (props: { entityRef: string }) => {\n const { entityRef } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const entities = useEntityFollow();\n if (entities.loading) {\n return null;\n }\n\n return (\n <Tooltip title={t('entityButton.tooltip')}>\n <IconButton\n disableRipple\n size=\"small\"\n color={entities.isFollowingEntity(entityRef) ? 'secondary' : 'default'}\n onClick={() => {\n if (entities.isFollowingEntity(entityRef)) {\n entities.unfollowEntity(entityRef);\n } else {\n entities.followEntity(entityRef);\n }\n }}\n >\n {entities.isFollowingEntity(entityRef) ? (\n <NotificationsActive />\n ) : (\n <NotificationsNone />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOa,MAAA,kBAAA,GAAqB,CAAC,KAAiC,KAAA;AAClE,EAAM,MAAA,EAAE,WAAc,GAAA,KAAA;AACtB,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,WAAW,eAAgB,EAAA;AACjC,EAAA,IAAI,SAAS,OAAS,EAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,sBAAsB,CACtC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,aAAa,EAAA,IAAA;AAAA,MACb,IAAK,EAAA,OAAA;AAAA,MACL,KAAO,EAAA,QAAA,CAAS,iBAAkB,CAAA,SAAS,IAAI,WAAc,GAAA,SAAA;AAAA,MAC7D,SAAS,MAAM;AACb,QAAI,IAAA,QAAA,CAAS,iBAAkB,CAAA,SAAS,CAAG,EAAA;AACzC,UAAA,QAAA,CAAS,eAAe,SAAS,CAAA;AAAA,SAC5B,MAAA;AACL,UAAA,QAAA,CAAS,aAAa,SAAS,CAAA;AAAA;AACjC,OACF;AAAA,MAEC,QAAA,EAAA,QAAA,CAAS,kBAAkB,SAAS,CAAA,uBAClC,mBAAoB,EAAA,EAAA,CAAA,uBAEpB,iBAAkB,EAAA,EAAA;AAAA;AAAA,GAGzB,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,44 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
3
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
4
+ import { qetaTranslationRef } from '../../translation.esm.js';
5
+ import { Tooltip, IconButton } from '@material-ui/core';
6
+ import NotificationsActive from '@material-ui/icons/NotificationsActive';
7
+ import NotificationsNone from '@material-ui/icons/NotificationsNone';
8
+ import { useApi } from '@backstage/core-plugin-api';
9
+ import { qetaApiRef } from '../../api.esm.js';
10
+
11
+ const FollowPostButton = (props) => {
12
+ const { post } = props;
13
+ const { t } = useTranslationRef(qetaTranslationRef);
14
+ const qetaApi = useApi(qetaApiRef);
15
+ const [following, setFollowing] = useState(post.following ?? false);
16
+ const handleFollow = async () => {
17
+ if (following) {
18
+ await qetaApi.unfollowPost(post.id);
19
+ setFollowing(false);
20
+ } else {
21
+ await qetaApi.followPost(post.id);
22
+ setFollowing(true);
23
+ }
24
+ };
25
+ return /* @__PURE__ */ jsx(
26
+ Tooltip,
27
+ {
28
+ title: following ? t("followPostButton.unfollow", {}) : t("followPostButton.follow", {}),
29
+ children: /* @__PURE__ */ jsx(
30
+ IconButton,
31
+ {
32
+ disableRipple: true,
33
+ size: "small",
34
+ color: following ? "secondary" : "default",
35
+ onClick: handleFollow,
36
+ children: following ? /* @__PURE__ */ jsx(NotificationsActive, {}) : /* @__PURE__ */ jsx(NotificationsNone, {})
37
+ }
38
+ )
39
+ }
40
+ );
41
+ };
42
+
43
+ export { FollowPostButton };
44
+ //# sourceMappingURL=FollowPostButton.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FollowPostButton.esm.js","sources":["../../../src/components/Buttons/FollowPostButton.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport NotificationsActive from '@material-ui/icons/NotificationsActive';\nimport NotificationsNone from '@material-ui/icons/NotificationsNone';\nimport { Post } from '@drodil/backstage-plugin-qeta-common';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { qetaApiRef } from '../../api';\n\nexport const FollowPostButton = (props: { post: Post }) => {\n const { post } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const qetaApi = useApi(qetaApiRef);\n const [following, setFollowing] = useState(post.following ?? false);\n\n const handleFollow = async () => {\n if (following) {\n await qetaApi.unfollowPost(post.id);\n setFollowing(false);\n } else {\n await qetaApi.followPost(post.id);\n setFollowing(true);\n }\n };\n\n return (\n <Tooltip\n title={\n following\n ? t('followPostButton.unfollow', {})\n : t('followPostButton.follow', {})\n }\n >\n <IconButton\n disableRipple\n size=\"small\"\n color={following ? 'secondary' : 'default'}\n onClick={handleFollow}\n >\n {following ? <NotificationsActive /> : <NotificationsNone />}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AAUa,MAAA,gBAAA,GAAmB,CAAC,KAA0B,KAAA;AACzD,EAAM,MAAA,EAAE,MAAS,GAAA,KAAA;AACjB,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAM,MAAA,OAAA,GAAU,OAAO,UAAU,CAAA;AACjC,EAAA,MAAM,CAAC,SAAW,EAAA,YAAY,IAAI,QAAS,CAAA,IAAA,CAAK,aAAa,KAAK,CAAA;AAElE,EAAA,MAAM,eAAe,YAAY;AAC/B,IAAA,IAAI,SAAW,EAAA;AACb,MAAM,MAAA,OAAA,CAAQ,YAAa,CAAA,IAAA,CAAK,EAAE,CAAA;AAClC,MAAA,YAAA,CAAa,KAAK,CAAA;AAAA,KACb,MAAA;AACL,MAAM,MAAA,OAAA,CAAQ,UAAW,CAAA,IAAA,CAAK,EAAE,CAAA;AAChC,MAAA,YAAA,CAAa,IAAI,CAAA;AAAA;AACnB,GACF;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,KAAA,EACE,SACI,GAAA,CAAA,CAAE,2BAA6B,EAAA,EAAE,CACjC,GAAA,CAAA,CAAE,yBAA2B,EAAA,EAAE,CAAA;AAAA,MAGrC,QAAA,kBAAA,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,aAAa,EAAA,IAAA;AAAA,UACb,IAAK,EAAA,OAAA;AAAA,UACL,KAAA,EAAO,YAAY,WAAc,GAAA,SAAA;AAAA,UACjC,OAAS,EAAA,YAAA;AAAA,UAER,QAAY,EAAA,SAAA,mBAAA,GAAA,CAAC,mBAAoB,EAAA,EAAA,CAAA,uBAAM,iBAAkB,EAAA,EAAA;AAAA;AAAA;AAC5D;AAAA,GACF;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import Visibility from '@material-ui/icons/Visibility';
3
- import VisibilityOff from '@material-ui/icons/VisibilityOff';
2
+ import NotificationsActive from '@material-ui/icons/NotificationsActive';
3
+ import NotificationsNone from '@material-ui/icons/NotificationsNone';
4
4
  import '@backstage/core-plugin-api';
5
5
  import '../../api.esm.js';
6
6
  import 'react-use';
@@ -35,7 +35,7 @@ const TagFollowButton = (props) => {
35
35
  {
36
36
  disableRipple: true,
37
37
  size: "small",
38
- color: tags.isFollowingTag(tag) ? "secondary" : "primary",
38
+ color: tags.isFollowingTag(tag) ? "secondary" : "default",
39
39
  onClick: () => {
40
40
  if (tags.isFollowingTag(tag)) {
41
41
  tags.unfollowTag(tag);
@@ -43,7 +43,7 @@ const TagFollowButton = (props) => {
43
43
  tags.followTag(tag);
44
44
  }
45
45
  },
46
- children: tags.isFollowingTag(tag) ? /* @__PURE__ */ jsx(VisibilityOff, {}) : /* @__PURE__ */ jsx(Visibility, {})
46
+ children: tags.isFollowingTag(tag) ? /* @__PURE__ */ jsx(NotificationsActive, {}) : /* @__PURE__ */ jsx(NotificationsNone, {})
47
47
  }
48
48
  ) });
49
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TagFollowButton.esm.js","sources":["../../../src/components/Buttons/TagFollowButton.tsx"],"sourcesContent":["import Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\nimport { useTagsFollow } from '../../hooks';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\n\nexport const TagFollowButton = (props: { tag: string }) => {\n const { tag } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const tags = useTagsFollow();\n if (tags.loading) {\n return null;\n }\n return (\n <Tooltip title={t('tagButton.tooltip')}>\n <IconButton\n disableRipple\n size=\"small\"\n color={tags.isFollowingTag(tag) ? 'secondary' : 'primary'}\n onClick={() => {\n if (tags.isFollowingTag(tag)) {\n tags.unfollowTag(tag);\n } else {\n tags.followTag(tag);\n }\n }}\n >\n {tags.isFollowingTag(tag) ? <VisibilityOff /> : <Visibility />}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOa,MAAA,eAAA,GAAkB,CAAC,KAA2B,KAAA;AACzD,EAAM,MAAA,EAAE,KAAQ,GAAA,KAAA;AAChB,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,OAAO,aAAc,EAAA;AAC3B,EAAA,IAAI,KAAK,OAAS,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,mBAAmB,CACnC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,aAAa,EAAA,IAAA;AAAA,MACb,IAAK,EAAA,OAAA;AAAA,MACL,KAAO,EAAA,IAAA,CAAK,cAAe,CAAA,GAAG,IAAI,WAAc,GAAA,SAAA;AAAA,MAChD,SAAS,MAAM;AACb,QAAI,IAAA,IAAA,CAAK,cAAe,CAAA,GAAG,CAAG,EAAA;AAC5B,UAAA,IAAA,CAAK,YAAY,GAAG,CAAA;AAAA,SACf,MAAA;AACL,UAAA,IAAA,CAAK,UAAU,GAAG,CAAA;AAAA;AACpB,OACF;AAAA,MAEC,QAAA,EAAA,IAAA,CAAK,eAAe,GAAG,CAAA,uBAAK,aAAc,EAAA,EAAA,CAAA,uBAAM,UAAW,EAAA,EAAA;AAAA;AAAA,GAEhE,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TagFollowButton.esm.js","sources":["../../../src/components/Buttons/TagFollowButton.tsx"],"sourcesContent":["import NotificationsActive from '@material-ui/icons/NotificationsActive';\nimport NotificationsNone from '@material-ui/icons/NotificationsNone';\nimport { useTagsFollow } from '../../hooks';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\n\nexport const TagFollowButton = (props: { tag: string }) => {\n const { tag } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const tags = useTagsFollow();\n if (tags.loading) {\n return null;\n }\n return (\n <Tooltip title={t('tagButton.tooltip')}>\n <IconButton\n disableRipple\n size=\"small\"\n color={tags.isFollowingTag(tag) ? 'secondary' : 'default'}\n onClick={() => {\n if (tags.isFollowingTag(tag)) {\n tags.unfollowTag(tag);\n } else {\n tags.followTag(tag);\n }\n }}\n >\n {tags.isFollowingTag(tag) ? (\n <NotificationsActive />\n ) : (\n <NotificationsNone />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOa,MAAA,eAAA,GAAkB,CAAC,KAA2B,KAAA;AACzD,EAAM,MAAA,EAAE,KAAQ,GAAA,KAAA;AAChB,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,OAAO,aAAc,EAAA;AAC3B,EAAA,IAAI,KAAK,OAAS,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,mBAAmB,CACnC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,aAAa,EAAA,IAAA;AAAA,MACb,IAAK,EAAA,OAAA;AAAA,MACL,KAAO,EAAA,IAAA,CAAK,cAAe,CAAA,GAAG,IAAI,WAAc,GAAA,SAAA;AAAA,MAChD,SAAS,MAAM;AACb,QAAI,IAAA,IAAA,CAAK,cAAe,CAAA,GAAG,CAAG,EAAA;AAC5B,UAAA,IAAA,CAAK,YAAY,GAAG,CAAA;AAAA,SACf,MAAA;AACL,UAAA,IAAA,CAAK,UAAU,GAAG,CAAA;AAAA;AACpB,OACF;AAAA,MAEC,QAAA,EAAA,IAAA,CAAK,eAAe,GAAG,CAAA,uBACrB,mBAAoB,EAAA,EAAA,CAAA,uBAEpB,iBAAkB,EAAA,EAAA;AAAA;AAAA,GAGzB,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import Visibility from '@material-ui/icons/Visibility';
3
- import VisibilityOff from '@material-ui/icons/VisibilityOff';
2
+ import NotificationsActive from '@material-ui/icons/NotificationsActive';
3
+ import NotificationsNone from '@material-ui/icons/NotificationsNone';
4
4
  import '@backstage/core-plugin-api';
5
5
  import '../../api.esm.js';
6
6
  import 'react-use';
@@ -35,7 +35,7 @@ const UserFollowButton = (props) => {
35
35
  {
36
36
  disableRipple: true,
37
37
  size: "small",
38
- color: users.isFollowingUser(userRef) ? "secondary" : "primary",
38
+ color: users.isFollowingUser(userRef) ? "secondary" : "default",
39
39
  onClick: () => {
40
40
  if (users.isFollowingUser(userRef)) {
41
41
  users.unfollowUser(userRef);
@@ -44,7 +44,7 @@ const UserFollowButton = (props) => {
44
44
  }
45
45
  },
46
46
  style,
47
- children: users.isFollowingUser(userRef) ? /* @__PURE__ */ jsx(VisibilityOff, {}) : /* @__PURE__ */ jsx(Visibility, {})
47
+ children: users.isFollowingUser(userRef) ? /* @__PURE__ */ jsx(NotificationsActive, {}) : /* @__PURE__ */ jsx(NotificationsNone, {})
48
48
  }
49
49
  ) });
50
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UserFollowButton.esm.js","sources":["../../../src/components/Buttons/UserFollowButton.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\nimport { useUserFollow } from '../../hooks';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { qetaTranslationRef } from '../../translation.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const UserFollowButton = (props: {\n userRef: string;\n style?: CSSProperties;\n}) => {\n const { userRef, style } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const users = useUserFollow();\n if (users.loading) {\n return null;\n }\n\n return (\n <Tooltip title={t('userButton.tooltip')}>\n <IconButton\n disableRipple\n size=\"small\"\n color={users.isFollowingUser(userRef) ? 'secondary' : 'primary'}\n onClick={() => {\n if (users.isFollowingUser(userRef)) {\n users.unfollowUser(userRef);\n } else {\n users.followUser(userRef);\n }\n }}\n style={style}\n >\n {users.isFollowingUser(userRef) ? <VisibilityOff /> : <Visibility />}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAQa,MAAA,gBAAA,GAAmB,CAAC,KAG3B,KAAA;AACJ,EAAM,MAAA,EAAE,OAAS,EAAA,KAAA,EAAU,GAAA,KAAA;AAC3B,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,QAAQ,aAAc,EAAA;AAC5B,EAAA,IAAI,MAAM,OAAS,EAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,oBAAoB,CACpC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,aAAa,EAAA,IAAA;AAAA,MACb,IAAK,EAAA,OAAA;AAAA,MACL,KAAO,EAAA,KAAA,CAAM,eAAgB,CAAA,OAAO,IAAI,WAAc,GAAA,SAAA;AAAA,MACtD,SAAS,MAAM;AACb,QAAI,IAAA,KAAA,CAAM,eAAgB,CAAA,OAAO,CAAG,EAAA;AAClC,UAAA,KAAA,CAAM,aAAa,OAAO,CAAA;AAAA,SACrB,MAAA;AACL,UAAA,KAAA,CAAM,WAAW,OAAO,CAAA;AAAA;AAC1B,OACF;AAAA,MACA,KAAA;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,gBAAgB,OAAO,CAAA,uBAAK,aAAc,EAAA,EAAA,CAAA,uBAAM,UAAW,EAAA,EAAA;AAAA;AAAA,GAEtE,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"UserFollowButton.esm.js","sources":["../../../src/components/Buttons/UserFollowButton.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport NotificationsActive from '@material-ui/icons/NotificationsActive';\nimport NotificationsNone from '@material-ui/icons/NotificationsNone';\nimport { useUserFollow } from '../../hooks';\nimport { IconButton, Tooltip } from '@material-ui/core';\nimport { qetaTranslationRef } from '../../translation.ts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const UserFollowButton = (props: {\n userRef: string;\n style?: CSSProperties;\n}) => {\n const { userRef, style } = props;\n const { t } = useTranslationRef(qetaTranslationRef);\n const users = useUserFollow();\n if (users.loading) {\n return null;\n }\n\n return (\n <Tooltip title={t('userButton.tooltip')}>\n <IconButton\n disableRipple\n size=\"small\"\n color={users.isFollowingUser(userRef) ? 'secondary' : 'default'}\n onClick={() => {\n if (users.isFollowingUser(userRef)) {\n users.unfollowUser(userRef);\n } else {\n users.followUser(userRef);\n }\n }}\n style={style}\n >\n {users.isFollowingUser(userRef) ? (\n <NotificationsActive />\n ) : (\n <NotificationsNone />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAQa,MAAA,gBAAA,GAAmB,CAAC,KAG3B,KAAA;AACJ,EAAM,MAAA,EAAE,OAAS,EAAA,KAAA,EAAU,GAAA,KAAA;AAC3B,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,QAAQ,aAAc,EAAA;AAC5B,EAAA,IAAI,MAAM,OAAS,EAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,CAAA,CAAE,oBAAoB,CACpC,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,aAAa,EAAA,IAAA;AAAA,MACb,IAAK,EAAA,OAAA;AAAA,MACL,KAAO,EAAA,KAAA,CAAM,eAAgB,CAAA,OAAO,IAAI,WAAc,GAAA,SAAA;AAAA,MACtD,SAAS,MAAM;AACb,QAAI,IAAA,KAAA,CAAM,eAAgB,CAAA,OAAO,CAAG,EAAA;AAClC,UAAA,KAAA,CAAM,aAAa,OAAO,CAAA;AAAA,SACrB,MAAA;AACL,UAAA,KAAA,CAAM,WAAW,OAAO,CAAA;AAAA;AAC1B,OACF;AAAA,MACA,KAAA;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,gBAAgB,OAAO,CAAA,uBAC3B,mBAAoB,EAAA,EAAA,CAAA,uBAEpB,iBAAkB,EAAA,EAAA;AAAA;AAAA,GAGzB,EAAA,CAAA;AAEJ;;;;"}
@@ -9,8 +9,8 @@ import '../../translation.esm.js';
9
9
  import '@backstage/plugin-permission-react';
10
10
  import '@backstage/plugin-permission-common';
11
11
  import '@backstage/core-components';
12
- import '@material-ui/icons/Visibility';
13
- import '@material-ui/icons/VisibilityOff';
12
+ import '@material-ui/icons/NotificationsActive';
13
+ import '@material-ui/icons/NotificationsNone';
14
14
  import '../../api.esm.js';
15
15
  import 'react-use';
16
16
  import 'react';
@@ -0,0 +1,164 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
3
+ import { qetaTranslationRef } from '../../translation.esm.js';
4
+ import { useQetaApi } from '../../hooks/useQetaApi.esm.js';
5
+ import '@backstage/core-plugin-api';
6
+ import '../../api.esm.js';
7
+ import '@backstage/plugin-signals-react';
8
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
9
+ import '../../hooks/useListItemStyles.esm.js';
10
+ import '@backstage/catalog-model';
11
+ import 'dataloader';
12
+ import '@backstage/plugin-catalog-react';
13
+ import 'react-use/lib/useAsync';
14
+ import '@backstage/plugin-permission-react';
15
+ import '@drodil/backstage-plugin-qeta-common';
16
+ import '@backstage/plugin-permission-common';
17
+ import { makeStyles, Card, CardHeader, Select, MenuItem, CardContent, Grid, Box, Typography } from '@material-ui/core';
18
+ import 'react-router-dom';
19
+ import 'react-use/lib/useDebounce';
20
+ import '../FilterPanel/FilterPanel.esm.js';
21
+ import '../QetaContext/QetaContext.esm.js';
22
+ import { Skeleton } from '@material-ui/lab';
23
+ import PostAddIcon from '@material-ui/icons/PostAdd';
24
+ import QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';
25
+ import Visibility from '@material-ui/icons/Visibility';
26
+ import CommentIcon from '@material-ui/icons/Comment';
27
+ import ThumbUp from '@material-ui/icons/ThumbUp';
28
+ import PeopleIcon from '@material-ui/icons/People';
29
+ import GroupWorkIcon from '@material-ui/icons/GroupWork';
30
+
31
+ const useStyles = makeStyles((theme) => ({
32
+ root: {
33
+ height: "100%"
34
+ },
35
+ statBox: {
36
+ display: "flex",
37
+ flexDirection: "column",
38
+ alignItems: "center",
39
+ padding: theme.spacing(1.5),
40
+ borderRadius: theme.shape.borderRadius,
41
+ background: theme.palette.type === "dark" ? "rgba(255, 255, 255, 0.05)" : "rgba(0, 0, 0, 0.02)"
42
+ },
43
+ statIcon: {
44
+ marginBottom: theme.spacing(0.5),
45
+ color: theme.palette.primary.main,
46
+ opacity: 0.8
47
+ },
48
+ statValue: {
49
+ fontWeight: "bold",
50
+ fontSize: "1.3rem",
51
+ color: theme.palette.primary.main,
52
+ lineHeight: 1.2
53
+ },
54
+ statLabel: {
55
+ color: theme.palette.text.secondary,
56
+ fontSize: "0.75rem",
57
+ marginTop: theme.spacing(0.25)
58
+ },
59
+ header: {
60
+ paddingBottom: 0
61
+ },
62
+ select: {
63
+ fontSize: "0.8rem"
64
+ }
65
+ }));
66
+ const CommunityActivityCard = () => {
67
+ const classes = useStyles();
68
+ const { t } = useTranslationRef(qetaTranslationRef);
69
+ const [period, setPeriod] = useState("7d");
70
+ const { value: stats, loading } = useQetaApi(
71
+ (api) => api.getCommunityActivity(period),
72
+ [period]
73
+ );
74
+ const renderContent = () => {
75
+ if (loading) {
76
+ return /* @__PURE__ */ jsx(Grid, { container: true, spacing: 2, children: Array.from(new Array(6)).map((_, i) => /* @__PURE__ */ jsx(Grid, { item: true, xs: 6, md: 4, children: /* @__PURE__ */ jsxs(Box, { className: classes.statBox, children: [
77
+ /* @__PURE__ */ jsx(
78
+ Skeleton,
79
+ {
80
+ variant: "circle",
81
+ width: 24,
82
+ height: 24,
83
+ className: classes.statIcon
84
+ }
85
+ ),
86
+ /* @__PURE__ */ jsx(Skeleton, { variant: "text", width: "60%", height: 32 }),
87
+ /* @__PURE__ */ jsx(Skeleton, { variant: "text", width: "40%" })
88
+ ] }) }, i)) });
89
+ }
90
+ if (!stats) {
91
+ return null;
92
+ }
93
+ const statItems = [
94
+ {
95
+ icon: PostAddIcon,
96
+ value: stats.posts,
97
+ label: t("communityActivity.newPosts")
98
+ },
99
+ {
100
+ icon: QuestionAnswerIcon,
101
+ value: stats.answers,
102
+ label: t("communityActivity.newAnswers")
103
+ },
104
+ {
105
+ icon: Visibility,
106
+ value: stats.views,
107
+ label: t("communityActivity.views")
108
+ },
109
+ {
110
+ icon: CommentIcon,
111
+ value: stats.comments,
112
+ label: t("communityActivity.newComments")
113
+ },
114
+ {
115
+ icon: ThumbUp,
116
+ value: stats.votes,
117
+ label: t("communityActivity.newVotes")
118
+ },
119
+ {
120
+ icon: PeopleIcon,
121
+ value: stats.activeUsers,
122
+ label: t("communityActivity.activeUsers")
123
+ }
124
+ ];
125
+ return /* @__PURE__ */ jsx(Grid, { container: true, spacing: 2, children: statItems.map((item, index) => /* @__PURE__ */ jsx(Grid, { item: true, xs: 6, md: 4, children: /* @__PURE__ */ jsxs(Box, { className: classes.statBox, children: [
126
+ /* @__PURE__ */ jsx(item.icon, { className: classes.statIcon }),
127
+ /* @__PURE__ */ jsx(Typography, { className: classes.statValue, children: item.value }),
128
+ /* @__PURE__ */ jsx(Typography, { className: classes.statLabel, children: item.label })
129
+ ] }) }, index)) });
130
+ };
131
+ return /* @__PURE__ */ jsxs(Card, { className: classes.root, variant: "outlined", children: [
132
+ /* @__PURE__ */ jsx(
133
+ CardHeader,
134
+ {
135
+ title: t("communityActivity.title"),
136
+ className: classes.header,
137
+ avatar: /* @__PURE__ */ jsx(GroupWorkIcon, {}),
138
+ titleTypographyProps: { variant: "h5" },
139
+ action: /* @__PURE__ */ jsxs(
140
+ Select,
141
+ {
142
+ value: period,
143
+ onChange: (e) => setPeriod(e.target.value),
144
+ className: classes.select,
145
+ disableUnderline: true,
146
+ children: [
147
+ /* @__PURE__ */ jsx(MenuItem, { value: "1d", children: t("communityActivity.period.1d") }),
148
+ /* @__PURE__ */ jsx(MenuItem, { value: "3d", children: t("communityActivity.period.3d") }),
149
+ /* @__PURE__ */ jsx(MenuItem, { value: "7d", children: t("communityActivity.period.7d") }),
150
+ /* @__PURE__ */ jsx(MenuItem, { value: "14d", children: t("communityActivity.period.14d") }),
151
+ /* @__PURE__ */ jsx(MenuItem, { value: "30d", children: t("communityActivity.period.30d") }),
152
+ /* @__PURE__ */ jsx(MenuItem, { value: "90d", children: t("communityActivity.period.90d") }),
153
+ /* @__PURE__ */ jsx(MenuItem, { value: "1y", children: t("communityActivity.period.1y") })
154
+ ]
155
+ }
156
+ )
157
+ }
158
+ ),
159
+ /* @__PURE__ */ jsx(CardContent, { children: renderContent() })
160
+ ] });
161
+ };
162
+
163
+ export { CommunityActivityCard };
164
+ //# sourceMappingURL=CommunityActivityCard.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommunityActivityCard.esm.js","sources":["../../../src/components/HomePageCards/CommunityActivityCard.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { qetaTranslationRef } from '../../translation';\nimport { useQetaApi } from '../../hooks';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport {\n Box,\n Card,\n CardContent,\n CardHeader,\n Grid,\n makeStyles,\n MenuItem,\n Select,\n Typography,\n} from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport PostAddIcon from '@material-ui/icons/PostAdd';\nimport QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport CommentIcon from '@material-ui/icons/Comment';\nimport ThumbUpIcon from '@material-ui/icons/ThumbUp';\nimport PeopleIcon from '@material-ui/icons/People';\nimport GroupWorkIcon from '@material-ui/icons/GroupWork';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n height: '100%',\n },\n statBox: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n padding: theme.spacing(1.5),\n borderRadius: theme.shape.borderRadius,\n background:\n theme.palette.type === 'dark'\n ? 'rgba(255, 255, 255, 0.05)'\n : 'rgba(0, 0, 0, 0.02)',\n },\n statIcon: {\n marginBottom: theme.spacing(0.5),\n color: theme.palette.primary.main,\n opacity: 0.8,\n },\n statValue: {\n fontWeight: 'bold',\n fontSize: '1.3rem',\n color: theme.palette.primary.main,\n lineHeight: 1.2,\n },\n statLabel: {\n color: theme.palette.text.secondary,\n fontSize: '0.75rem',\n marginTop: theme.spacing(0.25),\n },\n header: {\n paddingBottom: 0,\n },\n select: {\n fontSize: '0.8rem',\n },\n}));\n\nexport const CommunityActivityCard = () => {\n const classes = useStyles();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [period, setPeriod] = useState('7d');\n\n const { value: stats, loading } = useQetaApi(\n api => api.getCommunityActivity(period),\n [period],\n );\n\n const renderContent = () => {\n if (loading) {\n return (\n <Grid container spacing={2}>\n {Array.from(new Array(6)).map((_, i) => (\n <Grid item xs={6} md={4} key={i}>\n <Box className={classes.statBox}>\n <Skeleton\n variant=\"circle\"\n width={24}\n height={24}\n className={classes.statIcon}\n />\n <Skeleton variant=\"text\" width=\"60%\" height={32} />\n <Skeleton variant=\"text\" width=\"40%\" />\n </Box>\n </Grid>\n ))}\n </Grid>\n );\n }\n\n if (!stats) {\n return null;\n }\n\n const statItems = [\n {\n icon: PostAddIcon,\n value: stats.posts,\n label: t('communityActivity.newPosts'),\n },\n {\n icon: QuestionAnswerIcon,\n value: stats.answers,\n label: t('communityActivity.newAnswers'),\n },\n {\n icon: VisibilityIcon,\n value: stats.views,\n label: t('communityActivity.views'),\n },\n {\n icon: CommentIcon,\n value: stats.comments,\n label: t('communityActivity.newComments'),\n },\n {\n icon: ThumbUpIcon,\n value: stats.votes,\n label: t('communityActivity.newVotes'),\n },\n {\n icon: PeopleIcon,\n value: stats.activeUsers,\n label: t('communityActivity.activeUsers'),\n },\n ];\n\n return (\n <Grid container spacing={2}>\n {statItems.map((item, index) => (\n <Grid item xs={6} md={4} key={index}>\n <Box className={classes.statBox}>\n <item.icon className={classes.statIcon} />\n <Typography className={classes.statValue}>\n {item.value}\n </Typography>\n <Typography className={classes.statLabel}>\n {item.label}\n </Typography>\n </Box>\n </Grid>\n ))}\n </Grid>\n );\n };\n\n return (\n <Card className={classes.root} variant=\"outlined\">\n <CardHeader\n title={t('communityActivity.title')}\n className={classes.header}\n avatar={<GroupWorkIcon />}\n titleTypographyProps={{ variant: 'h5' }}\n action={\n <Select\n value={period}\n onChange={e => setPeriod(e.target.value as string)}\n className={classes.select}\n disableUnderline\n >\n <MenuItem value=\"1d\">{t('communityActivity.period.1d')}</MenuItem>\n <MenuItem value=\"3d\">{t('communityActivity.period.3d')}</MenuItem>\n <MenuItem value=\"7d\">{t('communityActivity.period.7d')}</MenuItem>\n <MenuItem value=\"14d\">{t('communityActivity.period.14d')}</MenuItem>\n <MenuItem value=\"30d\">{t('communityActivity.period.30d')}</MenuItem>\n <MenuItem value=\"90d\">{t('communityActivity.period.90d')}</MenuItem>\n <MenuItem value=\"1y\">{t('communityActivity.period.1y')}</MenuItem>\n </Select>\n }\n />\n <CardContent>{renderContent()}</CardContent>\n </Card>\n );\n};\n"],"names":["VisibilityIcon","ThumbUpIcon"],"mappings":"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"}