@drodil/backstage-plugin-qeta 3.48.2 → 3.49.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ArticlePage/ArticlePage.esm.js +14 -6
- package/dist/components/ArticlePage/ArticlePage.esm.js.map +1 -1
- package/dist/components/ArticlesPage/ArticlesPage.esm.js +29 -24
- package/dist/components/ArticlesPage/ArticlesPage.esm.js.map +1 -1
- package/dist/components/AskPage/AskPage.esm.js +18 -3
- package/dist/components/AskPage/AskPage.esm.js.map +1 -1
- package/dist/components/CollectionPage/CollectionPage.esm.js +79 -15
- package/dist/components/CollectionPage/CollectionPage.esm.js.map +1 -1
- package/dist/components/CollectionsPage/CollectionsPage.esm.js +11 -14
- package/dist/components/CollectionsPage/CollectionsPage.esm.js.map +1 -1
- package/dist/components/CreateLinkPage/CreateLinkPage.esm.js +2 -2
- package/dist/components/CreateLinkPage/CreateLinkPage.esm.js.map +1 -1
- package/dist/components/EntityPage/EntityPage.esm.js +110 -123
- package/dist/components/EntityPage/EntityPage.esm.js.map +1 -1
- package/dist/components/EntityPostsContent/EntityPostsContent.esm.js +2 -2
- package/dist/components/EntityPostsContent/EntityPostsContent.esm.js.map +1 -1
- package/dist/components/FavoritePage/FavoritePage.esm.js +34 -31
- package/dist/components/FavoritePage/FavoritePage.esm.js.map +1 -1
- package/dist/components/HomePage/HomePage.esm.js +34 -35
- package/dist/components/HomePage/HomePage.esm.js.map +1 -1
- package/dist/components/LinkPage/LinkPage.esm.js +22 -25
- package/dist/components/LinkPage/LinkPage.esm.js.map +1 -1
- package/dist/components/LinksPage/LinksPage.esm.js +24 -25
- package/dist/components/LinksPage/LinksPage.esm.js.map +1 -1
- package/dist/components/ModeratorPage/ModeratorPage.esm.js +11 -5
- package/dist/components/ModeratorPage/ModeratorPage.esm.js.map +1 -1
- package/dist/components/PostsTableCard/Content.esm.js +2 -2
- package/dist/components/PostsTableCard/Content.esm.js.map +1 -1
- package/dist/components/QetaPage/QetaPage.esm.js +192 -164
- package/dist/components/QetaPage/QetaPage.esm.js.map +1 -1
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js +2 -2
- package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js.map +1 -1
- package/dist/components/QuestionPage/QuestionPage.esm.js +27 -9
- package/dist/components/QuestionPage/QuestionPage.esm.js.map +1 -1
- package/dist/components/QuestionsPage/QuestionsPage.esm.js +13 -54
- package/dist/components/QuestionsPage/QuestionsPage.esm.js.map +1 -1
- package/dist/components/RightContent/ArticlesRightContent.esm.js +31 -0
- package/dist/components/RightContent/ArticlesRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/AskRightContent.esm.js +16 -0
- package/dist/components/RightContent/AskRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/CollectionsRightContent.esm.js +12 -0
- package/dist/components/RightContent/CollectionsRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/DefaultRightContent.esm.js +27 -0
- package/dist/components/RightContent/DefaultRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/EntitiesRightContent.esm.js +12 -0
- package/dist/components/RightContent/EntitiesRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/EntityRightContent.esm.js +47 -0
- package/dist/components/RightContent/EntityRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/FavoriteRightContent.esm.js +9 -0
- package/dist/components/RightContent/FavoriteRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/HomeRightContent.esm.js +15 -0
- package/dist/components/RightContent/HomeRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/LinksRightContent.esm.js +31 -0
- package/dist/components/RightContent/LinksRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/QuestionsRightContent.esm.js +57 -0
- package/dist/components/RightContent/QuestionsRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/RightContent.esm.js +203 -0
- package/dist/components/RightContent/RightContent.esm.js.map +1 -0
- package/dist/components/RightContent/SimilarQuestions.esm.js +58 -0
- package/dist/components/RightContent/SimilarQuestions.esm.js.map +1 -0
- package/dist/components/RightContent/TagRightContent.esm.js +48 -0
- package/dist/components/RightContent/TagRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/TagsRightContent.esm.js +12 -0
- package/dist/components/RightContent/TagsRightContent.esm.js.map +1 -0
- package/dist/components/RightContent/UsersRightContent.esm.js +12 -0
- package/dist/components/RightContent/UsersRightContent.esm.js.map +1 -0
- package/dist/components/Statistics/GlobalStatsContent.esm.js +15 -9
- package/dist/components/Statistics/GlobalStatsContent.esm.js.map +1 -1
- package/dist/components/Statistics/StatisticsPage.esm.js +28 -11
- package/dist/components/Statistics/StatisticsPage.esm.js.map +1 -1
- package/dist/components/TagPage/TagPage.esm.js +75 -107
- package/dist/components/TagPage/TagPage.esm.js.map +1 -1
- package/dist/components/UserPage/UserPage.esm.js +34 -22
- package/dist/components/UserPage/UserPage.esm.js.map +1 -1
- package/dist/components/UserPage/UserStatsContent.esm.js +12 -9
- package/dist/components/UserPage/UserStatsContent.esm.js.map +1 -1
- package/dist/components/UsersPage/UsersPage.esm.js +12 -13
- package/dist/components/UsersPage/UsersPage.esm.js.map +1 -1
- package/dist/components/WritePage/WritePage.esm.js +2 -2
- package/dist/components/WritePage/WritePage.esm.js.map +1 -1
- package/dist/hooks/useSidebarSettings.esm.js +23 -0
- package/dist/hooks/useSidebarSettings.esm.js.map +1 -0
- package/dist/package.json.esm.js +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QetaPage.esm.js","sources":["../../../src/components/QetaPage/QetaPage.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { Route, Routes } 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 QetaExtensionProvider,\n questionRouteRef,\n questionsRouteRef,\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 { Box, Container, Grid } from '@material-ui/core';\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\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\n return (\n <QetaExtensionProvider\n remarkPlugins={remarkPlugins}\n rehypePlugins={rehypePlugins}\n >\n <Page themeId={themeId}>\n <Header\n title={title}\n subtitle={subtitle}\n type={headerType}\n typeLink={headerTypeLink}\n tooltip={headerTooltip}\n >\n {headerElements}\n </Header>\n <Content className=\"qetaHomePage\">\n {introElement}\n <Container maxWidth=\"xl\">\n <Grid container spacing={4} justifyContent=\"flex-start\">\n <Grid item md={1} lg={2} style={{ padding: 0 }}>\n <Box display={{ md: 'block', lg: 'none' }}>\n <LeftMenuButton />\n </Box>\n <Box display={{ xs: 'none', md: 'block' }}>\n <LeftMenu />\n </Box>\n </Grid>\n <Grid\n item\n md={12}\n lg={10}\n style={{ paddingLeft: '8px', paddingRight: '0' }}\n >\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 </Routes>\n </Grid>\n </Grid>\n </Container>\n </Content>\n </Page>\n </QetaExtensionProvider>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QetaPage.esm.js","sources":["../../../src/components/QetaPage/QetaPage.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { Route, Routes } 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 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 { 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 [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.leftCompact ? 72 : 220),\n minWidth: (props: StyleProps) => (props.leftCompact ? 72 : 220),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginBottom: theme.spacing(1),\n },\n },\n rightSidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.rightCompact ? 72 : 300),\n minWidth: (props: StyleProps) => (props.rightCompact ? 72 : 300),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginTop: theme.spacing(1),\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\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}\n </Header>\n <Content className=\"qetaHomePage\">\n {introElement}\n <Container maxWidth=\"xl\">\n <Grid container spacing={3} justifyContent=\"flex-start\">\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 </Routes>\n </Grid>\n <Grid item className={classes.rightSidebarColumn}>\n <RightContent compact={rightCompact} onToggle={toggleRight} />\n </Grid>\n </Grid>\n </Container>\n </Content>\n </Page>\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { makeStyles, ListItem, ListItemIcon, ListItemText, Divider } from '@mate
|
|
|
7
7
|
import { truncate, removeMarkdownFormatting, selectByPostType } from '@drodil/backstage-plugin-qeta-common';
|
|
8
8
|
import { EntityRefLink } from '@backstage/plugin-catalog-react';
|
|
9
9
|
import HelpOutlined from '@material-ui/icons/HelpOutlined';
|
|
10
|
-
import
|
|
10
|
+
import PlaylistPlayIcon from '@material-ui/icons/PlaylistPlay';
|
|
11
11
|
import DOMPurify from 'dompurify';
|
|
12
12
|
import { capitalize } from 'lodash';
|
|
13
13
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
@@ -115,7 +115,7 @@ const ResultIcon = (props) => {
|
|
|
115
115
|
/* @__PURE__ */ jsx(LinkIcon, {})
|
|
116
116
|
);
|
|
117
117
|
}
|
|
118
|
-
return /* @__PURE__ */ jsx(
|
|
118
|
+
return /* @__PURE__ */ jsx(PlaylistPlayIcon, {});
|
|
119
119
|
};
|
|
120
120
|
const QetaSearchResultListItem = (props) => {
|
|
121
121
|
const classes = useStyles();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QetaSearchResultListItem.esm.js","sources":["../../../src/components/QetaSearchResultListItem/QetaSearchResultListItem.tsx"],"sourcesContent":["import { DateTime } from 'luxon';\nimport { Link } from '@backstage/core-components';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport CollectionsBookmarkIcon from '@material-ui/icons/CollectionsBookmark';\nimport {\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n makeStyles,\n} from '@material-ui/core';\nimport {\n QetaCollectionDocument,\n QetaPostDocument,\n QetaSearchDocument,\n removeMarkdownFormatting,\n selectByPostType,\n truncate,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport HelpOutlined from '@material-ui/icons/HelpOutlined';\nimport PlaylistPlay from '@material-ui/icons/PlaylistPlay';\nimport DOMPurify from 'dompurify';\nimport { capitalize } from 'lodash';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\nimport LinkIcon from '@material-ui/icons/Link';\n\nconst useStyles = makeStyles({\n excerptText: {\n display: 'block',\n marginTop: '0.2rem',\n marginBottom: '0.4rem',\n },\n excerpt: {\n lineHeight: '1.55',\n },\n itemText: {\n wordBreak: 'break-all',\n },\n});\n\nexport type QetaSearchResultListItemProps = {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n hideIcon?: boolean;\n};\n\nconst isQetaSearchDocument = (\n document: IndexableDocument,\n): document is QetaSearchDocument => {\n return (\n 'docType' in document &&\n (document.docType === 'qeta_post' || document.docType === 'qeta_collection')\n );\n};\n\nconst isQetaPostDocument = (\n document: QetaSearchDocument,\n): document is QetaPostDocument => {\n return document.docType === 'qeta_post';\n};\n\nconst isQetaCollectionDocument = (\n document: QetaSearchDocument,\n): document is QetaCollectionDocument => {\n return document.docType === 'qeta_collection';\n};\n\nconst Excerpt = (props: {\n document: QetaSearchDocument;\n highlight?: ResultHighlight;\n}) => {\n const { document, highlight } = props;\n const classes = useStyles();\n const { t } = useTranslationRef(qetaTranslationRef);\n\n const text = DOMPurify.sanitize(\n truncate(\n removeMarkdownFormatting(highlight?.fields.text ?? document.text),\n 300,\n ),\n );\n if (isQetaPostDocument(document)) {\n return (\n <>\n <span className={classes.excerptText}>\n {capitalize(t(`common.${document.postType}`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={document.author} hideIcon />\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.score', { score: document.score.toString(10) })}\n </>\n )}\n {' · '}\n {document.postType === 'link' &&\n t('common.clicksCount', { count: document.views })}\n {document.postType !== 'link' &&\n t('common.viewsShort', { count: document.views })}\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.answersCount', { count: document.answerCount })}\n </>\n )}\n </span>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n } else if (isQetaCollectionDocument(document)) {\n return (\n <>\n <span className={classes.excerptText}>\n {capitalize(t(`common.collection`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={document.owner} hideIcon />\n {' · '}\n {t('common.posts', {\n count: document.postsCount,\n itemType: t('common.post'),\n })}\n </span>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n }\n\n return null;\n};\n\nconst ResultIcon = (props: { document: QetaSearchDocument }) => {\n const { document } = props;\n if (isQetaPostDocument(document)) {\n return selectByPostType(\n document.postType,\n <HelpOutlined />,\n <CollectionsBookmarkIcon />,\n <LinkIcon />,\n );\n }\n\n return <PlaylistPlay />;\n};\n\nexport const QetaSearchResultListItem = (\n props: QetaSearchResultListItemProps,\n) => {\n const classes = useStyles();\n const { result, highlight, hideIcon } = props;\n\n if (!result || !isQetaSearchDocument(result)) {\n return null;\n }\n\n const title = (\n <Link noTrack to={result.location}>\n {highlight?.fields.title ? (\n <HighlightedSearchResultText\n text={highlight.fields.title}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.title\n )}\n </Link>\n );\n\n return (\n <>\n <ListItem\n alignItems=\"center\"\n role=\"article\"\n aria-labelledby={`search-result-${result.title}`}\n >\n {hideIcon !== true && (\n <ListItemIcon>\n <ResultIcon document={result} aria-hidden=\"true\" />\n </ListItemIcon>\n )}\n <ListItemText\n primary={title}\n secondary={<Excerpt document={result} highlight={highlight} />}\n className={classes.itemText}\n primaryTypographyProps={{\n variant: 'h6',\n id: `search-result-${result.title}`,\n component: 'h3',\n }}\n />\n </ListItem>\n\n <Divider component=\"li\" aria-hidden=\"true\" />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QetaSearchResultListItem.esm.js","sources":["../../../src/components/QetaSearchResultListItem/QetaSearchResultListItem.tsx"],"sourcesContent":["import { DateTime } from 'luxon';\nimport { Link } from '@backstage/core-components';\nimport {\n IndexableDocument,\n ResultHighlight,\n} from '@backstage/plugin-search-common';\nimport { HighlightedSearchResultText } from '@backstage/plugin-search-react';\nimport CollectionsBookmarkIcon from '@material-ui/icons/CollectionsBookmark';\nimport {\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n makeStyles,\n} from '@material-ui/core';\nimport {\n QetaCollectionDocument,\n QetaPostDocument,\n QetaSearchDocument,\n removeMarkdownFormatting,\n selectByPostType,\n truncate,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport HelpOutlined from '@material-ui/icons/HelpOutlined';\nimport PlaylistPlay from '@material-ui/icons/PlaylistPlay';\nimport DOMPurify from 'dompurify';\nimport { capitalize } from 'lodash';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '@drodil/backstage-plugin-qeta-react';\nimport LinkIcon from '@material-ui/icons/Link';\n\nconst useStyles = makeStyles({\n excerptText: {\n display: 'block',\n marginTop: '0.2rem',\n marginBottom: '0.4rem',\n },\n excerpt: {\n lineHeight: '1.55',\n },\n itemText: {\n wordBreak: 'break-all',\n },\n});\n\nexport type QetaSearchResultListItemProps = {\n result?: IndexableDocument;\n highlight?: ResultHighlight;\n rank?: number;\n hideIcon?: boolean;\n};\n\nconst isQetaSearchDocument = (\n document: IndexableDocument,\n): document is QetaSearchDocument => {\n return (\n 'docType' in document &&\n (document.docType === 'qeta_post' || document.docType === 'qeta_collection')\n );\n};\n\nconst isQetaPostDocument = (\n document: QetaSearchDocument,\n): document is QetaPostDocument => {\n return document.docType === 'qeta_post';\n};\n\nconst isQetaCollectionDocument = (\n document: QetaSearchDocument,\n): document is QetaCollectionDocument => {\n return document.docType === 'qeta_collection';\n};\n\nconst Excerpt = (props: {\n document: QetaSearchDocument;\n highlight?: ResultHighlight;\n}) => {\n const { document, highlight } = props;\n const classes = useStyles();\n const { t } = useTranslationRef(qetaTranslationRef);\n\n const text = DOMPurify.sanitize(\n truncate(\n removeMarkdownFormatting(highlight?.fields.text ?? document.text),\n 300,\n ),\n );\n if (isQetaPostDocument(document)) {\n return (\n <>\n <span className={classes.excerptText}>\n {capitalize(t(`common.${document.postType}`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={document.author} hideIcon />\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.score', { score: document.score.toString(10) })}\n </>\n )}\n {' · '}\n {document.postType === 'link' &&\n t('common.clicksCount', { count: document.views })}\n {document.postType !== 'link' &&\n t('common.viewsShort', { count: document.views })}\n {document.postType !== 'link' && (\n <>\n {' · '}\n {t('common.answersCount', { count: document.answerCount })}\n </>\n )}\n </span>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n } else if (isQetaCollectionDocument(document)) {\n return (\n <>\n <span className={classes.excerptText}>\n {capitalize(t(`common.collection`))}\n {' · '}\n {t('searchResult.created')}{' '}\n {DateTime.fromISO(document.created.toString() as string).toRelative()}\n {' · '}\n <EntityRefLink entityRef={document.owner} hideIcon />\n {' · '}\n {t('common.posts', {\n count: document.postsCount,\n itemType: t('common.post'),\n })}\n </span>\n <>\n {highlight?.fields.text ? (\n <HighlightedSearchResultText\n text={text}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n text\n )}\n </>\n </>\n );\n }\n\n return null;\n};\n\nconst ResultIcon = (props: { document: QetaSearchDocument }) => {\n const { document } = props;\n if (isQetaPostDocument(document)) {\n return selectByPostType(\n document.postType,\n <HelpOutlined />,\n <CollectionsBookmarkIcon />,\n <LinkIcon />,\n );\n }\n\n return <PlaylistPlay />;\n};\n\nexport const QetaSearchResultListItem = (\n props: QetaSearchResultListItemProps,\n) => {\n const classes = useStyles();\n const { result, highlight, hideIcon } = props;\n\n if (!result || !isQetaSearchDocument(result)) {\n return null;\n }\n\n const title = (\n <Link noTrack to={result.location}>\n {highlight?.fields.title ? (\n <HighlightedSearchResultText\n text={highlight.fields.title}\n preTag={highlight.preTag}\n postTag={highlight.postTag}\n />\n ) : (\n result.title\n )}\n </Link>\n );\n\n return (\n <>\n <ListItem\n alignItems=\"center\"\n role=\"article\"\n aria-labelledby={`search-result-${result.title}`}\n >\n {hideIcon !== true && (\n <ListItemIcon>\n <ResultIcon document={result} aria-hidden=\"true\" />\n </ListItemIcon>\n )}\n <ListItemText\n primary={title}\n secondary={<Excerpt document={result} highlight={highlight} />}\n className={classes.itemText}\n primaryTypographyProps={{\n variant: 'h6',\n id: `search-result-${result.title}`,\n component: 'h3',\n }}\n />\n </ListItem>\n\n <Divider component=\"li\" aria-hidden=\"true\" />\n </>\n );\n};\n"],"names":["PlaylistPlay"],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useEffect, useCallback, useMemo, Fragment as Fragment$1 } from 'react';
|
|
3
|
-
import { WarningPanel
|
|
3
|
+
import { WarningPanel } from '@backstage/core-components';
|
|
4
4
|
import { useParams } from 'react-router-dom';
|
|
5
|
-
import { qetaTranslationRef, useQetaApi,
|
|
5
|
+
import { qetaTranslationRef, useQetaApi, ContentHeader, AskQuestionButton, ContentHeaderButton, AddToCollectionButton, DraftBanner, DeletedBanner, QuestionCard, AIAnswerCard, AnswerCard, AnswerForm, RelativeTimeWithTooltip, UpdatedByLink } from '@drodil/backstage-plugin-qeta-react';
|
|
6
|
+
import Comment from '@material-ui/icons/Comment';
|
|
6
7
|
import { useSignal } from '@backstage/plugin-signals-react';
|
|
7
|
-
import { makeStyles, Box, Grid, Typography, FormControl, TextField, MenuItem
|
|
8
|
+
import { makeStyles, Box, Grid, Typography, FormControl, TextField, MenuItem } from '@material-ui/core';
|
|
8
9
|
import { Skeleton } from '@material-ui/lab';
|
|
9
10
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
11
|
+
import HelpOutline from '@material-ui/icons/HelpOutline';
|
|
10
12
|
|
|
11
13
|
const useDescriptionStyles = makeStyles(
|
|
12
14
|
() => ({
|
|
@@ -139,15 +141,33 @@ const QuestionPage = () => {
|
|
|
139
141
|
return /* @__PURE__ */ jsx(WarningPanel, { title: "Not found", message: t("questionPage.notFound") });
|
|
140
142
|
}
|
|
141
143
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
142
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ jsxs(
|
|
143
145
|
ContentHeader,
|
|
144
146
|
{
|
|
145
147
|
title: question.title,
|
|
146
148
|
description: getDescription(question),
|
|
147
|
-
|
|
149
|
+
titleIcon: /* @__PURE__ */ jsx(HelpOutline, { fontSize: "large" }),
|
|
150
|
+
children: [
|
|
148
151
|
/* @__PURE__ */ jsx(AskQuestionButton, {}),
|
|
152
|
+
/* @__PURE__ */ jsx(
|
|
153
|
+
ContentHeaderButton,
|
|
154
|
+
{
|
|
155
|
+
onClick: () => {
|
|
156
|
+
const element = document.getElementById("qeta-answer-form");
|
|
157
|
+
if (element) {
|
|
158
|
+
element.scrollIntoView({ behavior: "smooth" });
|
|
159
|
+
const input = element.querySelector("textarea");
|
|
160
|
+
if (input) {
|
|
161
|
+
input.focus();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
icon: /* @__PURE__ */ jsx(Comment, {}),
|
|
166
|
+
children: t("questionPage.answerButton")
|
|
167
|
+
}
|
|
168
|
+
),
|
|
149
169
|
/* @__PURE__ */ jsx(AddToCollectionButton, { post: question })
|
|
150
|
-
]
|
|
170
|
+
]
|
|
151
171
|
}
|
|
152
172
|
),
|
|
153
173
|
question.status === "draft" && /* @__PURE__ */ jsx(DraftBanner, {}),
|
|
@@ -195,7 +215,6 @@ const QuestionPage = () => {
|
|
|
195
215
|
}
|
|
196
216
|
) }) })
|
|
197
217
|
] }) }),
|
|
198
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
199
218
|
sortedAnswers.map((a) => {
|
|
200
219
|
return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsx(Box, { sx: { mb: 1 }, children: /* @__PURE__ */ jsx(
|
|
201
220
|
AnswerCard,
|
|
@@ -206,8 +225,7 @@ const QuestionPage = () => {
|
|
|
206
225
|
}
|
|
207
226
|
) }, a.id) }, a.id);
|
|
208
227
|
}),
|
|
209
|
-
/* @__PURE__ */ jsx(
|
|
210
|
-
/* @__PURE__ */ jsx(AnswerForm, { post: question, onPost: onAnswerPost })
|
|
228
|
+
/* @__PURE__ */ jsx("div", { id: "qeta-answer-form", children: /* @__PURE__ */ jsx(AnswerForm, { post: question, onPost: onAnswerPost }) })
|
|
211
229
|
] })
|
|
212
230
|
] });
|
|
213
231
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuestionPage.esm.js","sources":["../../../src/components/QuestionPage/QuestionPage.tsx"],"sourcesContent":["import { Fragment, useCallback, useEffect, useMemo, useState } from 'react';\nimport { ContentHeader, WarningPanel } from '@backstage/core-components';\nimport { useParams } from 'react-router-dom';\nimport {\n AddToCollectionButton,\n AIAnswerCard,\n AnswerCard,\n AnswerForm,\n AskQuestionButton,\n ButtonContainer,\n DeletedBanner,\n DraftBanner,\n qetaTranslationRef,\n QuestionCard,\n RelativeTimeWithTooltip,\n UpdatedByLink,\n useQetaApi,\n} from '@drodil/backstage-plugin-qeta-react';\nimport {\n Answer,\n AnswerResponse,\n PostResponse,\n QetaSignal,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { useSignal } from '@backstage/plugin-signals-react';\nimport {\n Box,\n Divider,\n FormControl,\n Grid,\n makeStyles,\n MenuItem,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst useDescriptionStyles = makeStyles(\n () => ({\n root: {},\n box: {\n display: 'inline',\n },\n }),\n { name: 'QetaDescription' },\n);\n\nexport const QuestionPage = () => {\n const { id } = useParams();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [answers, setAnswers] = useState<AnswerResponse[]>([]);\n const [newAnswers, setNewAnswers] = useState<AnswerResponse[]>([]);\n const [answerSort, setAnswerSort] = useState<string>('default');\n const dStyles = useDescriptionStyles();\n\n const [answersCount, setAnswersCount] = useState(0);\n const [views, setViews] = useState(0);\n\n const { lastSignal } = useSignal<QetaSignal>(`qeta:post_${id}`);\n\n const {\n value: question,\n loading,\n error,\n } = useQetaApi(api => api.getPost(id), [id]);\n\n useEffect(() => {\n if (question) {\n setAnswersCount(question.answersCount);\n setViews(question.views);\n setAnswers(question.answers ?? []);\n }\n }, [question]);\n\n useEffect(() => {\n if (lastSignal?.type === 'post_stats') {\n setAnswersCount(lastSignal.answersCount);\n setViews(lastSignal.views);\n }\n }, [lastSignal]);\n\n const sortAnswers = useCallback(\n (a: Answer, b: Answer) => {\n if (answerSort === 'default') {\n return 1;\n }\n\n const parts = answerSort.split('_');\n const field = parts[0];\n const order = parts[1];\n\n let ret = -1;\n switch (field) {\n case 'created':\n ret = a.created > b.created ? -1 : 1;\n break;\n case 'score':\n ret = a.score > b.score ? -1 : 1;\n break;\n case 'author':\n ret = a.author > b.author ? -1 : 1;\n break;\n case 'comments':\n ret = (a.comments?.length ?? 0) > (b.comments?.length ?? 0) ? -1 : 1;\n break;\n case 'updated':\n ret = (a.updated ?? a.created) > (b.updated ?? b.created) ? -1 : 1;\n break;\n default:\n return 1;\n }\n\n if (order === 'desc') {\n ret *= -1;\n }\n return ret;\n },\n [answerSort],\n );\n\n const sortedAnswers = useMemo(() => {\n const allAnswers = [...answers, ...newAnswers];\n return allAnswers.sort(sortAnswers);\n }, [answers, newAnswers, sortAnswers]);\n\n const onAnswerPost = (answer: AnswerResponse) => {\n setNewAnswers(newAnswers.concat([answer]));\n setAnswersCount(prev => prev + 1);\n };\n\n const onAnswerDelete = (answer: AnswerResponse) => {\n setNewAnswers(newAnswers.filter(a => a.id !== answer.id));\n setAnswers(answers.filter(a => a.id !== answer.id));\n setAnswersCount(prev => prev - 1);\n };\n\n const getDescription = (q: PostResponse) => {\n return (\n <span className={dStyles.root}>\n <Box fontWeight=\"fontWeightMedium\" className={dStyles.box}>\n {t('authorBox.postedAtTime')}{' '}\n <RelativeTimeWithTooltip value={q.created} />\n {' · '}\n </Box>\n {q.updated && (\n <Fragment>\n <Box fontWeight=\"fontWeightMedium\" className={dStyles.box}>\n {t('authorBox.updatedAtTime')}{' '}\n <RelativeTimeWithTooltip value={q.updated} />{' '}\n {t('authorBox.updatedBy')} <UpdatedByLink entity={q} />\n {' · '}\n </Box>\n </Fragment>\n )}\n <Box fontWeight=\"fontWeightMedium\" className={dStyles.box}>\n {t('common.viewsCount', { count: views })}\n </Box>\n </span>\n );\n };\n\n if (loading) {\n return (\n <Box role=\"status\" aria-label={t('common.loading')}>\n <Skeleton variant=\"rect\" height={200} animation=\"wave\" />\n <Box mt={2}>\n <Skeleton variant=\"text\" height={40} width=\"60%\" animation=\"wave\" />\n <Skeleton variant=\"text\" height={20} width=\"40%\" animation=\"wave\" />\n <Skeleton variant=\"text\" height={20} width=\"80%\" animation=\"wave\" />\n </Box>\n </Box>\n );\n }\n\n if (error || question === undefined) {\n return (\n <WarningPanel\n severity=\"error\"\n title={t('questionPage.errorLoading')}\n aria-live=\"assertive\"\n >\n {error?.message}\n </WarningPanel>\n );\n }\n\n if (question.type !== 'question') {\n return (\n <WarningPanel title=\"Not found\" message={t('questionPage.notFound')} />\n );\n }\n\n return (\n <>\n <ContentHeader\n title={question.title}\n // @ts-ignore\n description={getDescription(question)}\n >\n <ButtonContainer>\n <AskQuestionButton />\n <AddToCollectionButton post={question} />\n </ButtonContainer>\n </ContentHeader>\n {question.status === 'draft' && <DraftBanner />}\n {question.status === 'deleted' && <DeletedBanner />}\n <QuestionCard question={question} />\n <AIAnswerCard question={question} debounceMs={0} />\n {question.status === 'active' && (\n <>\n <Box sx={{ mt: 3, mb: 2 }}>\n <Grid container justifyContent=\"space-between\" alignItems=\"center\">\n <Grid item>\n <Typography variant=\"h6\">\n {t('common.answersCount', {\n count: answersCount,\n })}\n </Typography>\n </Grid>\n {sortedAnswers.length > 1 && (\n <Grid item>\n <FormControl>\n <TextField\n select\n size=\"small\"\n label={t('questionPage.sortAnswers.label')}\n value={answerSort}\n onChange={val =>\n setAnswerSort(val.target.value as string)\n }\n inputProps={{\n name: 'sortAnswers',\n id: 'sort-answers',\n 'aria-label': t('questionPage.sortAnswers.label'),\n 'aria-describedby': 'sort-answers-helper',\n }}\n variant=\"outlined\"\n SelectProps={{\n MenuProps: {\n 'aria-label': t('questionPage.sortAnswers.menuLabel'),\n },\n }}\n >\n <MenuItem value=\"default\">\n {t('questionPage.sortAnswers.default')}\n </MenuItem>\n <MenuItem value=\"created_desc\">\n {t('questionPage.sortAnswers.createdDesc')}\n </MenuItem>\n <MenuItem value=\"created_asc\">\n {t('questionPage.sortAnswers.createdAsc')}\n </MenuItem>\n <MenuItem value=\"score_desc\">\n {t('questionPage.sortAnswers.scoreDesc')}\n </MenuItem>\n <MenuItem value=\"score_asc\">\n {t('questionPage.sortAnswers.scoreAsc')}\n </MenuItem>\n <MenuItem value=\"comments_desc\">\n {t('questionPage.sortAnswers.commentsDesc')}\n </MenuItem>\n <MenuItem value=\"comments_asc\">\n {t('questionPage.sortAnswers.commentsAsc')}\n </MenuItem>\n <MenuItem value=\"author_desc\">\n {t('questionPage.sortAnswers.authorDesc')}\n </MenuItem>\n <MenuItem value=\"author_asc\">\n {t('questionPage.sortAnswers.authorAsc')}\n </MenuItem>\n <MenuItem value=\"updated_desc\">\n {t('questionPage.sortAnswers.updatedDesc')}\n </MenuItem>\n <MenuItem value=\"updated_asc\">\n {t('questionPage.sortAnswers.updatedAsc')}\n </MenuItem>\n </TextField>\n </FormControl>\n </Grid>\n )}\n </Grid>\n </Box>\n <Divider />\n {sortedAnswers.map(a => {\n return (\n <Fragment key={a.id}>\n <Box key={a.id} sx={{ mb: 1 }}>\n <AnswerCard\n answer={a}\n question={question}\n onAnswerDelete={onAnswerDelete}\n />\n </Box>\n </Fragment>\n );\n })}\n <Divider />\n <AnswerForm post={question} onPost={onAnswerPost} />\n </>\n )}\n </>\n );\n};\n"],"names":["Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QuestionPage.esm.js","sources":["../../../src/components/QuestionPage/QuestionPage.tsx"],"sourcesContent":["import { Fragment, useCallback, useEffect, useMemo, useState } from 'react';\nimport { WarningPanel } from '@backstage/core-components';\nimport { useParams } from 'react-router-dom';\nimport {\n AddToCollectionButton,\n AIAnswerCard,\n AnswerCard,\n AnswerForm,\n AskQuestionButton,\n ContentHeader,\n ContentHeaderButton,\n DeletedBanner,\n DraftBanner,\n qetaTranslationRef,\n QuestionCard,\n RelativeTimeWithTooltip,\n UpdatedByLink,\n useQetaApi,\n} from '@drodil/backstage-plugin-qeta-react';\nimport Comment from '@material-ui/icons/Comment';\nimport {\n Answer,\n AnswerResponse,\n PostResponse,\n QetaSignal,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { useSignal } from '@backstage/plugin-signals-react';\nimport {\n Box,\n FormControl,\n Grid,\n makeStyles,\n MenuItem,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport HelpOutline from '@material-ui/icons/HelpOutline';\n\nconst useDescriptionStyles = makeStyles(\n () => ({\n root: {},\n box: {\n display: 'inline',\n },\n }),\n { name: 'QetaDescription' },\n);\n\nexport const QuestionPage = () => {\n const { id } = useParams();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [answers, setAnswers] = useState<AnswerResponse[]>([]);\n const [newAnswers, setNewAnswers] = useState<AnswerResponse[]>([]);\n const [answerSort, setAnswerSort] = useState<string>('default');\n const dStyles = useDescriptionStyles();\n\n const [answersCount, setAnswersCount] = useState(0);\n const [views, setViews] = useState(0);\n\n const { lastSignal } = useSignal<QetaSignal>(`qeta:post_${id}`);\n\n const {\n value: question,\n loading,\n error,\n } = useQetaApi(api => api.getPost(id), [id]);\n\n useEffect(() => {\n if (question) {\n setAnswersCount(question.answersCount);\n setViews(question.views);\n setAnswers(question.answers ?? []);\n }\n }, [question]);\n\n useEffect(() => {\n if (lastSignal?.type === 'post_stats') {\n setAnswersCount(lastSignal.answersCount);\n setViews(lastSignal.views);\n }\n }, [lastSignal]);\n\n const sortAnswers = useCallback(\n (a: Answer, b: Answer) => {\n if (answerSort === 'default') {\n return 1;\n }\n\n const parts = answerSort.split('_');\n const field = parts[0];\n const order = parts[1];\n\n let ret = -1;\n switch (field) {\n case 'created':\n ret = a.created > b.created ? -1 : 1;\n break;\n case 'score':\n ret = a.score > b.score ? -1 : 1;\n break;\n case 'author':\n ret = a.author > b.author ? -1 : 1;\n break;\n case 'comments':\n ret = (a.comments?.length ?? 0) > (b.comments?.length ?? 0) ? -1 : 1;\n break;\n case 'updated':\n ret = (a.updated ?? a.created) > (b.updated ?? b.created) ? -1 : 1;\n break;\n default:\n return 1;\n }\n\n if (order === 'desc') {\n ret *= -1;\n }\n return ret;\n },\n [answerSort],\n );\n\n const sortedAnswers = useMemo(() => {\n const allAnswers = [...answers, ...newAnswers];\n return allAnswers.sort(sortAnswers);\n }, [answers, newAnswers, sortAnswers]);\n\n const onAnswerPost = (answer: AnswerResponse) => {\n setNewAnswers(newAnswers.concat([answer]));\n setAnswersCount(prev => prev + 1);\n };\n\n const onAnswerDelete = (answer: AnswerResponse) => {\n setNewAnswers(newAnswers.filter(a => a.id !== answer.id));\n setAnswers(answers.filter(a => a.id !== answer.id));\n setAnswersCount(prev => prev - 1);\n };\n\n const getDescription = (q: PostResponse) => {\n return (\n <span className={dStyles.root}>\n <Box fontWeight=\"fontWeightMedium\" className={dStyles.box}>\n {t('authorBox.postedAtTime')}{' '}\n <RelativeTimeWithTooltip value={q.created} />\n {' · '}\n </Box>\n {q.updated && (\n <Fragment>\n <Box fontWeight=\"fontWeightMedium\" className={dStyles.box}>\n {t('authorBox.updatedAtTime')}{' '}\n <RelativeTimeWithTooltip value={q.updated} />{' '}\n {t('authorBox.updatedBy')} <UpdatedByLink entity={q} />\n {' · '}\n </Box>\n </Fragment>\n )}\n <Box fontWeight=\"fontWeightMedium\" className={dStyles.box}>\n {t('common.viewsCount', { count: views })}\n </Box>\n </span>\n );\n };\n\n if (loading) {\n return (\n <Box role=\"status\" aria-label={t('common.loading')}>\n <Skeleton variant=\"rect\" height={200} animation=\"wave\" />\n <Box mt={2}>\n <Skeleton variant=\"text\" height={40} width=\"60%\" animation=\"wave\" />\n <Skeleton variant=\"text\" height={20} width=\"40%\" animation=\"wave\" />\n <Skeleton variant=\"text\" height={20} width=\"80%\" animation=\"wave\" />\n </Box>\n </Box>\n );\n }\n\n if (error || question === undefined) {\n return (\n <WarningPanel\n severity=\"error\"\n title={t('questionPage.errorLoading')}\n aria-live=\"assertive\"\n >\n {error?.message}\n </WarningPanel>\n );\n }\n\n if (question.type !== 'question') {\n return (\n <WarningPanel title=\"Not found\" message={t('questionPage.notFound')} />\n );\n }\n\n return (\n <>\n <ContentHeader\n title={question.title}\n description={getDescription(question)}\n titleIcon={<HelpOutline fontSize=\"large\" />}\n >\n <AskQuestionButton />\n <ContentHeaderButton\n onClick={() => {\n const element = document.getElementById('qeta-answer-form');\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' });\n const input = element.querySelector('textarea');\n if (input) {\n input.focus();\n }\n }\n }}\n icon={<Comment />}\n >\n {t('questionPage.answerButton')}\n </ContentHeaderButton>\n <AddToCollectionButton post={question} />\n </ContentHeader>\n {question.status === 'draft' && <DraftBanner />}\n {question.status === 'deleted' && <DeletedBanner />}\n <QuestionCard question={question} />\n <AIAnswerCard question={question} debounceMs={0} />\n {question.status === 'active' && (\n <>\n <Box sx={{ mt: 3, mb: 2 }}>\n <Grid container justifyContent=\"space-between\" alignItems=\"center\">\n <Grid item>\n <Typography variant=\"h6\">\n {t('common.answersCount', {\n count: answersCount,\n })}\n </Typography>\n </Grid>\n {sortedAnswers.length > 1 && (\n <Grid item>\n <FormControl>\n <TextField\n select\n size=\"small\"\n label={t('questionPage.sortAnswers.label')}\n value={answerSort}\n onChange={val =>\n setAnswerSort(val.target.value as string)\n }\n inputProps={{\n name: 'sortAnswers',\n id: 'sort-answers',\n 'aria-label': t('questionPage.sortAnswers.label'),\n 'aria-describedby': 'sort-answers-helper',\n }}\n variant=\"outlined\"\n SelectProps={{\n MenuProps: {\n 'aria-label': t('questionPage.sortAnswers.menuLabel'),\n },\n }}\n >\n <MenuItem value=\"default\">\n {t('questionPage.sortAnswers.default')}\n </MenuItem>\n <MenuItem value=\"created_desc\">\n {t('questionPage.sortAnswers.createdDesc')}\n </MenuItem>\n <MenuItem value=\"created_asc\">\n {t('questionPage.sortAnswers.createdAsc')}\n </MenuItem>\n <MenuItem value=\"score_desc\">\n {t('questionPage.sortAnswers.scoreDesc')}\n </MenuItem>\n <MenuItem value=\"score_asc\">\n {t('questionPage.sortAnswers.scoreAsc')}\n </MenuItem>\n <MenuItem value=\"comments_desc\">\n {t('questionPage.sortAnswers.commentsDesc')}\n </MenuItem>\n <MenuItem value=\"comments_asc\">\n {t('questionPage.sortAnswers.commentsAsc')}\n </MenuItem>\n <MenuItem value=\"author_desc\">\n {t('questionPage.sortAnswers.authorDesc')}\n </MenuItem>\n <MenuItem value=\"author_asc\">\n {t('questionPage.sortAnswers.authorAsc')}\n </MenuItem>\n <MenuItem value=\"updated_desc\">\n {t('questionPage.sortAnswers.updatedDesc')}\n </MenuItem>\n <MenuItem value=\"updated_asc\">\n {t('questionPage.sortAnswers.updatedAsc')}\n </MenuItem>\n </TextField>\n </FormControl>\n </Grid>\n )}\n </Grid>\n </Box>\n {sortedAnswers.map(a => {\n return (\n <Fragment key={a.id}>\n <Box key={a.id} sx={{ mb: 1 }}>\n <AnswerCard\n answer={a}\n question={question}\n onAnswerDelete={onAnswerDelete}\n />\n </Box>\n </Fragment>\n );\n })}\n\n <div id=\"qeta-answer-form\">\n <AnswerForm post={question} onPost={onAnswerPost} />\n </div>\n </>\n )}\n </>\n );\n};\n"],"names":["Fragment"],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useSearchParams } from 'react-router-dom';
|
|
3
3
|
import { useState, useEffect } from 'react';
|
|
4
|
-
import { qetaTranslationRef,
|
|
5
|
-
import { ContentHeader } from '@backstage/core-components';
|
|
4
|
+
import { qetaTranslationRef, ContentHeader, AskQuestionButton, PostsGrid, PostsContainer } from '@drodil/backstage-plugin-qeta-react';
|
|
6
5
|
import { filterTags } from '@drodil/backstage-plugin-qeta-common';
|
|
7
|
-
import
|
|
8
|
-
import { Grid } from '@material-ui/core';
|
|
6
|
+
import HelpOutline from '@material-ui/icons/HelpOutline';
|
|
9
7
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
10
8
|
|
|
11
9
|
const QuestionsPage = () => {
|
|
@@ -18,55 +16,16 @@ const QuestionsPage = () => {
|
|
|
18
16
|
setEntityRef(searchParams.get("entity") ?? void 0);
|
|
19
17
|
setTags(filterTags(searchParams.get("tags")));
|
|
20
18
|
}, [searchParams, setEntityRef]);
|
|
21
|
-
return /* @__PURE__ */ jsxs(
|
|
22
|
-
/* @__PURE__ */
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
title: t("highlights.hotQuestions.title"),
|
|
32
|
-
noQuestionsLabel: t("highlights.hotQuestions.noQuestionsLabel"),
|
|
33
|
-
icon: /* @__PURE__ */ jsx(Whatshot, { fontSize: "small" }),
|
|
34
|
-
options: {
|
|
35
|
-
tags,
|
|
36
|
-
entities: entityRef ? [entityRef] : void 0
|
|
37
|
-
},
|
|
38
|
-
postType: "question"
|
|
39
|
-
}
|
|
40
|
-
),
|
|
41
|
-
/* @__PURE__ */ jsx(
|
|
42
|
-
PostHighlightList,
|
|
43
|
-
{
|
|
44
|
-
type: "unanswered",
|
|
45
|
-
title: t("highlights.unanswered.title"),
|
|
46
|
-
noQuestionsLabel: t("highlights.unanswered.noQuestionsLabel"),
|
|
47
|
-
options: {
|
|
48
|
-
tags,
|
|
49
|
-
entities: entityRef ? [entityRef] : void 0
|
|
50
|
-
},
|
|
51
|
-
postType: "question"
|
|
52
|
-
}
|
|
53
|
-
),
|
|
54
|
-
/* @__PURE__ */ jsx(
|
|
55
|
-
PostHighlightList,
|
|
56
|
-
{
|
|
57
|
-
type: "incorrect",
|
|
58
|
-
title: t("highlights.incorrect.title"),
|
|
59
|
-
noQuestionsLabel: t("highlights.incorrect.noQuestionsLabel"),
|
|
60
|
-
options: {
|
|
61
|
-
tags,
|
|
62
|
-
entities: entityRef ? [entityRef] : void 0
|
|
63
|
-
},
|
|
64
|
-
postType: "question"
|
|
65
|
-
}
|
|
66
|
-
),
|
|
67
|
-
/* @__PURE__ */ jsx(FollowedTagsList, {}),
|
|
68
|
-
/* @__PURE__ */ jsx(FollowedEntitiesList, {})
|
|
69
|
-
] })
|
|
19
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20
|
+
/* @__PURE__ */ jsx(
|
|
21
|
+
ContentHeader,
|
|
22
|
+
{
|
|
23
|
+
title: t("questionsPage.title"),
|
|
24
|
+
titleIcon: /* @__PURE__ */ jsx(HelpOutline, { fontSize: "large" }),
|
|
25
|
+
children: /* @__PURE__ */ jsx(AskQuestionButton, { entity: entityRef, tags })
|
|
26
|
+
}
|
|
27
|
+
),
|
|
28
|
+
view === "grid" ? /* @__PURE__ */ jsx(PostsGrid, { type: "question", view, onViewChange: setView }) : /* @__PURE__ */ jsx(PostsContainer, { type: "question", view, onViewChange: setView })
|
|
70
29
|
] });
|
|
71
30
|
};
|
|
72
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuestionsPage.esm.js","sources":["../../../src/components/QuestionsPage/QuestionsPage.tsx"],"sourcesContent":["import { useSearchParams } from 'react-router-dom';\nimport { useEffect, useState } from 'react';\nimport {\n AskQuestionButton,\n
|
|
1
|
+
{"version":3,"file":"QuestionsPage.esm.js","sources":["../../../src/components/QuestionsPage/QuestionsPage.tsx"],"sourcesContent":["import { useSearchParams } from 'react-router-dom';\nimport { useEffect, useState } from 'react';\nimport {\n AskQuestionButton,\n ContentHeader,\n PostsContainer,\n PostsGrid,\n qetaTranslationRef,\n ViewType,\n} from '@drodil/backstage-plugin-qeta-react';\n\nimport { filterTags } from '@drodil/backstage-plugin-qeta-common';\nimport HelpOutline from '@material-ui/icons/HelpOutline';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const QuestionsPage = () => {\n const [searchParams] = useSearchParams();\n const [view, setView] = useState<ViewType>('list');\n\n const [entityRef, setEntityRef] = useState<string | undefined>(undefined);\n const [tags, setTags] = useState<string[] | undefined>(undefined);\n const { t } = useTranslationRef(qetaTranslationRef);\n useEffect(() => {\n setEntityRef(searchParams.get('entity') ?? undefined);\n setTags(filterTags(searchParams.get('tags')));\n }, [searchParams, setEntityRef]);\n\n return (\n <>\n <ContentHeader\n title={t('questionsPage.title')}\n titleIcon={<HelpOutline fontSize=\"large\" />}\n >\n <AskQuestionButton entity={entityRef} tags={tags} />\n </ContentHeader>\n {view === 'grid' ? (\n <PostsGrid type=\"question\" view={view} onViewChange={setView} />\n ) : (\n <PostsContainer type=\"question\" view={view} onViewChange={setView} />\n )}\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAeO,MAAM,gBAAgB,MAAM;AACjC,EAAM,MAAA,CAAC,YAAY,CAAA,GAAI,eAAgB,EAAA;AACvC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAmB,MAAM,CAAA;AAEjD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAA6B,KAAS,CAAA,CAAA;AACxE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA+B,KAAS,CAAA,CAAA;AAChE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,YAAA,CAAa,YAAa,CAAA,GAAA,CAAI,QAAQ,CAAA,IAAK,KAAS,CAAA,CAAA;AACpD,IAAA,OAAA,CAAQ,UAAW,CAAA,YAAA,CAAa,GAAI,CAAA,MAAM,CAAC,CAAC,CAAA;AAAA,GAC3C,EAAA,CAAC,YAAc,EAAA,YAAY,CAAC,CAAA;AAE/B,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,qBAAqB,CAAA;AAAA,QAC9B,SAAW,kBAAA,GAAA,CAAC,WAAY,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,QAEzC,QAAC,kBAAA,GAAA,CAAA,iBAAA,EAAA,EAAkB,MAAQ,EAAA,SAAA,EAAW,IAAY,EAAA;AAAA;AAAA,KACpD;AAAA,IACC,SAAS,MACR,mBAAA,GAAA,CAAC,SAAU,EAAA,EAAA,IAAA,EAAK,YAAW,IAAY,EAAA,YAAA,EAAc,OAAS,EAAA,CAAA,uBAE7D,cAAe,EAAA,EAAA,IAAA,EAAK,UAAW,EAAA,IAAA,EAAY,cAAc,OAAS,EAAA;AAAA,GAEvE,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { qetaTranslationRef, PostHighlightList, FollowedTagsList, FollowedEntitiesList } from '@drodil/backstage-plugin-qeta-react';
|
|
3
|
+
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
4
|
+
import Whatshot from '@material-ui/icons/Whatshot';
|
|
5
|
+
|
|
6
|
+
const ArticlesRightContent = (props) => {
|
|
7
|
+
const { t } = useTranslationRef(qetaTranslationRef);
|
|
8
|
+
const { tags, entityRef } = props;
|
|
9
|
+
const entities = entityRef ? [entityRef] : void 0;
|
|
10
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11
|
+
/* @__PURE__ */ jsx(
|
|
12
|
+
PostHighlightList,
|
|
13
|
+
{
|
|
14
|
+
type: "hot",
|
|
15
|
+
title: t("highlights.hotArticles.title"),
|
|
16
|
+
noQuestionsLabel: t("highlights.hotArticles.noArticlesLabel"),
|
|
17
|
+
icon: /* @__PURE__ */ jsx(Whatshot, { fontSize: "small" }),
|
|
18
|
+
postType: "article",
|
|
19
|
+
options: {
|
|
20
|
+
tags,
|
|
21
|
+
entities
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
),
|
|
25
|
+
/* @__PURE__ */ jsx(FollowedTagsList, {}),
|
|
26
|
+
/* @__PURE__ */ jsx(FollowedEntitiesList, {})
|
|
27
|
+
] });
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { ArticlesRightContent };
|
|
31
|
+
//# sourceMappingURL=ArticlesRightContent.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArticlesRightContent.esm.js","sources":["../../../src/components/RightContent/ArticlesRightContent.tsx"],"sourcesContent":["import {\n FollowedEntitiesList,\n FollowedTagsList,\n PostHighlightList,\n qetaTranslationRef,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Whatshot from '@material-ui/icons/Whatshot';\n\nexport const ArticlesRightContent = (props: {\n tags?: string[];\n entityRef?: string;\n}) => {\n const { t } = useTranslationRef(qetaTranslationRef);\n const { tags, entityRef } = props;\n const entities = entityRef ? [entityRef] : undefined;\n\n return (\n <>\n <PostHighlightList\n type=\"hot\"\n title={t('highlights.hotArticles.title')}\n noQuestionsLabel={t('highlights.hotArticles.noArticlesLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n postType=\"article\"\n options={{\n tags: tags,\n entities: entities,\n }}\n />\n <FollowedTagsList />\n <FollowedEntitiesList />\n </>\n );\n};\n"],"names":[],"mappings":";;;;;AASa,MAAA,oBAAA,GAAuB,CAAC,KAG/B,KAAA;AACJ,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAM,MAAA,EAAE,IAAM,EAAA,SAAA,EAAc,GAAA,KAAA;AAC5B,EAAA,MAAM,QAAW,GAAA,SAAA,GAAY,CAAC,SAAS,CAAI,GAAA,KAAA,CAAA;AAE3C,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,KAAA;AAAA,QACL,KAAA,EAAO,EAAE,8BAA8B,CAAA;AAAA,QACvC,gBAAA,EAAkB,EAAE,wCAAwC,CAAA;AAAA,QAC5D,IAAM,kBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,QACjC,QAAS,EAAA,SAAA;AAAA,QACT,OAAS,EAAA;AAAA,UACP,IAAA;AAAA,UACA;AAAA;AACF;AAAA,KACF;AAAA,wBACC,gBAAiB,EAAA,EAAA,CAAA;AAAA,wBACjB,oBAAqB,EAAA,EAAA;AAAA,GACxB,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { FollowedTagsList, FollowedEntitiesList, FollowedUsersList, FollowedCollectionsList } from '@drodil/backstage-plugin-qeta-react';
|
|
3
|
+
import { SimilarQuestions } from './SimilarQuestions.esm.js';
|
|
4
|
+
|
|
5
|
+
const AskRightContent = () => {
|
|
6
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
7
|
+
/* @__PURE__ */ jsx(SimilarQuestions, {}),
|
|
8
|
+
/* @__PURE__ */ jsx(FollowedTagsList, {}),
|
|
9
|
+
/* @__PURE__ */ jsx(FollowedEntitiesList, {}),
|
|
10
|
+
/* @__PURE__ */ jsx(FollowedUsersList, {}),
|
|
11
|
+
/* @__PURE__ */ jsx(FollowedCollectionsList, {})
|
|
12
|
+
] });
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export { AskRightContent };
|
|
16
|
+
//# sourceMappingURL=AskRightContent.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AskRightContent.esm.js","sources":["../../../src/components/RightContent/AskRightContent.tsx"],"sourcesContent":["import {\n FollowedCollectionsList,\n FollowedEntitiesList,\n FollowedTagsList,\n FollowedUsersList,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { SimilarQuestions } from './SimilarQuestions';\n\nexport const AskRightContent = () => {\n return (\n <>\n <SimilarQuestions />\n <FollowedTagsList />\n <FollowedEntitiesList />\n <FollowedUsersList />\n <FollowedCollectionsList />\n </>\n );\n};\n"],"names":[],"mappings":";;;;AAQO,MAAM,kBAAkB,MAAM;AACnC,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,gBAAiB,EAAA,EAAA,CAAA;AAAA,wBACjB,gBAAiB,EAAA,EAAA,CAAA;AAAA,wBACjB,oBAAqB,EAAA,EAAA,CAAA;AAAA,wBACrB,iBAAkB,EAAA,EAAA,CAAA;AAAA,wBAClB,uBAAwB,EAAA,EAAA;AAAA,GAC3B,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { FollowedCollectionsList, PostHighlightListContainer } from '@drodil/backstage-plugin-qeta-react';
|
|
3
|
+
|
|
4
|
+
const CollectionsRightContent = () => {
|
|
5
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6
|
+
/* @__PURE__ */ jsx(FollowedCollectionsList, {}),
|
|
7
|
+
/* @__PURE__ */ jsx(PostHighlightListContainer, {})
|
|
8
|
+
] });
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { CollectionsRightContent };
|
|
12
|
+
//# sourceMappingURL=CollectionsRightContent.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollectionsRightContent.esm.js","sources":["../../../src/components/RightContent/CollectionsRightContent.tsx"],"sourcesContent":["import {\n FollowedCollectionsList,\n PostHighlightListContainer,\n} from '@drodil/backstage-plugin-qeta-react';\n\nexport const CollectionsRightContent = () => {\n return (\n <>\n <FollowedCollectionsList />\n <PostHighlightListContainer />\n </>\n );\n};\n"],"names":[],"mappings":";;;AAKO,MAAM,0BAA0B,MAAM;AAC3C,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,uBAAwB,EAAA,EAAA,CAAA;AAAA,wBACxB,0BAA2B,EAAA,EAAA;AAAA,GAC9B,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { qetaTranslationRef, PostHighlightList, FollowedTagsList, FollowedUsersList, FollowedEntitiesList, FollowedCollectionsList } from '@drodil/backstage-plugin-qeta-react';
|
|
3
|
+
import Whatshot from '@material-ui/icons/Whatshot';
|
|
4
|
+
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
5
|
+
|
|
6
|
+
const DefaultRightContent = () => {
|
|
7
|
+
const { t } = useTranslationRef(qetaTranslationRef);
|
|
8
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9
|
+
/* @__PURE__ */ jsx(
|
|
10
|
+
PostHighlightList,
|
|
11
|
+
{
|
|
12
|
+
type: "hot",
|
|
13
|
+
title: t("highlights.hotQuestions.title"),
|
|
14
|
+
noQuestionsLabel: t("highlights.hotQuestions.noQuestionsLabel"),
|
|
15
|
+
icon: /* @__PURE__ */ jsx(Whatshot, { fontSize: "small" }),
|
|
16
|
+
postType: "question"
|
|
17
|
+
}
|
|
18
|
+
),
|
|
19
|
+
/* @__PURE__ */ jsx(FollowedTagsList, {}),
|
|
20
|
+
/* @__PURE__ */ jsx(FollowedUsersList, {}),
|
|
21
|
+
/* @__PURE__ */ jsx(FollowedEntitiesList, {}),
|
|
22
|
+
/* @__PURE__ */ jsx(FollowedCollectionsList, {})
|
|
23
|
+
] });
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export { DefaultRightContent };
|
|
27
|
+
//# sourceMappingURL=DefaultRightContent.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultRightContent.esm.js","sources":["../../../src/components/RightContent/DefaultRightContent.tsx"],"sourcesContent":["import {\n FollowedCollectionsList,\n FollowedEntitiesList,\n FollowedTagsList,\n FollowedUsersList,\n PostHighlightList,\n qetaTranslationRef,\n} from '@drodil/backstage-plugin-qeta-react';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const DefaultRightContent = () => {\n const { t } = useTranslationRef(qetaTranslationRef);\n return (\n <>\n <PostHighlightList\n type=\"hot\"\n title={t('highlights.hotQuestions.title')}\n noQuestionsLabel={t('highlights.hotQuestions.noQuestionsLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n postType=\"question\"\n />\n <FollowedTagsList />\n <FollowedUsersList />\n <FollowedEntitiesList />\n <FollowedCollectionsList />\n </>\n );\n};\n"],"names":[],"mappings":";;;;;AAWO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,KAAA;AAAA,QACL,KAAA,EAAO,EAAE,+BAA+B,CAAA;AAAA,QACxC,gBAAA,EAAkB,EAAE,0CAA0C,CAAA;AAAA,QAC9D,IAAM,kBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,QACjC,QAAS,EAAA;AAAA;AAAA,KACX;AAAA,wBACC,gBAAiB,EAAA,EAAA,CAAA;AAAA,wBACjB,iBAAkB,EAAA,EAAA,CAAA;AAAA,wBAClB,oBAAqB,EAAA,EAAA,CAAA;AAAA,wBACrB,uBAAwB,EAAA,EAAA;AAAA,GAC3B,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { FollowedEntitiesList, PostHighlightListContainer } from '@drodil/backstage-plugin-qeta-react';
|
|
3
|
+
|
|
4
|
+
const EntitiesRightContent = () => {
|
|
5
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6
|
+
/* @__PURE__ */ jsx(FollowedEntitiesList, {}),
|
|
7
|
+
/* @__PURE__ */ jsx(PostHighlightListContainer, {})
|
|
8
|
+
] });
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { EntitiesRightContent };
|
|
12
|
+
//# sourceMappingURL=EntitiesRightContent.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntitiesRightContent.esm.js","sources":["../../../src/components/RightContent/EntitiesRightContent.tsx"],"sourcesContent":["import {\n FollowedEntitiesList,\n PostHighlightListContainer,\n} from '@drodil/backstage-plugin-qeta-react';\n\nexport const EntitiesRightContent = () => {\n return (\n <>\n <FollowedEntitiesList />\n <PostHighlightListContainer />\n </>\n );\n};\n"],"names":[],"mappings":";;;AAKO,MAAM,uBAAuB,MAAM;AACxC,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,oBAAqB,EAAA,EAAA,CAAA;AAAA,wBACrB,0BAA2B,EAAA,EAAA;AAAA,GAC9B,EAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { qetaTranslationRef, FollowedEntitiesList, PostHighlightList } from '@drodil/backstage-plugin-qeta-react';
|
|
3
|
+
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
4
|
+
import Whatshot from '@material-ui/icons/Whatshot';
|
|
5
|
+
|
|
6
|
+
const EntityRightContent = (props) => {
|
|
7
|
+
const { t } = useTranslationRef(qetaTranslationRef);
|
|
8
|
+
const { entityRef } = props;
|
|
9
|
+
const entities = entityRef ? [entityRef] : void 0;
|
|
10
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11
|
+
/* @__PURE__ */ jsx(FollowedEntitiesList, {}),
|
|
12
|
+
/* @__PURE__ */ jsx(
|
|
13
|
+
PostHighlightList,
|
|
14
|
+
{
|
|
15
|
+
type: "hot",
|
|
16
|
+
title: t("highlights.hotQuestions.title"),
|
|
17
|
+
noQuestionsLabel: t("highlights.hotQuestions.noQuestionsLabel"),
|
|
18
|
+
icon: /* @__PURE__ */ jsx(Whatshot, { fontSize: "small" }),
|
|
19
|
+
options: { entities },
|
|
20
|
+
postType: "question"
|
|
21
|
+
}
|
|
22
|
+
),
|
|
23
|
+
/* @__PURE__ */ jsx(
|
|
24
|
+
PostHighlightList,
|
|
25
|
+
{
|
|
26
|
+
type: "unanswered",
|
|
27
|
+
title: t("highlights.unanswered.title"),
|
|
28
|
+
noQuestionsLabel: t("highlights.unanswered.noQuestionsLabel"),
|
|
29
|
+
options: { entities },
|
|
30
|
+
postType: "question"
|
|
31
|
+
}
|
|
32
|
+
),
|
|
33
|
+
/* @__PURE__ */ jsx(
|
|
34
|
+
PostHighlightList,
|
|
35
|
+
{
|
|
36
|
+
type: "incorrect",
|
|
37
|
+
title: t("highlights.incorrect.title"),
|
|
38
|
+
noQuestionsLabel: t("highlights.incorrect.noQuestionsLabel"),
|
|
39
|
+
options: { entities },
|
|
40
|
+
postType: "question"
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
] });
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export { EntityRightContent };
|
|
47
|
+
//# sourceMappingURL=EntityRightContent.esm.js.map
|