@drodil/backstage-plugin-qeta 2.13.1 → 2.15.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.
- package/dist/components/AnswersContainer/AnswerList.esm.js +2 -2
- package/dist/components/AnswersContainer/AnswerList.esm.js.map +1 -1
- package/dist/components/AnswersContainer/AnswerListItem.esm.js +56 -53
- package/dist/components/AnswersContainer/AnswerListItem.esm.js.map +1 -1
- package/dist/components/CommentSection/CommentList.esm.js +3 -3
- package/dist/components/CommentSection/CommentList.esm.js.map +1 -1
- package/dist/components/FavoritePage/FavoritePage.esm.js +1 -1
- package/dist/components/FavoritePage/FavoritePage.esm.js.map +1 -1
- package/dist/components/HomePage/HomePage.esm.js +1 -1
- package/dist/components/HomePage/HomePage.esm.js.map +1 -1
- package/dist/components/HomePageCards/ImpactCard.esm.js +4 -2
- package/dist/components/HomePageCards/ImpactCard.esm.js.map +1 -1
- package/dist/components/LeftMenu/LeftMenu.esm.js +1 -0
- package/dist/components/LeftMenu/LeftMenu.esm.js.map +1 -1
- package/dist/components/MarkdownEditor/MarkdownEditor.esm.js +2 -3
- package/dist/components/MarkdownEditor/MarkdownEditor.esm.js.map +1 -1
- package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js +37 -0
- package/dist/components/MarkdownRenderer/MarkdownRenderer.esm.js.map +1 -0
- package/dist/components/QuestionPage/AnswerCard.esm.js +3 -4
- package/dist/components/QuestionPage/AnswerCard.esm.js.map +1 -1
- package/dist/components/QuestionPage/QuestionCard.esm.js +2 -3
- package/dist/components/QuestionPage/QuestionCard.esm.js.map +1 -1
- package/dist/components/QuestionsContainer/QuestionList.esm.js +1 -1
- package/dist/components/QuestionsContainer/QuestionList.esm.js.map +1 -1
- package/dist/components/QuestionsPage/QuestionsPage.esm.js +1 -1
- package/dist/components/QuestionsPage/QuestionsPage.esm.js.map +1 -1
- package/dist/components/Statistics/GlobalStatsContent.esm.js +20 -0
- package/dist/components/Statistics/GlobalStatsContent.esm.js.map +1 -0
- package/dist/components/Statistics/StatisticsPage.esm.js +2 -2
- package/dist/components/Statistics/StatisticsPage.esm.js.map +1 -1
- package/dist/components/Statistics/StatsChart.esm.js +192 -13
- package/dist/components/Statistics/StatsChart.esm.js.map +1 -1
- package/dist/components/Statistics/SummaryStatsGrid.esm.js +47 -0
- package/dist/components/Statistics/SummaryStatsGrid.esm.js.map +1 -0
- package/dist/components/TagPage/TagPage.esm.js +1 -1
- package/dist/components/TagPage/TagPage.esm.js.map +1 -1
- package/dist/components/UserPage/UserPage.esm.js +3 -2
- package/dist/components/UserPage/UserPage.esm.js.map +1 -1
- package/dist/components/UserPage/UserStatsContent.esm.js +20 -0
- package/dist/components/UserPage/UserStatsContent.esm.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/translation.esm.js +7 -2
- package/dist/translation.esm.js.map +1 -1
- package/package.json +6 -3
- package/dist/components/Statistics/GlobalStatsCard.esm.js +0 -19
- package/dist/components/Statistics/GlobalStatsCard.esm.js.map +0 -1
- package/dist/components/UserPage/UserStatsCard.esm.js +0 -19
- package/dist/components/UserPage/UserStatsCard.esm.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SummaryStatsGrid.esm.js","sources":["../../../src/components/Statistics/SummaryStatsGrid.tsx"],"sourcesContent":["import { Card, CardContent, Grid, Typography } from '@material-ui/core';\nimport { StatisticsResponse } from '@drodil/backstage-plugin-qeta-common';\nimport React from 'react';\nimport numeral from 'numeral';\nimport { useTranslation } from '../../utils/hooks';\n\nconst SummaryCard = (props: { title: string; value: number }) => {\n const { title, value } = props;\n return (\n <Card>\n <CardContent>\n <Typography variant=\"h5\">\n {value >= 1000 ? numeral(value).format('0.0 a') : value}\n <Typography variant=\"caption\" style={{ marginLeft: '1rem' }}>\n {title}\n </Typography>\n </Typography>\n </CardContent>\n </Card>\n );\n};\n\nexport const SummaryStatsGrid = (props: { stats: StatisticsResponse }) => {\n const { stats } = props;\n const { t } = useTranslation();\n return (\n <Grid container>\n <Grid item xs={4}>\n <SummaryCard\n title={t('stats.questions')}\n value={stats.summary.totalQuestions}\n />\n </Grid>\n <Grid item xs={4}>\n <SummaryCard\n title={t('stats.answers')}\n value={stats.summary.totalAnswers}\n />\n </Grid>\n <Grid item xs={4}>\n <SummaryCard\n title={t('stats.comments')}\n value={stats.summary.totalComments}\n />\n </Grid>\n <Grid item xs={4}>\n <SummaryCard\n title={t('stats.views')}\n value={stats.summary.totalViews}\n />\n </Grid>\n <Grid item xs={4}>\n <SummaryCard\n title={t('stats.votes')}\n value={stats.summary.totalVotes}\n />\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;AAMA,MAAM,WAAA,GAAc,CAAC,KAA4C,KAAA;AAC/D,EAAM,MAAA,EAAE,KAAO,EAAA,KAAA,EAAU,GAAA,KAAA,CAAA;AACzB,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAW,OAAQ,EAAA,IAAA,EAAA,EACjB,KAAS,IAAA,GAAA,GAAO,OAAQ,CAAA,KAAK,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,GAAI,KAClD,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,OAAA,EAAQ,SAAU,EAAA,KAAA,EAAO,EAAE,UAAA,EAAY,MAAO,EAAA,EAAA,EACvD,KACH,CACF,CACF,CACF,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEa,MAAA,gBAAA,GAAmB,CAAC,KAAyC,KAAA;AACxE,EAAM,MAAA,EAAE,OAAU,GAAA,KAAA,CAAA;AAClB,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA,CAAA;AAC7B,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,SAAS,EAAA,IAAA,EAAA,sCACZ,IAAK,EAAA,EAAA,IAAA,EAAI,IAAC,EAAA,EAAA,EAAI,CACb,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,iBAAiB,CAAA;AAAA,MAC1B,KAAA,EAAO,MAAM,OAAQ,CAAA,cAAA;AAAA,KAAA;AAAA,GAEzB,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,IAAI,EAAA,IAAA,EAAC,IAAI,CACb,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,eAAe,CAAA;AAAA,MACxB,KAAA,EAAO,MAAM,OAAQ,CAAA,YAAA;AAAA,KAAA;AAAA,GAEzB,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,IAAI,EAAA,IAAA,EAAC,IAAI,CACb,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,gBAAgB,CAAA;AAAA,MACzB,KAAA,EAAO,MAAM,OAAQ,CAAA,aAAA;AAAA,KAAA;AAAA,GAEzB,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,IAAI,EAAA,IAAA,EAAC,IAAI,CACb,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,aAAa,CAAA;AAAA,MACtB,KAAA,EAAO,MAAM,OAAQ,CAAA,UAAA;AAAA,KAAA;AAAA,GAEzB,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,IAAI,EAAA,IAAA,EAAC,IAAI,CACb,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,EAAE,aAAa,CAAA;AAAA,MACtB,KAAA,EAAO,MAAM,OAAQ,CAAA,UAAA;AAAA,KAAA;AAAA,GAEzB,CACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -14,7 +14,7 @@ import { FollowedTagsList } from '../QetaPage/FollowedTagsList.esm.js';
|
|
|
14
14
|
const TagPage = () => {
|
|
15
15
|
const { tag } = useParams();
|
|
16
16
|
const { t } = useTranslation();
|
|
17
|
-
return /* @__PURE__ */ React.createElement(Grid, { container: true }, /* @__PURE__ */ React.createElement(Grid, { item: true, md: 12, lg: 9, xl: 10 }, /* @__PURE__ */ React.createElement(
|
|
17
|
+
return /* @__PURE__ */ React.createElement(Grid, { container: true, spacing: 4 }, /* @__PURE__ */ React.createElement(Grid, { item: true, md: 12, lg: 9, xl: 10 }, /* @__PURE__ */ React.createElement(
|
|
18
18
|
ContentHeader,
|
|
19
19
|
{
|
|
20
20
|
title: tag ? t("tagPage.taggedWithTitle", { tag }) : t("tagPage.defaultTitle")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagPage.esm.js","sources":["../../../src/components/TagPage/TagPage.tsx"],"sourcesContent":["import React from 'react';\nimport { ContentHeader } from '@backstage/core-components';\nimport { useParams } from 'react-router-dom';\nimport { QuestionsContainer } from '../QuestionsContainer/QuestionsContainer';\nimport { TagsContainer } from './TagsContainer';\nimport { AskQuestionButton } from '../Buttons/AskQuestionButton';\nimport { useTranslation } from '../../utils/hooks';\nimport { TagFollowButton } from '../Buttons/TagFollowButton';\nimport { Grid } from '@material-ui/core';\nimport { QuestionHighlightList } from '../QuestionHighlightList/QuestionHighlightList';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport { FollowedTagsList } from '../QetaPage/FollowedTagsList';\n\nexport const TagPage = () => {\n const { tag } = useParams();\n const { t } = useTranslation();\n return (\n <Grid container>\n <Grid item md={12} lg={9} xl={10}>\n <ContentHeader\n title={\n tag\n ? t('tagPage.taggedWithTitle', { tag })\n : t('tagPage.defaultTitle')\n }\n >\n {tag && <TagFollowButton tag={tag} />}\n <AskQuestionButton tags={tag ? [tag] : undefined} />\n </ContentHeader>\n {tag ? <QuestionsContainer tags={[tag ?? '']} /> : <TagsContainer />}\n </Grid>\n <Grid item lg={3} xl={2}>\n <FollowedTagsList />\n <QuestionHighlightList\n type=\"hot\"\n title={t('highlights.hot.title')}\n noQuestionsLabel={t('highlights.hot.noQuestionsLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n options={{ tags: [tag ?? ''] }}\n />\n <QuestionHighlightList\n type=\"unanswered\"\n title={t('highlights.unanswered.title')}\n noQuestionsLabel={t('highlights.unanswered.noQuestionsLabel')}\n options={{ tags: [tag ?? ''] }}\n />\n <QuestionHighlightList\n type=\"incorrect\"\n title={t('highlights.incorrect.title')}\n noQuestionsLabel={t('highlights.incorrect.noQuestionsLabel')}\n options={{ tags: [tag ?? ''] }}\n />\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAaO,MAAM,UAAU,MAAM;AAC3B,EAAM,MAAA,EAAE,GAAI,EAAA,GAAI,SAAU,EAAA,CAAA;AAC1B,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA,CAAA;AAC7B,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,SAAS,EAAA,IAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"TagPage.esm.js","sources":["../../../src/components/TagPage/TagPage.tsx"],"sourcesContent":["import React from 'react';\nimport { ContentHeader } from '@backstage/core-components';\nimport { useParams } from 'react-router-dom';\nimport { QuestionsContainer } from '../QuestionsContainer/QuestionsContainer';\nimport { TagsContainer } from './TagsContainer';\nimport { AskQuestionButton } from '../Buttons/AskQuestionButton';\nimport { useTranslation } from '../../utils/hooks';\nimport { TagFollowButton } from '../Buttons/TagFollowButton';\nimport { Grid } from '@material-ui/core';\nimport { QuestionHighlightList } from '../QuestionHighlightList/QuestionHighlightList';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport { FollowedTagsList } from '../QetaPage/FollowedTagsList';\n\nexport const TagPage = () => {\n const { tag } = useParams();\n const { t } = useTranslation();\n return (\n <Grid container spacing={4}>\n <Grid item md={12} lg={9} xl={10}>\n <ContentHeader\n title={\n tag\n ? t('tagPage.taggedWithTitle', { tag })\n : t('tagPage.defaultTitle')\n }\n >\n {tag && <TagFollowButton tag={tag} />}\n <AskQuestionButton tags={tag ? [tag] : undefined} />\n </ContentHeader>\n {tag ? <QuestionsContainer tags={[tag ?? '']} /> : <TagsContainer />}\n </Grid>\n <Grid item lg={3} xl={2}>\n <FollowedTagsList />\n <QuestionHighlightList\n type=\"hot\"\n title={t('highlights.hot.title')}\n noQuestionsLabel={t('highlights.hot.noQuestionsLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n options={{ tags: [tag ?? ''] }}\n />\n <QuestionHighlightList\n type=\"unanswered\"\n title={t('highlights.unanswered.title')}\n noQuestionsLabel={t('highlights.unanswered.noQuestionsLabel')}\n options={{ tags: [tag ?? ''] }}\n />\n <QuestionHighlightList\n type=\"incorrect\"\n title={t('highlights.incorrect.title')}\n noQuestionsLabel={t('highlights.incorrect.noQuestionsLabel')}\n options={{ tags: [tag ?? ''] }}\n />\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAaO,MAAM,UAAU,MAAM;AAC3B,EAAM,MAAA,EAAE,GAAI,EAAA,GAAI,SAAU,EAAA,CAAA;AAC1B,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA,CAAA;AAC7B,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,SAAS,EAAA,IAAA,EAAC,SAAS,CACvB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAI,MAAC,EAAI,EAAA,EAAA,EAAI,EAAI,EAAA,CAAA,EAAG,IAAI,EAC5B,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,KAAA,EACE,MACI,CAAE,CAAA,yBAAA,EAA2B,EAAE,GAAI,EAAC,CACpC,GAAA,CAAA,CAAE,sBAAsB,CAAA;AAAA,KAAA;AAAA,IAG7B,GAAA,oBAAQ,KAAA,CAAA,aAAA,CAAA,eAAA,EAAA,EAAgB,GAAU,EAAA,CAAA;AAAA,wCAClC,iBAAkB,EAAA,EAAA,IAAA,EAAM,MAAM,CAAC,GAAG,IAAI,KAAW,CAAA,EAAA,CAAA;AAAA,GACpD,EACC,GAAM,mBAAA,KAAA,CAAA,aAAA,CAAC,kBAAmB,EAAA,EAAA,IAAA,EAAM,CAAC,GAAO,IAAA,EAAE,CAAG,EAAA,CAAA,mBAAM,KAAA,CAAA,aAAA,CAAA,aAAA,EAAA,IAAc,CACpE,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAI,IAAC,EAAA,EAAA,EAAI,GAAG,EAAI,EAAA,CAAA,EAAA,kBACnB,KAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,IAAiB,CAClB,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,KAAA;AAAA,MACL,KAAA,EAAO,EAAE,sBAAsB,CAAA;AAAA,MAC/B,gBAAA,EAAkB,EAAE,iCAAiC,CAAA;AAAA,MACrD,IAAM,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,MACjC,SAAS,EAAE,IAAA,EAAM,CAAC,GAAA,IAAO,EAAE,CAAE,EAAA;AAAA,KAAA;AAAA,GAE/B,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,YAAA;AAAA,MACL,KAAA,EAAO,EAAE,6BAA6B,CAAA;AAAA,MACtC,gBAAA,EAAkB,EAAE,wCAAwC,CAAA;AAAA,MAC5D,SAAS,EAAE,IAAA,EAAM,CAAC,GAAA,IAAO,EAAE,CAAE,EAAA;AAAA,KAAA;AAAA,GAE/B,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,WAAA;AAAA,MACL,KAAA,EAAO,EAAE,4BAA4B,CAAA;AAAA,MACrC,gBAAA,EAAkB,EAAE,uCAAuC,CAAA;AAAA,MAC3D,SAAS,EAAE,IAAA,EAAM,CAAC,GAAA,IAAO,EAAE,CAAE,EAAA;AAAA,KAAA;AAAA,GAEjC,CACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -14,8 +14,9 @@ import '@drodil/backstage-plugin-qeta-react';
|
|
|
14
14
|
import 'react-relative-time';
|
|
15
15
|
import 'lodash';
|
|
16
16
|
import '@backstage/catalog-model';
|
|
17
|
+
import '../QuestionPage/VoteButtons.esm.js';
|
|
17
18
|
import { AnswersContainer } from '../AnswersContainer/AnswersContainer.esm.js';
|
|
18
|
-
import {
|
|
19
|
+
import { UserStatsContent } from './UserStatsContent.esm.js';
|
|
19
20
|
|
|
20
21
|
const UserPage = () => {
|
|
21
22
|
const identity = useParams()["*"] ?? "unknown";
|
|
@@ -36,7 +37,7 @@ const UserPage = () => {
|
|
|
36
37
|
/* @__PURE__ */ React.createElement(Tab, { label: t("userPage.statistics"), value: "statistics" }),
|
|
37
38
|
/* @__PURE__ */ React.createElement(Tab, { label: t("userPage.questions"), value: "questions" }),
|
|
38
39
|
/* @__PURE__ */ React.createElement(Tab, { label: t("userPage.answers"), value: "answers" })
|
|
39
|
-
)), /* @__PURE__ */ React.createElement(TabPanel, { value: "statistics" }, /* @__PURE__ */ React.createElement(
|
|
40
|
+
)), /* @__PURE__ */ React.createElement(TabPanel, { value: "statistics" }, /* @__PURE__ */ React.createElement(UserStatsContent, { userRef: identity ?? "" })), /* @__PURE__ */ React.createElement(TabPanel, { value: "questions" }, /* @__PURE__ */ React.createElement(
|
|
40
41
|
QuestionsContainer,
|
|
41
42
|
{
|
|
42
43
|
author: identity ?? "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserPage.esm.js","sources":["../../../src/components/UserPage/UserPage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ContentHeader } from '@backstage/core-components';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { QuestionsContainer } from '../QuestionsContainer';\nimport { AskQuestionButton } from '../Buttons/AskQuestionButton';\nimport { Box, Tab } from '@material-ui/core';\nimport { useEntityPresentation } from '@backstage/plugin-catalog-react';\nimport { TabContext, TabList, TabPanel } from '@material-ui/lab';\nimport { AnswersContainer } from '../AnswersContainer';\nimport { useTranslation } from '../../utils/hooks';\nimport {
|
|
1
|
+
{"version":3,"file":"UserPage.esm.js","sources":["../../../src/components/UserPage/UserPage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ContentHeader } from '@backstage/core-components';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { QuestionsContainer } from '../QuestionsContainer';\nimport { AskQuestionButton } from '../Buttons/AskQuestionButton';\nimport { Box, Tab } from '@material-ui/core';\nimport { useEntityPresentation } from '@backstage/plugin-catalog-react';\nimport { TabContext, TabList, TabPanel } from '@material-ui/lab';\nimport { AnswersContainer } from '../AnswersContainer';\nimport { useTranslation } from '../../utils/hooks';\nimport { UserStatsContent } from './UserStatsContent';\n\nexport const UserPage = () => {\n const identity = useParams()['*'] ?? 'unknown';\n const presentation = useEntityPresentation(identity);\n const [tab, setTab] = useState('statistics');\n const { t } = useTranslation();\n const [_searchParams, setSearchParams] = useSearchParams();\n\n const handleChange = (_event: React.ChangeEvent<{}>, newValue: string) => {\n setSearchParams({});\n setTab(newValue);\n };\n return (\n <>\n <ContentHeader title={`${presentation.primaryTitle}`}>\n <AskQuestionButton />\n </ContentHeader>\n <TabContext value={tab}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList\n onChange={handleChange}\n aria-label={t('userPage.profileTab')}\n >\n <Tab label={t('userPage.statistics')} value=\"statistics\" />\n <Tab label={t('userPage.questions')} value=\"questions\" />\n <Tab label={t('userPage.answers')} value=\"answers\" />\n </TabList>\n </Box>\n <TabPanel value=\"statistics\">\n <UserStatsContent userRef={identity ?? ''} />\n </TabPanel>\n <TabPanel value=\"questions\">\n <QuestionsContainer\n author={identity ?? ''}\n showNoQuestionsBtn={false}\n />\n </TabPanel>\n <TabPanel value=\"answers\">\n <AnswersContainer\n author={identity ?? ''}\n title={t('userPage.answers')}\n />\n </TabPanel>\n </TabContext>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAW,MAAM;AAC5B,EAAA,MAAM,QAAW,GAAA,SAAA,EAAY,CAAA,GAAG,CAAK,IAAA,SAAA,CAAA;AACrC,EAAM,MAAA,YAAA,GAAe,sBAAsB,QAAQ,CAAA,CAAA;AACnD,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAI,SAAS,YAAY,CAAA,CAAA;AAC3C,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA,CAAA;AAC7B,EAAA,MAAM,CAAC,aAAA,EAAe,eAAe,CAAA,GAAI,eAAgB,EAAA,CAAA;AAEzD,EAAM,MAAA,YAAA,GAAe,CAAC,MAAA,EAA+B,QAAqB,KAAA;AACxE,IAAA,eAAA,CAAgB,EAAE,CAAA,CAAA;AAClB,IAAA,MAAA,CAAO,QAAQ,CAAA,CAAA;AAAA,GACjB,CAAA;AACA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBACG,KAAA,CAAA,aAAA,CAAA,aAAA,EAAA,EAAc,KAAO,EAAA,CAAA,EAAG,aAAa,YAAY,CAAA,CAAA,EAAA,kBAC/C,KAAA,CAAA,aAAA,CAAA,iBAAA,EAAA,IAAkB,CACrB,CAAA,sCACC,UAAW,EAAA,EAAA,KAAA,EAAO,GACjB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,GAAI,EAAA,EAAA,EAAA,EAAI,EAAE,YAAc,EAAA,CAAA,EAAG,WAAa,EAAA,SAAA,EACvC,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,QAAU,EAAA,YAAA;AAAA,MACV,YAAA,EAAY,EAAE,qBAAqB,CAAA;AAAA,KAAA;AAAA,wCAElC,GAAI,EAAA,EAAA,KAAA,EAAO,EAAE,qBAAqB,CAAA,EAAG,OAAM,YAAa,EAAA,CAAA;AAAA,wCACxD,GAAI,EAAA,EAAA,KAAA,EAAO,EAAE,oBAAoB,CAAA,EAAG,OAAM,WAAY,EAAA,CAAA;AAAA,wCACtD,GAAI,EAAA,EAAA,KAAA,EAAO,EAAE,kBAAkB,CAAA,EAAG,OAAM,SAAU,EAAA,CAAA;AAAA,GAEvD,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,KAAA,EAAM,gCACb,KAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,EAAiB,OAAS,EAAA,QAAA,IAAY,IAAI,CAC7C,CAAA,kBACC,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,OAAM,WACd,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,QAAQ,QAAY,IAAA,EAAA;AAAA,MACpB,kBAAoB,EAAA,KAAA;AAAA,KAAA;AAAA,GAExB,CAAA,kBACC,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,OAAM,SACd,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,QAAQ,QAAY,IAAA,EAAA;AAAA,MACpB,KAAA,EAAO,EAAE,kBAAkB,CAAA;AAAA,KAAA;AAAA,GAE/B,CACF,CACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useQetaApi } from '../../utils/hooks.esm.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Grid, Card, CardContent } from '@material-ui/core';
|
|
4
|
+
import { StatsChart } from '../Statistics/StatsChart.esm.js';
|
|
5
|
+
import { SummaryStatsGrid } from '../Statistics/SummaryStatsGrid.esm.js';
|
|
6
|
+
|
|
7
|
+
const UserStatsContent = (props) => {
|
|
8
|
+
const {
|
|
9
|
+
value: response,
|
|
10
|
+
loading,
|
|
11
|
+
error
|
|
12
|
+
} = useQetaApi((api) => api.getUserStats(props.userRef), []);
|
|
13
|
+
if (loading || error || !response) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return /* @__PURE__ */ React.createElement(Grid, { container: true }, /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(Card, null, /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(StatsChart, { data: response.statistics })))), /* @__PURE__ */ React.createElement(Grid, { item: true, xs: 12 }, /* @__PURE__ */ React.createElement(SummaryStatsGrid, { stats: response })));
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { UserStatsContent };
|
|
20
|
+
//# sourceMappingURL=UserStatsContent.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserStatsContent.esm.js","sources":["../../../src/components/UserPage/UserStatsContent.tsx"],"sourcesContent":["import { useQetaApi } from '../../utils/hooks';\nimport React from 'react';\nimport { Card, CardContent, Grid } from '@material-ui/core';\nimport { StatsChart } from '../Statistics/StatsChart';\nimport { SummaryStatsGrid } from '../Statistics/SummaryStatsGrid';\n\nexport const UserStatsContent = (props: { userRef: string }) => {\n const {\n value: response,\n loading,\n error,\n } = useQetaApi(api => api.getUserStats(props.userRef), []);\n if (loading || error || !response) {\n return null;\n }\n return (\n <Grid container>\n <Grid item xs={12}>\n <Card>\n <CardContent>\n <StatsChart data={response.statistics} />\n </CardContent>\n </Card>\n </Grid>\n <Grid item xs={12}>\n <SummaryStatsGrid stats={response} />\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;AAMa,MAAA,gBAAA,GAAmB,CAAC,KAA+B,KAAA;AAC9D,EAAM,MAAA;AAAA,IACJ,KAAO,EAAA,QAAA;AAAA,IACP,OAAA;AAAA,IACA,KAAA;AAAA,GACF,GAAI,WAAW,CAAO,GAAA,KAAA,GAAA,CAAI,aAAa,KAAM,CAAA,OAAO,CAAG,EAAA,EAAE,CAAA,CAAA;AACzD,EAAI,IAAA,OAAA,IAAW,KAAS,IAAA,CAAC,QAAU,EAAA;AACjC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,SAAS,EAAA,IAAA,EAAA,sCACZ,IAAK,EAAA,EAAA,IAAA,EAAI,IAAC,EAAA,EAAA,EAAI,sBACZ,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,IAAA,sCACE,UAAW,EAAA,EAAA,IAAA,EAAM,QAAS,CAAA,UAAA,EAAY,CACzC,CACF,CACF,CAAA,sCACC,IAAK,EAAA,EAAA,IAAA,EAAI,IAAC,EAAA,EAAA,EAAI,sBACZ,KAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,EAAiB,KAAO,EAAA,QAAA,EAAU,CACrC,CACF,CAAA,CAAA;AAEJ;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -330,7 +330,7 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
|
|
|
330
330
|
readonly "homePage.title": "Home";
|
|
331
331
|
readonly "impactCard.title": "Your impact";
|
|
332
332
|
readonly "impactCard.views": "views";
|
|
333
|
-
readonly "impactCard.contributions": "Your contributions
|
|
333
|
+
readonly "impactCard.contributions": "Your contributions helped {{lastWeek}} people this week";
|
|
334
334
|
readonly "rightMenu.followedEntities": "Followed entities";
|
|
335
335
|
readonly "rightMenu.followedTags": "Followed tags";
|
|
336
336
|
readonly "highlights.loadError": "Failed to load questions";
|
|
@@ -427,7 +427,12 @@ declare const qetaTranslationRef: _backstage_core_plugin_api_alpha.TranslationRe
|
|
|
427
427
|
readonly "userPage.answers": "Answers";
|
|
428
428
|
readonly "userPage.statistics": "Statistics";
|
|
429
429
|
readonly "userPage.profileTab": "Profile";
|
|
430
|
+
readonly "stats.questions": "Questions";
|
|
431
|
+
readonly "stats.answers": "Answers";
|
|
432
|
+
readonly "stats.views": "Views";
|
|
430
433
|
readonly "stats.noStats": "No statistics available. Check back later!";
|
|
434
|
+
readonly "stats.comments": "Comments";
|
|
435
|
+
readonly "stats.votes": "Votes";
|
|
431
436
|
readonly "tagButton.tooltip": "By following a tag, you will get notified when ever a new question with that tag is posted";
|
|
432
437
|
readonly "tagButton.follow": "Follow";
|
|
433
438
|
readonly "tagButton.unfollow": "Unfollow";
|
package/dist/translation.esm.js
CHANGED
|
@@ -128,7 +128,7 @@ const qetaTranslationRef = createTranslationRef({
|
|
|
128
128
|
impactCard: {
|
|
129
129
|
title: "Your impact",
|
|
130
130
|
views: "views",
|
|
131
|
-
contributions: "Your contributions
|
|
131
|
+
contributions: "Your contributions helped {{lastWeek}} people this week"
|
|
132
132
|
},
|
|
133
133
|
rightMenu: {
|
|
134
134
|
followedEntities: "Followed entities",
|
|
@@ -329,7 +329,12 @@ const qetaTranslationRef = createTranslationRef({
|
|
|
329
329
|
answers: "Answers"
|
|
330
330
|
},
|
|
331
331
|
stats: {
|
|
332
|
-
noStats: "No statistics available. Check back later!"
|
|
332
|
+
noStats: "No statistics available. Check back later!",
|
|
333
|
+
questions: "Questions",
|
|
334
|
+
answers: "Answers",
|
|
335
|
+
comments: "Comments",
|
|
336
|
+
votes: "Votes",
|
|
337
|
+
views: "Views"
|
|
333
338
|
},
|
|
334
339
|
tagButton: {
|
|
335
340
|
follow: "Follow",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["import {\n createTranslationRef,\n createTranslationResource,\n} from '@backstage/core-plugin-api/alpha';\n\n/** @alpha */\nexport const qetaTranslationRef = createTranslationRef({\n id: 'qeta',\n messages: {\n pluginName: 'Q&A',\n answerList: {\n errorLoading: 'Could not load answers',\n noAnswers: 'No answers',\n limitSelect: 'Answers per page',\n },\n common: {\n score: '{{score}} score',\n anonymousAuthor: 'Anonymous',\n answers_zero: 'No answers',\n answers_one: '{{count}} answer',\n answers_other: '{{count}} answers',\n views_zero: 'Viewed {{count}} times',\n views_one: 'Viewed {{count}} time',\n views_other: 'Viewed {{count}} times',\n viewsShort_zero: '0 views',\n viewsShort_one: '{{count}} view',\n viewsShort_other: '{{count}} views',\n questions_zero: 'No questions',\n questions_one: '{{count}} question',\n questions_other: '{{count}} questions',\n },\n answer: {\n questionTitle: 'Q: {{question}}',\n answeredTime: 'answered',\n },\n answerContainer: {\n title: {\n answersBy: 'Answers by',\n answersAbout: 'Answers about',\n answersTagged: `Answers tagged with {{tags}}`,\n },\n search: {\n label: 'Search for answers',\n placeholder: 'Search...',\n },\n },\n anonymousCheckbox: {\n tooltip:\n \"By enabling this, other users won't be able to see you as an author\",\n answerAnonymously: 'Answer anonymously',\n askAnonymously: 'Ask anonymously',\n },\n askForm: {\n errorPosting: 'Could not post question',\n titleInput: {\n label: 'Title',\n helperText:\n 'Write good title for your question that people can understand',\n },\n contentInput: {\n placeholder: 'Your question',\n },\n submit: {\n existingQuestion: 'Save',\n newQuestion: 'Post',\n },\n },\n answerForm: {\n errorPosting: 'Could not post answer',\n contentInput: {\n placeholder: 'Your answer',\n },\n submit: {\n existingAnswer: 'Save',\n newAnswer: 'Post',\n },\n },\n entitiesInput: {\n label: 'Entities',\n placeholder: 'Type or select entities',\n helperText: 'Add up to {{max}} entities this question relates to',\n },\n tagsInput: {\n label: 'Tags',\n placeholder: 'Type or select tags',\n helperText: 'Add up to {{max}} tags to categorize your question',\n },\n askPage: {\n title: {\n existingQuestion: 'Edit question',\n entityQuestion: 'Ask a question about {{entity}}',\n newQuestion: 'Ask a question',\n },\n },\n askQuestionButton: {\n title: 'Ask a question',\n },\n backToQuestionsButton: {\n title: 'Back',\n },\n commentList: {\n deleteLink: 'delete',\n },\n commentSection: {\n input: {\n placeholder: 'Your comment',\n },\n addComment: 'Add comment',\n post: 'Post',\n },\n deleteModal: {\n title: {\n question: 'Are you sure you want to delete this question?',\n answer: 'Are you sure you want to delete this answer?',\n },\n errorDeleting: 'Failed to delete',\n deleteButton: 'Delete',\n cancelButton: 'Cancel',\n },\n favoritePage: {\n title: 'Your favorite questions',\n },\n leftMenu: {\n home: 'Home',\n questions: 'Questions',\n profile: 'Profile',\n tags: 'Tags',\n favoriteQuestions: 'Favorites',\n statistics: 'Statistics',\n },\n homePage: {\n title: 'Home',\n },\n impactCard: {\n title: 'Your impact',\n views: 'views',\n contributions: 'Your contributions have made a difference',\n },\n rightMenu: {\n followedEntities: 'Followed entities',\n followedTags: 'Followed tags',\n },\n highlights: {\n loadError: 'Failed to load questions',\n own: {\n title: 'Your latest questions',\n noQuestionsLabel: 'No questions',\n },\n hot: {\n title: 'Hot questions',\n noQuestionsLabel: 'No questions',\n },\n unanswered: {\n title: 'Unanswered questions',\n noQuestionsLabel: 'No unanswered questions',\n },\n incorrect: {\n title: 'Questions without correct answer',\n noQuestionsLabel: 'No questions without correct answers',\n },\n },\n questionsPage: {\n title: 'All questions',\n },\n userLink: {\n anonymous: 'Anonymous',\n },\n questionPage: {\n errorLoading: 'Could not load question',\n editButton: 'Edit',\n sortAnswers: {\n label: 'Sort answers',\n default: 'Default',\n createdDesc: 'Created (desc)',\n createdAsc: 'Created (asc)',\n scoreDesc: 'Score (desc)',\n scoreAsc: 'Score (asc)',\n commentsDesc: 'Comments (desc)',\n commentsAsc: 'Comments (asc)',\n authorDesc: 'Author (desc)',\n authorAsc: 'Author (asc)',\n updatedDesc: 'Updated (desc)',\n updatedAsc: 'Updated (asc)',\n },\n },\n authorBox: {\n askedAtTime: 'asked',\n postedAtTime: 'Posted',\n updatedAtTime: 'Updated',\n updatedBy: 'by',\n },\n favorite: {\n remove: 'Remove this question from favorites',\n add: 'Mark this question as favorite',\n },\n link: {\n question: 'Copy link to this question to clipboard',\n answer: 'Copy link to this answer to clipboard',\n aria: 'Copy link to clipboard',\n },\n voteButtons: {\n answer: {\n markCorrect: 'Mark this answer correct',\n markIncorrect: 'Mark this answer incorrect',\n marked: 'This answer has been marked as correct',\n good: 'This answer is good',\n bad: 'This answer is not good',\n own: 'You cannot vote your own answer',\n },\n question: {\n good: 'This question is good',\n bad: 'This question is not good',\n own: 'You cannot vote your own question',\n },\n },\n datePicker: {\n from: 'From date',\n to: 'To date',\n invalidRange:\n \"Date range invalid, 'To date' should be greater than 'From date'\",\n range: {\n label: 'Date range',\n default: 'Select',\n last7days: 'Last 7 days',\n last30days: 'Last 30 days',\n custom: 'Custom',\n },\n },\n filterPanel: {\n filterButton: 'Filter',\n noAnswers: {\n label: 'No answers',\n },\n noCorrectAnswers: {\n label: 'No correct answers',\n },\n noVotes: {\n label: 'No votes',\n },\n orderBy: {\n label: 'Order by',\n created: 'Created',\n views: 'Views',\n score: 'Score',\n answers: 'Answers',\n updated: 'Updated',\n },\n order: {\n label: 'Order',\n asc: 'Ascending',\n desc: 'Descending',\n },\n filters: {\n label: 'Filters',\n entity: {\n label: 'Entity',\n placeholder: 'Type or select entity',\n },\n tag: {\n label: 'Tag',\n placeholder: 'Type or select tag',\n },\n },\n },\n questionList: {\n errorLoading: 'Could not load questions',\n questionsPerPage: 'Questions per page',\n },\n questionsContainer: {\n title: {\n questionsBy: 'Questions by',\n questionsAbout: 'Questions about',\n questionsTagged: `Questions tagged with {{tags}}`,\n favorite: 'Your favorite questions',\n },\n search: {\n label: 'Search for questions',\n placeholder: 'Search...',\n },\n noQuestions: 'No questions found',\n askOneButton: 'Go ahead and ask one!',\n },\n questionsTable: {\n errorLoading: 'Could not load questions',\n latest: 'Latest',\n mostViewed: 'Most viewed',\n favorites: 'Favorites',\n cells: {\n title: 'Title',\n author: 'Author',\n asked: 'Asked',\n updated: 'Last updated',\n },\n },\n statistics: {\n errorLoading: 'Could not load statistics',\n notAvailable: 'Statistics are unavailable',\n ranking: 'Ranking Q&A 🏆',\n mostQuestions: {\n title: 'Most questions',\n description: 'People who have posted most questions',\n },\n mostAnswers: {\n title: 'Most answers',\n description: 'People who have posted most answers',\n },\n topVotedQuestions: {\n title: 'Top voted questions',\n description: 'People who have the highest rated questions',\n },\n topVotedAnswers: {\n title: 'Top voted answers',\n description: 'People who have the highest rated answers',\n },\n topVotedCorrectAnswers: {\n title: 'Top voted correct answers',\n description: 'People who have the highest rated correct answers',\n },\n },\n tagPage: {\n errorLoading: 'Could not load tags',\n taggedWithTitle: 'Questions tagged with {{tag}}',\n defaultTitle: 'Tags',\n search: {\n label: 'Search tag',\n placeholder: 'Search...',\n },\n tags_zero: 'No tags',\n tags_one: 'Showing {{count}} tag',\n tags_other: 'Showing {{count}} tags',\n },\n userPage: {\n profileTab: 'Profile',\n statistics: 'Statistics',\n questions: 'Questions',\n answers: 'Answers',\n },\n stats: {\n noStats: 'No statistics available. Check back later!',\n },\n tagButton: {\n follow: 'Follow',\n unfollow: 'Unfollow',\n tooltip:\n 'By following a tag, you will get notified when ever a new question with that tag is posted',\n },\n entityButton: {\n follow: 'Follow',\n unfollow: 'Unfollow',\n tooltip:\n 'By following an entity, you will get notified when ever a new question for that entity is posted',\n },\n },\n});\n\nexport const qetaTranslations = createTranslationResource({\n ref: qetaTranslationRef,\n translations: {\n fi: () => import('./locale/fi'),\n },\n});\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"translation.esm.js","sources":["../src/translation.ts"],"sourcesContent":["import {\n createTranslationRef,\n createTranslationResource,\n} from '@backstage/core-plugin-api/alpha';\n\n/** @alpha */\nexport const qetaTranslationRef = createTranslationRef({\n id: 'qeta',\n messages: {\n pluginName: 'Q&A',\n answerList: {\n errorLoading: 'Could not load answers',\n noAnswers: 'No answers',\n limitSelect: 'Answers per page',\n },\n common: {\n score: '{{score}} score',\n anonymousAuthor: 'Anonymous',\n answers_zero: 'No answers',\n answers_one: '{{count}} answer',\n answers_other: '{{count}} answers',\n views_zero: 'Viewed {{count}} times',\n views_one: 'Viewed {{count}} time',\n views_other: 'Viewed {{count}} times',\n viewsShort_zero: '0 views',\n viewsShort_one: '{{count}} view',\n viewsShort_other: '{{count}} views',\n questions_zero: 'No questions',\n questions_one: '{{count}} question',\n questions_other: '{{count}} questions',\n },\n answer: {\n questionTitle: 'Q: {{question}}',\n answeredTime: 'answered',\n },\n answerContainer: {\n title: {\n answersBy: 'Answers by',\n answersAbout: 'Answers about',\n answersTagged: `Answers tagged with {{tags}}`,\n },\n search: {\n label: 'Search for answers',\n placeholder: 'Search...',\n },\n },\n anonymousCheckbox: {\n tooltip:\n \"By enabling this, other users won't be able to see you as an author\",\n answerAnonymously: 'Answer anonymously',\n askAnonymously: 'Ask anonymously',\n },\n askForm: {\n errorPosting: 'Could not post question',\n titleInput: {\n label: 'Title',\n helperText:\n 'Write good title for your question that people can understand',\n },\n contentInput: {\n placeholder: 'Your question',\n },\n submit: {\n existingQuestion: 'Save',\n newQuestion: 'Post',\n },\n },\n answerForm: {\n errorPosting: 'Could not post answer',\n contentInput: {\n placeholder: 'Your answer',\n },\n submit: {\n existingAnswer: 'Save',\n newAnswer: 'Post',\n },\n },\n entitiesInput: {\n label: 'Entities',\n placeholder: 'Type or select entities',\n helperText: 'Add up to {{max}} entities this question relates to',\n },\n tagsInput: {\n label: 'Tags',\n placeholder: 'Type or select tags',\n helperText: 'Add up to {{max}} tags to categorize your question',\n },\n askPage: {\n title: {\n existingQuestion: 'Edit question',\n entityQuestion: 'Ask a question about {{entity}}',\n newQuestion: 'Ask a question',\n },\n },\n askQuestionButton: {\n title: 'Ask a question',\n },\n backToQuestionsButton: {\n title: 'Back',\n },\n commentList: {\n deleteLink: 'delete',\n },\n commentSection: {\n input: {\n placeholder: 'Your comment',\n },\n addComment: 'Add comment',\n post: 'Post',\n },\n deleteModal: {\n title: {\n question: 'Are you sure you want to delete this question?',\n answer: 'Are you sure you want to delete this answer?',\n },\n errorDeleting: 'Failed to delete',\n deleteButton: 'Delete',\n cancelButton: 'Cancel',\n },\n favoritePage: {\n title: 'Your favorite questions',\n },\n leftMenu: {\n home: 'Home',\n questions: 'Questions',\n profile: 'Profile',\n tags: 'Tags',\n favoriteQuestions: 'Favorites',\n statistics: 'Statistics',\n },\n homePage: {\n title: 'Home',\n },\n impactCard: {\n title: 'Your impact',\n views: 'views',\n contributions: 'Your contributions helped {{lastWeek}} people this week',\n },\n rightMenu: {\n followedEntities: 'Followed entities',\n followedTags: 'Followed tags',\n },\n highlights: {\n loadError: 'Failed to load questions',\n own: {\n title: 'Your latest questions',\n noQuestionsLabel: 'No questions',\n },\n hot: {\n title: 'Hot questions',\n noQuestionsLabel: 'No questions',\n },\n unanswered: {\n title: 'Unanswered questions',\n noQuestionsLabel: 'No unanswered questions',\n },\n incorrect: {\n title: 'Questions without correct answer',\n noQuestionsLabel: 'No questions without correct answers',\n },\n },\n questionsPage: {\n title: 'All questions',\n },\n userLink: {\n anonymous: 'Anonymous',\n },\n questionPage: {\n errorLoading: 'Could not load question',\n editButton: 'Edit',\n sortAnswers: {\n label: 'Sort answers',\n default: 'Default',\n createdDesc: 'Created (desc)',\n createdAsc: 'Created (asc)',\n scoreDesc: 'Score (desc)',\n scoreAsc: 'Score (asc)',\n commentsDesc: 'Comments (desc)',\n commentsAsc: 'Comments (asc)',\n authorDesc: 'Author (desc)',\n authorAsc: 'Author (asc)',\n updatedDesc: 'Updated (desc)',\n updatedAsc: 'Updated (asc)',\n },\n },\n authorBox: {\n askedAtTime: 'asked',\n postedAtTime: 'Posted',\n updatedAtTime: 'Updated',\n updatedBy: 'by',\n },\n favorite: {\n remove: 'Remove this question from favorites',\n add: 'Mark this question as favorite',\n },\n link: {\n question: 'Copy link to this question to clipboard',\n answer: 'Copy link to this answer to clipboard',\n aria: 'Copy link to clipboard',\n },\n voteButtons: {\n answer: {\n markCorrect: 'Mark this answer correct',\n markIncorrect: 'Mark this answer incorrect',\n marked: 'This answer has been marked as correct',\n good: 'This answer is good',\n bad: 'This answer is not good',\n own: 'You cannot vote your own answer',\n },\n question: {\n good: 'This question is good',\n bad: 'This question is not good',\n own: 'You cannot vote your own question',\n },\n },\n datePicker: {\n from: 'From date',\n to: 'To date',\n invalidRange:\n \"Date range invalid, 'To date' should be greater than 'From date'\",\n range: {\n label: 'Date range',\n default: 'Select',\n last7days: 'Last 7 days',\n last30days: 'Last 30 days',\n custom: 'Custom',\n },\n },\n filterPanel: {\n filterButton: 'Filter',\n noAnswers: {\n label: 'No answers',\n },\n noCorrectAnswers: {\n label: 'No correct answers',\n },\n noVotes: {\n label: 'No votes',\n },\n orderBy: {\n label: 'Order by',\n created: 'Created',\n views: 'Views',\n score: 'Score',\n answers: 'Answers',\n updated: 'Updated',\n },\n order: {\n label: 'Order',\n asc: 'Ascending',\n desc: 'Descending',\n },\n filters: {\n label: 'Filters',\n entity: {\n label: 'Entity',\n placeholder: 'Type or select entity',\n },\n tag: {\n label: 'Tag',\n placeholder: 'Type or select tag',\n },\n },\n },\n questionList: {\n errorLoading: 'Could not load questions',\n questionsPerPage: 'Questions per page',\n },\n questionsContainer: {\n title: {\n questionsBy: 'Questions by',\n questionsAbout: 'Questions about',\n questionsTagged: `Questions tagged with {{tags}}`,\n favorite: 'Your favorite questions',\n },\n search: {\n label: 'Search for questions',\n placeholder: 'Search...',\n },\n noQuestions: 'No questions found',\n askOneButton: 'Go ahead and ask one!',\n },\n questionsTable: {\n errorLoading: 'Could not load questions',\n latest: 'Latest',\n mostViewed: 'Most viewed',\n favorites: 'Favorites',\n cells: {\n title: 'Title',\n author: 'Author',\n asked: 'Asked',\n updated: 'Last updated',\n },\n },\n statistics: {\n errorLoading: 'Could not load statistics',\n notAvailable: 'Statistics are unavailable',\n ranking: 'Ranking Q&A 🏆',\n mostQuestions: {\n title: 'Most questions',\n description: 'People who have posted most questions',\n },\n mostAnswers: {\n title: 'Most answers',\n description: 'People who have posted most answers',\n },\n topVotedQuestions: {\n title: 'Top voted questions',\n description: 'People who have the highest rated questions',\n },\n topVotedAnswers: {\n title: 'Top voted answers',\n description: 'People who have the highest rated answers',\n },\n topVotedCorrectAnswers: {\n title: 'Top voted correct answers',\n description: 'People who have the highest rated correct answers',\n },\n },\n tagPage: {\n errorLoading: 'Could not load tags',\n taggedWithTitle: 'Questions tagged with {{tag}}',\n defaultTitle: 'Tags',\n search: {\n label: 'Search tag',\n placeholder: 'Search...',\n },\n tags_zero: 'No tags',\n tags_one: 'Showing {{count}} tag',\n tags_other: 'Showing {{count}} tags',\n },\n userPage: {\n profileTab: 'Profile',\n statistics: 'Statistics',\n questions: 'Questions',\n answers: 'Answers',\n },\n stats: {\n noStats: 'No statistics available. Check back later!',\n questions: 'Questions',\n answers: 'Answers',\n comments: 'Comments',\n votes: 'Votes',\n views: 'Views',\n },\n tagButton: {\n follow: 'Follow',\n unfollow: 'Unfollow',\n tooltip:\n 'By following a tag, you will get notified when ever a new question with that tag is posted',\n },\n entityButton: {\n follow: 'Follow',\n unfollow: 'Unfollow',\n tooltip:\n 'By following an entity, you will get notified when ever a new question for that entity is posted',\n },\n },\n});\n\nexport const qetaTranslations = createTranslationResource({\n ref: qetaTranslationRef,\n translations: {\n fi: () => import('./locale/fi'),\n },\n});\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"frontend",
|
|
8
8
|
"backstage.io"
|
|
9
9
|
],
|
|
10
|
-
"version": "2.
|
|
10
|
+
"version": "2.15.0",
|
|
11
11
|
"main": "dist/index.esm.js",
|
|
12
12
|
"types": "dist/index.d.ts",
|
|
13
13
|
"prepublishOnly": "yarn tsc && yarn build",
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"@backstage/plugin-home-react": "^0.1.18",
|
|
58
58
|
"@backstage/plugin-permission-react": "^0.4.27",
|
|
59
59
|
"@backstage/plugin-signals-react": "^0.0.6",
|
|
60
|
-
"@drodil/backstage-plugin-qeta-common": "^2.
|
|
61
|
-
"@drodil/backstage-plugin-qeta-react": "^2.
|
|
60
|
+
"@drodil/backstage-plugin-qeta-common": "^2.15.0",
|
|
61
|
+
"@drodil/backstage-plugin-qeta-react": "^2.15.0",
|
|
62
62
|
"@material-ui/core": "^4.12.2",
|
|
63
63
|
"@material-ui/icons": "^4.11.3",
|
|
64
64
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
@@ -69,8 +69,10 @@
|
|
|
69
69
|
"lodash": "^4.17.21",
|
|
70
70
|
"numeral": "^2.0.6",
|
|
71
71
|
"react-hook-form": "^7.46.2",
|
|
72
|
+
"react-markdown": "^9.0.1",
|
|
72
73
|
"react-mde": "^11.5.0",
|
|
73
74
|
"react-relative-time": "^0.0.9",
|
|
75
|
+
"react-syntax-highlighter": "^15.6.1",
|
|
74
76
|
"react-use": "^17.4.0",
|
|
75
77
|
"recharts": "^2.13.0"
|
|
76
78
|
},
|
|
@@ -94,6 +96,7 @@
|
|
|
94
96
|
"@types/dompurify": "^3.0.0",
|
|
95
97
|
"@types/lodash": "^4.14.199",
|
|
96
98
|
"@types/numeral": "^2",
|
|
99
|
+
"@types/react-syntax-highlighter": "^15",
|
|
97
100
|
"cross-fetch": "^3.1.5"
|
|
98
101
|
},
|
|
99
102
|
"files": [
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { useQetaApi } from '../../utils/hooks.esm.js';
|
|
2
|
-
import { StatsChart } from './StatsChart.esm.js';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { Card, CardContent } from '@material-ui/core';
|
|
5
|
-
|
|
6
|
-
const GlobalStatsCard = () => {
|
|
7
|
-
const {
|
|
8
|
-
value: response,
|
|
9
|
-
loading,
|
|
10
|
-
error
|
|
11
|
-
} = useQetaApi((api) => api.getGlobalStats(), []);
|
|
12
|
-
if (loading || error || !response) {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
return /* @__PURE__ */ React.createElement(Card, null, /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(StatsChart, { data: response.statistics })));
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export { GlobalStatsCard };
|
|
19
|
-
//# sourceMappingURL=GlobalStatsCard.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalStatsCard.esm.js","sources":["../../../src/components/Statistics/GlobalStatsCard.tsx"],"sourcesContent":["import { useQetaApi } from '../../utils/hooks';\nimport { StatsChart } from './StatsChart';\nimport React from 'react';\nimport { Card, CardContent } from '@material-ui/core';\n\nexport const GlobalStatsCard = () => {\n const {\n value: response,\n loading,\n error,\n } = useQetaApi(api => api.getGlobalStats(), []);\n if (loading || error || !response) {\n return null;\n }\n return (\n <Card>\n <CardContent>\n <StatsChart data={response.statistics} />\n </CardContent>\n </Card>\n );\n};\n"],"names":[],"mappings":";;;;;AAKO,MAAM,kBAAkB,MAAM;AACnC,EAAM,MAAA;AAAA,IACJ,KAAO,EAAA,QAAA;AAAA,IACP,OAAA;AAAA,IACA,KAAA;AAAA,MACE,UAAW,CAAA,CAAA,GAAA,KAAO,IAAI,cAAe,EAAA,EAAG,EAAE,CAAA,CAAA;AAC9C,EAAI,IAAA,OAAA,IAAW,KAAS,IAAA,CAAC,QAAU,EAAA;AACjC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,IACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,WACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,cAAW,IAAM,EAAA,QAAA,CAAS,UAAY,EAAA,CACzC,CACF,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { useQetaApi } from '../../utils/hooks.esm.js';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Card, CardContent } from '@material-ui/core';
|
|
4
|
-
import { StatsChart } from '../Statistics/StatsChart.esm.js';
|
|
5
|
-
|
|
6
|
-
const UserStatsCard = (props) => {
|
|
7
|
-
const {
|
|
8
|
-
value: response,
|
|
9
|
-
loading,
|
|
10
|
-
error
|
|
11
|
-
} = useQetaApi((api) => api.getUserStats(props.userRef), []);
|
|
12
|
-
if (loading || error || !response) {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
return /* @__PURE__ */ React.createElement(Card, null, /* @__PURE__ */ React.createElement(CardContent, null, /* @__PURE__ */ React.createElement(StatsChart, { data: response.statistics })));
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export { UserStatsCard };
|
|
19
|
-
//# sourceMappingURL=UserStatsCard.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserStatsCard.esm.js","sources":["../../../src/components/UserPage/UserStatsCard.tsx"],"sourcesContent":["import { useQetaApi } from '../../utils/hooks';\nimport React from 'react';\nimport { Card, CardContent } from '@material-ui/core';\nimport { StatsChart } from '../Statistics/StatsChart';\n\nexport const UserStatsCard = (props: { userRef: string }) => {\n const {\n value: response,\n loading,\n error,\n } = useQetaApi(api => api.getUserStats(props.userRef), []);\n if (loading || error || !response) {\n return null;\n }\n return (\n <Card>\n <CardContent>\n <StatsChart data={response.statistics} />\n </CardContent>\n </Card>\n );\n};\n"],"names":[],"mappings":";;;;;AAKa,MAAA,aAAA,GAAgB,CAAC,KAA+B,KAAA;AAC3D,EAAM,MAAA;AAAA,IACJ,KAAO,EAAA,QAAA;AAAA,IACP,OAAA;AAAA,IACA,KAAA;AAAA,GACF,GAAI,WAAW,CAAO,GAAA,KAAA,GAAA,CAAI,aAAa,KAAM,CAAA,OAAO,CAAG,EAAA,EAAE,CAAA,CAAA;AACzD,EAAI,IAAA,OAAA,IAAW,KAAS,IAAA,CAAC,QAAU,EAAA;AACjC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,IACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,WACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,cAAW,IAAM,EAAA,QAAA,CAAS,UAAY,EAAA,CACzC,CACF,CAAA,CAAA;AAEJ;;;;"}
|