@drodil/backstage-plugin-qeta 3.56.0 → 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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QetaPage.esm.js","sources":["../../../src/components/QetaPage/QetaPage.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { Route, Routes, useLocation } from 'react-router-dom';\nimport { AskPage } from '../AskPage';\nimport { QuestionPage } from '../QuestionPage/QuestionPage';\nimport { TagPage } from '../TagPage/TagPage';\nimport { UserPage } from '../UserPage/UserPage';\nimport { FavoritePage } from '../FavoritePage/FavoritePage';\nimport { StatisticsPage } from '../Statistics';\nimport {\n articleRouteRef,\n articlesRouteRef,\n askRouteRef,\n collectionCreateRouteRef,\n collectionEditRouteRef,\n collectionRouteRef,\n collectionsRouteRef,\n createLinkRouteRef,\n editArticleRouteRef,\n editLinkRouteRef,\n editQuestionRouteRef,\n entitiesRouteRef,\n entityRouteRef,\n favoriteQuestionsRouteRef,\n LeftMenu,\n LeftMenuButton,\n linkRouteRef,\n linksRouteRef,\n moderatorRouteRef,\n QetaProvider,\n questionRouteRef,\n questionsRouteRef,\n reviewRouteRef,\n settingsRouteRef,\n statisticsRouteRef,\n tagRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n writeRouteRef,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { QuestionsPage } from '../QuestionsPage/QuestionsPage';\nimport { HomePage } from '../HomePage/HomePage';\nimport { ArticlesPage } from '../ArticlesPage/ArticlesPage';\nimport { WritePage } from '../WritePage/WritePage';\nimport { ArticlePage } from '../ArticlePage/ArticlePage';\nimport { LinksPage } from '../LinksPage/LinksPage.tsx';\nimport { LinkPage } from '../LinkPage/LinkPage.tsx';\nimport { CreateLinkPage } from '../CreateLinkPage/CreateLinkPage.tsx';\nimport { CollectionsPage } from '../CollectionsPage/CollectionsPage';\nimport { CollectionPage } from '../CollectionPage/CollectionPage';\nimport { CollectionCreatePage } from '../CollectionCreatePage/CollectionCreatePage';\nimport { EntityPage } from '../EntityPage/EntityPage';\nimport { UsersPage } from '../UsersPage/UsersPage';\nimport { ModeratorPage } from '../ModeratorPage/ModeratorPage';\nimport { ReviewPage } from '../ReviewPage/ReviewPage';\nimport { SettingsPage } from '../SettingsPage/SettingsPage';\nimport { Box, Container, Grid, makeStyles } from '@material-ui/core';\nimport { useSidebarSettings } from '../../hooks/useSidebarSettings';\nimport { RightContent } from '../RightContent/RightContent';\nimport type { PluggableList } from 'unified';\n\ntype Props = {\n title?: string;\n subtitle?: string;\n headerElements?: ReactNode[];\n themeId?: string;\n headerTooltip?: string;\n headerType?: string;\n headerTypeLink?: string;\n introElement?: ReactNode;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n};\n\ntype StyleProps = {\n leftCompact: boolean;\n rightCompact: boolean;\n};\n\nconst useStyles = makeStyles(theme => ({\n sidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100dvh - 20px)',\n overflowX: 'hidden',\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n minWidth: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginBottom: theme.spacing(1),\n position: 'static',\n maxHeight: 'none',\n },\n '-ms-overflow-style': 'none',\n 'scrollbar-width': 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n rightSidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100dvh - 20px)',\n overflowX: 'hidden',\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.rightCompact ? 72 : 240),\n minWidth: (props: StyleProps) => (props.rightCompact ? 72 : 240),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginTop: theme.spacing(1),\n position: 'static',\n maxHeight: 'none',\n },\n '-ms-overflow-style': 'none',\n 'scrollbar-width': 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n mainColumn: {\n paddingRight: 0,\n minWidth: 0,\n transition: 'all 0.2s ease-in-out',\n [theme.breakpoints.down('md')]: {\n paddingLeft: 0,\n },\n },\n}));\n\nexport const QetaPage = (props?: Props) => {\n const {\n title = 'Q&A',\n subtitle,\n headerElements,\n themeId = 'tool',\n headerTooltip,\n headerType,\n headerTypeLink,\n introElement,\n remarkPlugins,\n rehypePlugins,\n } = props ?? {};\n const { leftCompact, rightCompact, toggleLeft, toggleRight } =\n useSidebarSettings();\n const location = useLocation();\n\n // Hide right sidebar on review and moderator pages\n const hideRightSidebar =\n location.pathname.includes('/review') ||\n location.pathname.includes('/moderate');\n\n const classes = useStyles({\n leftCompact,\n rightCompact,\n });\n\n return (\n <QetaProvider remarkPlugins={remarkPlugins} rehypePlugins={rehypePlugins}>\n <Page themeId={themeId}>\n <Header\n title={title}\n subtitle={subtitle}\n type={headerType}\n typeLink={headerTypeLink}\n tooltip={headerTooltip}\n >\n {headerElements?.map((element, index) => (\n <Fragment key={index}>{element}</Fragment>\n ))}\n </Header>\n <Content className=\"qetaHomePage\">\n {introElement}\n <Container maxWidth=\"xl\">\n <Grid\n container\n spacing={3}\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n <Grid item className={classes.sidebarColumn}>\n <Box display={{ xs: 'block', lg: 'none' }}>\n <LeftMenuButton />\n </Box>\n <Box display={{ xs: 'none', lg: 'block' }}>\n <LeftMenu compact={leftCompact} onToggle={toggleLeft} />\n </Box>\n </Grid>\n <Grid item xs className={classes.mainColumn}>\n <Routes>\n <Route path=\"/\" element={<HomePage />} />\n <Route\n path={questionsRouteRef.path}\n element={<QuestionsPage />}\n />\n <Route path={askRouteRef.path} element={<AskPage />} />\n <Route\n path={articlesRouteRef.path}\n element={<ArticlesPage />}\n />\n <Route path={writeRouteRef.path} element={<WritePage />} />\n <Route path={linksRouteRef.path} element={<LinksPage />} />\n <Route\n path={createLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={favoriteQuestionsRouteRef.path}\n element={<FavoritePage />}\n />\n <Route\n path={editQuestionRouteRef.path}\n element={<AskPage />}\n />\n <Route\n path={editArticleRouteRef.path}\n element={<WritePage />}\n />\n <Route\n path={editLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={questionRouteRef.path}\n element={<QuestionPage />}\n />\n <Route path={linkRouteRef.path} element={<LinkPage />} />\n <Route\n path={articleRouteRef.path}\n element={<ArticlePage />}\n />\n <Route path={tagsRouteRef.path} element={<TagPage />} />\n <Route path={tagRouteRef.path} element={<TagPage />} />\n <Route path={usersRouteRef.path} element={<UsersPage />} />\n <Route path={userRouteRef.path} element={<UserPage />} />\n <Route\n path={statisticsRouteRef.path}\n element={<StatisticsPage />}\n />\n <Route\n path={collectionsRouteRef.path}\n element={<CollectionsPage />}\n />\n <Route\n path={collectionCreateRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionEditRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionRouteRef.path}\n element={<CollectionPage />}\n />\n <Route\n path={entitiesRouteRef.path}\n element={<EntityPage />}\n />\n <Route path={entityRouteRef.path} element={<EntityPage />} />\n <Route\n path={moderatorRouteRef.path}\n element={<ModeratorPage />}\n />\n <Route path={reviewRouteRef.path} element={<ReviewPage />} />\n <Route\n path={settingsRouteRef.path}\n element={<SettingsPage />}\n />\n </Routes>\n </Grid>\n {!hideRightSidebar && (\n <Grid item className={classes.rightSidebarColumn}>\n <RightContent compact={rightCompact} onToggle={toggleRight} />\n </Grid>\n )}\n </Grid>\n </Container>\n </Content>\n </Page>\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QetaPage.esm.js","sources":["../../../src/components/QetaPage/QetaPage.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { Route, Routes, useLocation } from 'react-router-dom';\nimport { AskPage } from '../AskPage';\nimport { QuestionPage } from '../QuestionPage/QuestionPage';\nimport { TagPage } from '../TagPage/TagPage';\nimport { UserPage } from '../UserPage/UserPage';\nimport { FavoritePage } from '../FavoritePage/FavoritePage';\nimport { StatisticsPage } from '../Statistics';\nimport {\n articleRouteRef,\n articlesRouteRef,\n askRouteRef,\n collectionCreateRouteRef,\n collectionEditRouteRef,\n collectionRouteRef,\n collectionsRouteRef,\n createLinkRouteRef,\n editArticleRouteRef,\n editLinkRouteRef,\n editQuestionRouteRef,\n entitiesRouteRef,\n entityRouteRef,\n favoriteQuestionsRouteRef,\n LeftMenu,\n LeftMenuButton,\n linkRouteRef,\n linksRouteRef,\n moderatorRouteRef,\n QetaProvider,\n questionRouteRef,\n questionsRouteRef,\n reviewRouteRef,\n settingsRouteRef,\n statisticsRouteRef,\n tagRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n writeRouteRef,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { QuestionsPage } from '../QuestionsPage/QuestionsPage';\nimport { HomePage } from '../HomePage/HomePage';\nimport { ArticlesPage } from '../ArticlesPage/ArticlesPage';\nimport { WritePage } from '../WritePage/WritePage';\nimport { ArticlePage } from '../ArticlePage/ArticlePage';\nimport { LinksPage } from '../LinksPage/LinksPage';\nimport { LinkPage } from '../LinkPage/LinkPage';\nimport { CreateLinkPage } from '../CreateLinkPage/CreateLinkPage';\nimport { CollectionsPage } from '../CollectionsPage/CollectionsPage';\nimport { CollectionPage } from '../CollectionPage/CollectionPage';\nimport { CollectionCreatePage } from '../CollectionCreatePage/CollectionCreatePage';\nimport { EntityPage } from '../EntityPage/EntityPage';\nimport { UsersPage } from '../UsersPage/UsersPage';\nimport { ModeratorPage } from '../ModeratorPage/ModeratorPage';\nimport { ReviewPage } from '../ReviewPage/ReviewPage';\nimport { SettingsPage } from '../SettingsPage/SettingsPage';\nimport { Box, Container, Grid, makeStyles } from '@material-ui/core';\nimport { useSidebarSettings } from '../../hooks/useSidebarSettings';\nimport { RightContent } from '../RightContent/RightContent';\nimport type { PluggableList } from 'unified';\n\ntype Props = {\n title?: string;\n subtitle?: string;\n headerElements?: ReactNode[];\n themeId?: string;\n headerTooltip?: string;\n headerType?: string;\n headerTypeLink?: string;\n introElement?: ReactNode;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n};\n\ntype StyleProps = {\n leftCompact: boolean;\n rightCompact: boolean;\n};\n\nconst useStyles = makeStyles(theme => ({\n sidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100dvh - 20px)',\n overflowX: 'hidden',\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n minWidth: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginBottom: theme.spacing(1),\n position: 'static',\n maxHeight: 'none',\n },\n '-ms-overflow-style': 'none',\n 'scrollbar-width': 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n rightSidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100dvh - 20px)',\n overflowX: 'hidden',\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.rightCompact ? 72 : 240),\n minWidth: (props: StyleProps) => (props.rightCompact ? 72 : 240),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginTop: theme.spacing(1),\n position: 'static',\n maxHeight: 'none',\n },\n '-ms-overflow-style': 'none',\n 'scrollbar-width': 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n mainColumn: {\n paddingRight: 0,\n minWidth: 0,\n transition: 'all 0.2s ease-in-out',\n [theme.breakpoints.down('md')]: {\n paddingLeft: 0,\n },\n },\n}));\n\nexport const QetaPage = (props?: Props) => {\n const {\n title = 'Q&A',\n subtitle,\n headerElements,\n themeId = 'tool',\n headerTooltip,\n headerType,\n headerTypeLink,\n introElement,\n remarkPlugins,\n rehypePlugins,\n } = props ?? {};\n const { leftCompact, rightCompact, toggleLeft, toggleRight } =\n useSidebarSettings();\n const location = useLocation();\n\n // Hide right sidebar on review and moderator pages\n const hideRightSidebar =\n location.pathname.includes('/review') ||\n location.pathname.includes('/moderate');\n\n const classes = useStyles({\n leftCompact,\n rightCompact,\n });\n\n return (\n <QetaProvider remarkPlugins={remarkPlugins} rehypePlugins={rehypePlugins}>\n <Page themeId={themeId}>\n <Header\n title={title}\n subtitle={subtitle}\n type={headerType}\n typeLink={headerTypeLink}\n tooltip={headerTooltip}\n >\n {headerElements?.map((element, index) => (\n <Fragment key={index}>{element}</Fragment>\n ))}\n </Header>\n <Content className=\"qetaHomePage\">\n {introElement}\n <Container maxWidth=\"xl\">\n <Grid\n container\n spacing={3}\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n <Grid item className={classes.sidebarColumn}>\n <Box display={{ xs: 'block', lg: 'none' }}>\n <LeftMenuButton />\n </Box>\n <Box display={{ xs: 'none', lg: 'block' }}>\n <LeftMenu compact={leftCompact} onToggle={toggleLeft} />\n </Box>\n </Grid>\n <Grid item xs className={classes.mainColumn}>\n <Routes>\n <Route path=\"/\" element={<HomePage />} />\n <Route\n path={questionsRouteRef.path}\n element={<QuestionsPage />}\n />\n <Route path={askRouteRef.path} element={<AskPage />} />\n <Route\n path={articlesRouteRef.path}\n element={<ArticlesPage />}\n />\n <Route path={writeRouteRef.path} element={<WritePage />} />\n <Route path={linksRouteRef.path} element={<LinksPage />} />\n <Route\n path={createLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={favoriteQuestionsRouteRef.path}\n element={<FavoritePage />}\n />\n <Route\n path={editQuestionRouteRef.path}\n element={<AskPage />}\n />\n <Route\n path={editArticleRouteRef.path}\n element={<WritePage />}\n />\n <Route\n path={editLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={questionRouteRef.path}\n element={<QuestionPage />}\n />\n <Route path={linkRouteRef.path} element={<LinkPage />} />\n <Route\n path={articleRouteRef.path}\n element={<ArticlePage />}\n />\n <Route path={tagsRouteRef.path} element={<TagPage />} />\n <Route path={tagRouteRef.path} element={<TagPage />} />\n <Route path={usersRouteRef.path} element={<UsersPage />} />\n <Route path={userRouteRef.path} element={<UserPage />} />\n <Route\n path={statisticsRouteRef.path}\n element={<StatisticsPage />}\n />\n <Route\n path={collectionsRouteRef.path}\n element={<CollectionsPage />}\n />\n <Route\n path={collectionCreateRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionEditRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionRouteRef.path}\n element={<CollectionPage />}\n />\n <Route\n path={entitiesRouteRef.path}\n element={<EntityPage />}\n />\n <Route path={entityRouteRef.path} element={<EntityPage />} />\n <Route\n path={moderatorRouteRef.path}\n element={<ModeratorPage />}\n />\n <Route path={reviewRouteRef.path} element={<ReviewPage />} />\n <Route\n path={settingsRouteRef.path}\n element={<SettingsPage />}\n />\n </Routes>\n </Grid>\n {!hideRightSidebar && (\n <Grid item className={classes.rightSidebarColumn}>\n <RightContent compact={rightCompact} onToggle={toggleRight} />\n </Grid>\n )}\n </Grid>\n </Container>\n </Content>\n </Page>\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
3
|
import { useParams } from 'react-router-dom';
|
|
4
|
-
import { qetaTranslationRef, qetaApiRef, ContentHeader, TagFollowButton, AskQuestionButton, WriteArticleButton, CreateLinkButton, ContentHeaderCard, PostsContainer, TagsContainer } from '@drodil/backstage-plugin-qeta-react';
|
|
4
|
+
import { qetaTranslationRef, useIsModerator, qetaApiRef, ContentHeader, TagFollowButton, AskQuestionButton, WriteArticleButton, CreateLinkButton, ContentHeaderCard, PostsContainer, TagsContainer, EditTagModal, DeleteModal } from '@drodil/backstage-plugin-qeta-react';
|
|
5
5
|
import LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';
|
|
6
6
|
import QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';
|
|
7
7
|
import PeopleIcon from '@material-ui/icons/People';
|
|
8
|
+
import EditIcon from '@material-ui/icons/Edit';
|
|
9
|
+
import DeleteIcon from '@material-ui/icons/Delete';
|
|
8
10
|
import { useApi, alertApiRef } from '@backstage/core-plugin-api';
|
|
9
11
|
import { EntityRefLink } from '@backstage/plugin-catalog-react';
|
|
10
12
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
11
|
-
import { Typography } from '@material-ui/core';
|
|
13
|
+
import { Typography, Button } from '@material-ui/core';
|
|
12
14
|
|
|
13
15
|
const TagPage = () => {
|
|
14
16
|
const { tag } = useParams();
|
|
15
17
|
const { t } = useTranslationRef(qetaTranslationRef);
|
|
16
18
|
const [resp, setResp] = useState();
|
|
19
|
+
const { isModerator } = useIsModerator();
|
|
20
|
+
const [editModalOpen, setEditModalOpen] = useState(false);
|
|
21
|
+
const [deleteModalOpen, setDeleteModalOpen] = useState(false);
|
|
17
22
|
const qetaApi = useApi(qetaApiRef);
|
|
18
23
|
const alertApi = useApi(alertApiRef);
|
|
19
|
-
|
|
24
|
+
const fetchTag = () => {
|
|
20
25
|
if (!tag) {
|
|
21
26
|
setResp(void 0);
|
|
22
27
|
return;
|
|
@@ -32,7 +37,17 @@ const TagPage = () => {
|
|
|
32
37
|
display: "transient"
|
|
33
38
|
});
|
|
34
39
|
});
|
|
40
|
+
};
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
fetchTag();
|
|
35
43
|
}, [qetaApi, tag, alertApi]);
|
|
44
|
+
const handleEditModalClose = () => {
|
|
45
|
+
setEditModalOpen(false);
|
|
46
|
+
fetchTag();
|
|
47
|
+
};
|
|
48
|
+
const handleDeleteModalClose = () => {
|
|
49
|
+
setDeleteModalOpen(false);
|
|
50
|
+
};
|
|
36
51
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
37
52
|
tag ? /* @__PURE__ */ jsxs(
|
|
38
53
|
ContentHeader,
|
|
@@ -60,7 +75,7 @@ const TagPage = () => {
|
|
|
60
75
|
]
|
|
61
76
|
}
|
|
62
77
|
),
|
|
63
|
-
resp && /* @__PURE__ */
|
|
78
|
+
resp && /* @__PURE__ */ jsxs(
|
|
64
79
|
ContentHeaderCard,
|
|
65
80
|
{
|
|
66
81
|
description: resp.description,
|
|
@@ -80,14 +95,40 @@ const TagPage = () => {
|
|
|
80
95
|
icon: /* @__PURE__ */ jsx(PeopleIcon, { fontSize: "small" })
|
|
81
96
|
}
|
|
82
97
|
],
|
|
83
|
-
children:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
/* @__PURE__ */
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
98
|
+
children: [
|
|
99
|
+
resp.experts && resp.experts.length > 0 && /* @__PURE__ */ jsxs(Typography, { variant: "caption", children: [
|
|
100
|
+
t("common.experts"),
|
|
101
|
+
": ",
|
|
102
|
+
resp.experts.map((e, i) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
103
|
+
/* @__PURE__ */ jsx(EntityRefLink, { entityRef: e }, e),
|
|
104
|
+
i === resp.experts.length - 1 ? "" : ","
|
|
105
|
+
] }))
|
|
106
|
+
] }),
|
|
107
|
+
(resp.canEdit || resp.canDelete) && /* @__PURE__ */ jsxs("div", { style: { marginTop: "1em" }, children: [
|
|
108
|
+
resp.canEdit && /* @__PURE__ */ jsx(
|
|
109
|
+
Button,
|
|
110
|
+
{
|
|
111
|
+
variant: "outlined",
|
|
112
|
+
size: "small",
|
|
113
|
+
startIcon: /* @__PURE__ */ jsx(EditIcon, {}),
|
|
114
|
+
onClick: () => setEditModalOpen(true),
|
|
115
|
+
style: { marginRight: "0.5em" },
|
|
116
|
+
children: t("tagButton.edit")
|
|
117
|
+
}
|
|
118
|
+
),
|
|
119
|
+
resp.canDelete && /* @__PURE__ */ jsx(
|
|
120
|
+
Button,
|
|
121
|
+
{
|
|
122
|
+
variant: "outlined",
|
|
123
|
+
size: "small",
|
|
124
|
+
color: "secondary",
|
|
125
|
+
startIcon: /* @__PURE__ */ jsx(DeleteIcon, {}),
|
|
126
|
+
onClick: () => setDeleteModalOpen(true),
|
|
127
|
+
children: t("tagButton.delete")
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
] })
|
|
131
|
+
]
|
|
91
132
|
}
|
|
92
133
|
),
|
|
93
134
|
tag && /* @__PURE__ */ jsx(
|
|
@@ -100,7 +141,26 @@ const TagPage = () => {
|
|
|
100
141
|
prefix: "tag-posts"
|
|
101
142
|
}
|
|
102
143
|
),
|
|
103
|
-
!tag && /* @__PURE__ */ jsx(TagsContainer, {})
|
|
144
|
+
!tag && /* @__PURE__ */ jsx(TagsContainer, {}),
|
|
145
|
+
resp && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
146
|
+
/* @__PURE__ */ jsx(
|
|
147
|
+
EditTagModal,
|
|
148
|
+
{
|
|
149
|
+
tag: resp,
|
|
150
|
+
open: editModalOpen,
|
|
151
|
+
onClose: handleEditModalClose,
|
|
152
|
+
isModerator
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ jsx(
|
|
156
|
+
DeleteModal,
|
|
157
|
+
{
|
|
158
|
+
open: deleteModalOpen,
|
|
159
|
+
onClose: handleDeleteModalClose,
|
|
160
|
+
entity: resp
|
|
161
|
+
}
|
|
162
|
+
)
|
|
163
|
+
] })
|
|
104
164
|
] });
|
|
105
165
|
};
|
|
106
166
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagPage.esm.js","sources":["../../../src/components/TagPage/TagPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport {\n AskQuestionButton,\n ContentHeader,\n CreateLinkButton,\n PostsContainer,\n qetaApiRef,\n qetaTranslationRef,\n TagFollowButton,\n TagsContainer,\n WriteArticleButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';\nimport QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';\nimport PeopleIcon from '@material-ui/icons/People';\nimport { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport { TagResponse } from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { ContentHeaderCard } from '@drodil/backstage-plugin-qeta-react';\nimport { Typography } from '@material-ui/core';\n\nexport const TagPage = () => {\n const { tag } = useParams();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [resp, setResp] = useState<undefined | TagResponse>();\n\n const qetaApi = useApi(qetaApiRef);\n const alertApi = useApi(alertApiRef);\n\n useEffect(() => {\n if (!tag) {\n setResp(undefined);\n return;\n }\n\n qetaApi\n .getTag(tag)\n .then(res => {\n if (res) {\n setResp(res);\n }\n })\n .catch(e => {\n alertApi.post({\n message: e.message,\n severity: 'error',\n display: 'transient',\n });\n });\n }, [qetaApi, tag, alertApi]);\n\n return (\n <>\n {tag ? (\n <ContentHeader\n title={\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {tag}\n <TagFollowButton tag={tag} />\n </span>\n }\n titleIcon={<LocalOfferOutlined fontSize=\"large\" />}\n >\n <AskQuestionButton tags={[tag]} />\n <WriteArticleButton tags={[tag]} />\n <CreateLinkButton tags={[tag]} />\n </ContentHeader>\n ) : (\n <ContentHeader\n title={t('tagPage.defaultTitle', {})}\n titleIcon={<LocalOfferOutlined fontSize=\"large\" />}\n >\n <AskQuestionButton />\n <WriteArticleButton />\n <CreateLinkButton />\n </ContentHeader>\n )}\n {resp && (\n <ContentHeaderCard\n description={resp.description}\n imageIcon={<LocalOfferOutlined style={{ fontSize: 80 }} />}\n stats={[\n {\n label: t('common.postsLabel', {\n count: resp.postsCount,\n itemType: 'post',\n }),\n value: resp.postsCount,\n icon: <QuestionAnswerIcon fontSize=\"small\" />,\n },\n {\n label: t('common.followersLabel', { count: resp.followerCount }),\n value: resp.followerCount,\n icon: <PeopleIcon fontSize=\"small\" />,\n },\n ]}\n >\n {resp.experts && resp.experts.length > 0 && (\n <Typography variant=\"caption\">\n {t('common.experts')}\n {': '}\n {resp.experts.map((e, i) => (\n <>\n <EntityRefLink key={e} entityRef={e} />\n {i === resp.experts!.length - 1 ? '' : ','}\n </>\n ))}\n </Typography>\n )}\n </ContentHeaderCard>\n )}\n {tag && (\n <PostsContainer\n tags={[tag ?? '']}\n filterPanelProps={{ showTagFilter: false }}\n showTypeLabel\n defaultView=\"list\"\n prefix=\"tag-posts\"\n />\n )}\n {!tag && <TagsContainer />}\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TagPage.esm.js","sources":["../../../src/components/TagPage/TagPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport {\n AskQuestionButton,\n ContentHeader,\n CreateLinkButton,\n DeleteModal,\n EditTagModal,\n PostsContainer,\n qetaApiRef,\n qetaTranslationRef,\n TagFollowButton,\n TagsContainer,\n useIsModerator,\n WriteArticleButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport LocalOfferOutlined from '@material-ui/icons/LocalOfferOutlined';\nimport QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';\nimport PeopleIcon from '@material-ui/icons/People';\nimport EditIcon from '@material-ui/icons/Edit';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport { TagResponse } from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { ContentHeaderCard } from '@drodil/backstage-plugin-qeta-react';\nimport { Button, Typography } from '@material-ui/core';\n\nexport const TagPage = () => {\n const { tag } = useParams();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [resp, setResp] = useState<undefined | TagResponse>();\n const { isModerator } = useIsModerator();\n\n const [editModalOpen, setEditModalOpen] = useState(false);\n const [deleteModalOpen, setDeleteModalOpen] = useState(false);\n\n const qetaApi = useApi(qetaApiRef);\n const alertApi = useApi(alertApiRef);\n\n const fetchTag = () => {\n if (!tag) {\n setResp(undefined);\n return;\n }\n\n qetaApi\n .getTag(tag)\n .then(res => {\n if (res) {\n setResp(res);\n }\n })\n .catch(e => {\n alertApi.post({\n message: e.message,\n severity: 'error',\n display: 'transient',\n });\n });\n };\n\n useEffect(() => {\n fetchTag();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [qetaApi, tag, alertApi]);\n\n const handleEditModalClose = () => {\n setEditModalOpen(false);\n fetchTag();\n };\n\n const handleDeleteModalClose = () => {\n setDeleteModalOpen(false);\n };\n\n return (\n <>\n {tag ? (\n <ContentHeader\n title={\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {tag}\n <TagFollowButton tag={tag} />\n </span>\n }\n titleIcon={<LocalOfferOutlined fontSize=\"large\" />}\n >\n <AskQuestionButton tags={[tag]} />\n <WriteArticleButton tags={[tag]} />\n <CreateLinkButton tags={[tag]} />\n </ContentHeader>\n ) : (\n <ContentHeader\n title={t('tagPage.defaultTitle', {})}\n titleIcon={<LocalOfferOutlined fontSize=\"large\" />}\n >\n <AskQuestionButton />\n <WriteArticleButton />\n <CreateLinkButton />\n </ContentHeader>\n )}\n {resp && (\n <ContentHeaderCard\n description={resp.description}\n imageIcon={<LocalOfferOutlined style={{ fontSize: 80 }} />}\n stats={[\n {\n label: t('common.postsLabel', {\n count: resp.postsCount,\n itemType: 'post',\n }),\n value: resp.postsCount,\n icon: <QuestionAnswerIcon fontSize=\"small\" />,\n },\n {\n label: t('common.followersLabel', { count: resp.followerCount }),\n value: resp.followerCount,\n icon: <PeopleIcon fontSize=\"small\" />,\n },\n ]}\n >\n {resp.experts && resp.experts.length > 0 && (\n <Typography variant=\"caption\">\n {t('common.experts')}\n {': '}\n {resp.experts.map((e, i) => (\n <>\n <EntityRefLink key={e} entityRef={e} />\n {i === resp.experts!.length - 1 ? '' : ','}\n </>\n ))}\n </Typography>\n )}\n {(resp.canEdit || resp.canDelete) && (\n <div style={{ marginTop: '1em' }}>\n {resp.canEdit && (\n <Button\n variant=\"outlined\"\n size=\"small\"\n startIcon={<EditIcon />}\n onClick={() => setEditModalOpen(true)}\n style={{ marginRight: '0.5em' }}\n >\n {t('tagButton.edit')}\n </Button>\n )}\n {resp.canDelete && (\n <Button\n variant=\"outlined\"\n size=\"small\"\n color=\"secondary\"\n startIcon={<DeleteIcon />}\n onClick={() => setDeleteModalOpen(true)}\n >\n {t('tagButton.delete')}\n </Button>\n )}\n </div>\n )}\n </ContentHeaderCard>\n )}\n {tag && (\n <PostsContainer\n tags={[tag ?? '']}\n filterPanelProps={{ showTagFilter: false }}\n showTypeLabel\n defaultView=\"list\"\n prefix=\"tag-posts\"\n />\n )}\n {!tag && <TagsContainer />}\n {resp && (\n <>\n <EditTagModal\n tag={resp}\n open={editModalOpen}\n onClose={handleEditModalClose}\n isModerator={isModerator}\n />\n <DeleteModal\n open={deleteModalOpen}\n onClose={handleDeleteModalClose}\n entity={resp}\n />\n </>\n )}\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|
package/dist/package.json.esm.js
CHANGED
|
@@ -6,7 +6,7 @@ var keywords = [
|
|
|
6
6
|
"frontend",
|
|
7
7
|
"backstage.io"
|
|
8
8
|
];
|
|
9
|
-
var version = "3.
|
|
9
|
+
var version = "3.57.0";
|
|
10
10
|
var main = "src/index.ts";
|
|
11
11
|
var types = "src/index.ts";
|
|
12
12
|
var prepublishOnly = "yarn tsc && yarn build";
|
|
@@ -78,7 +78,7 @@ var dependencies = {
|
|
|
78
78
|
"@material-ui/icons": "^4.11.3",
|
|
79
79
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
80
80
|
dompurify: "^3.2.4",
|
|
81
|
-
lodash: "^4.17.
|
|
81
|
+
lodash: "^4.17.23",
|
|
82
82
|
luxon: "^3.5.0",
|
|
83
83
|
"react-use": "^17.4.0",
|
|
84
84
|
unified: "^11.0.5"
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"frontend",
|
|
8
8
|
"backstage.io"
|
|
9
9
|
],
|
|
10
|
-
"version": "3.
|
|
10
|
+
"version": "3.57.0",
|
|
11
11
|
"main": "./dist/index.esm.js",
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
13
13
|
"prepublishOnly": "yarn tsc && yarn build",
|
|
@@ -85,13 +85,13 @@
|
|
|
85
85
|
"@backstage/plugin-search-react": "^1.10.2",
|
|
86
86
|
"@backstage/plugin-signals-react": "^0.0.18",
|
|
87
87
|
"@backstage/plugin-techdocs-react": "^1.3.7",
|
|
88
|
-
"@drodil/backstage-plugin-qeta-common": "^3.
|
|
89
|
-
"@drodil/backstage-plugin-qeta-react": "^3.
|
|
88
|
+
"@drodil/backstage-plugin-qeta-common": "^3.57.0",
|
|
89
|
+
"@drodil/backstage-plugin-qeta-react": "^3.57.0",
|
|
90
90
|
"@material-ui/core": "^4.12.2",
|
|
91
91
|
"@material-ui/icons": "^4.11.3",
|
|
92
92
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
93
93
|
"dompurify": "^3.2.4",
|
|
94
|
-
"lodash": "^4.17.
|
|
94
|
+
"lodash": "^4.17.23",
|
|
95
95
|
"luxon": "^3.5.0",
|
|
96
96
|
"react-use": "^17.4.0",
|
|
97
97
|
"unified": "^11.0.5"
|