@drodil/backstage-plugin-qeta 3.2.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { ContentHeader } from '@backstage/core-components';
|
|
3
3
|
import { useParams, useSearchParams } from 'react-router-dom';
|
|
4
|
-
import { useTranslation, AskQuestionButton, WriteArticleButton, PostsContainer, PostsGrid, AnswersContainer } from '@drodil/backstage-plugin-qeta-react';
|
|
5
|
-
import { Box, Tab } from '@material-ui/core';
|
|
4
|
+
import { useTranslation, useIdentityApi, UserFollowButton, AskQuestionButton, WriteArticleButton, PostsContainer, PostsGrid, AnswersContainer } from '@drodil/backstage-plugin-qeta-react';
|
|
5
|
+
import { Typography, Box, Tab } from '@material-ui/core';
|
|
6
6
|
import { useEntityPresentation } from '@backstage/plugin-catalog-react';
|
|
7
7
|
import { TabContext, TabList, TabPanel } from '@material-ui/lab';
|
|
8
8
|
import { UserStatsContent } from './UserStatsContent.esm.js';
|
|
@@ -13,11 +13,17 @@ const UserPage = () => {
|
|
|
13
13
|
const [tab, setTab] = useState("statistics");
|
|
14
14
|
const { t } = useTranslation();
|
|
15
15
|
const [_searchParams, setSearchParams] = useSearchParams();
|
|
16
|
+
const {
|
|
17
|
+
value: user,
|
|
18
|
+
loading: loadingUser,
|
|
19
|
+
error: userError
|
|
20
|
+
} = useIdentityApi((api) => api.getBackstageIdentity(), []);
|
|
16
21
|
const handleChange = (_event, newValue) => {
|
|
17
22
|
setSearchParams({});
|
|
18
23
|
setTab(newValue);
|
|
19
24
|
};
|
|
20
|
-
|
|
25
|
+
const title = /* @__PURE__ */ React.createElement(Typography, { variant: "h5", component: "h2" }, presentation.primaryTitle, !loadingUser && !userError && user?.userEntityRef !== identity && /* @__PURE__ */ React.createElement(UserFollowButton, { userRef: identity }));
|
|
26
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ContentHeader, { titleComponent: title }, /* @__PURE__ */ React.createElement(AskQuestionButton, null), /* @__PURE__ */ React.createElement(WriteArticleButton, null)), /* @__PURE__ */ React.createElement(TabContext, { value: tab }, /* @__PURE__ */ React.createElement(Box, { sx: { borderBottom: 1, borderColor: "divider" } }, /* @__PURE__ */ React.createElement(
|
|
21
27
|
TabList,
|
|
22
28
|
{
|
|
23
29
|
onChange: handleChange,
|
|
@@ -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 {\n AnswersContainer,\n AskQuestionButton,\n PostsContainer,\n PostsGrid,\n useTranslation,\n WriteArticleButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Box, Tab } from '@material-ui/core';\nimport { useEntityPresentation } from '@backstage/plugin-catalog-react';\nimport { TabContext, TabList, TabPanel } from '@material-ui/lab';\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
|
|
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 {\n AnswersContainer,\n AskQuestionButton,\n PostsContainer,\n PostsGrid,\n useIdentityApi,\n UserFollowButton,\n useTranslation,\n WriteArticleButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Box, Tab, Typography } from '@material-ui/core';\nimport { useEntityPresentation } from '@backstage/plugin-catalog-react';\nimport { TabContext, TabList, TabPanel } from '@material-ui/lab';\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 const {\n value: user,\n loading: loadingUser,\n error: userError,\n } = useIdentityApi(api => api.getBackstageIdentity(), []);\n\n const handleChange = (_event: React.ChangeEvent<{}>, newValue: string) => {\n setSearchParams({});\n setTab(newValue);\n };\n const title = (\n <Typography variant=\"h5\" component=\"h2\">\n {presentation.primaryTitle}\n {!loadingUser && !userError && user?.userEntityRef !== identity && (\n <UserFollowButton userRef={identity} />\n )}\n </Typography>\n );\n\n return (\n <>\n <ContentHeader titleComponent={title}>\n <AskQuestionButton />\n <WriteArticleButton />\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.articles')} value=\"articles\" />\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 <PostsContainer\n author={identity ?? ''}\n showNoQuestionsBtn={false}\n type=\"question\"\n />\n </TabPanel>\n <TabPanel value=\"articles\">\n <PostsGrid author={identity ?? ''} type=\"article\" />\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":"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"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"frontend",
|
|
8
8
|
"backstage.io"
|
|
9
9
|
],
|
|
10
|
-
"version": "3.
|
|
10
|
+
"version": "3.3.0",
|
|
11
11
|
"main": "dist/index.esm.js",
|
|
12
12
|
"types": "dist/index.d.ts",
|
|
13
13
|
"prepublishOnly": "yarn tsc && yarn build",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"@backstage/plugin-catalog-react": "^1.14.0",
|
|
54
54
|
"@backstage/plugin-home-react": "^0.1.18",
|
|
55
55
|
"@backstage/plugin-signals-react": "^0.0.6",
|
|
56
|
-
"@drodil/backstage-plugin-qeta-common": "^3.
|
|
57
|
-
"@drodil/backstage-plugin-qeta-react": "^3.
|
|
56
|
+
"@drodil/backstage-plugin-qeta-common": "^3.3.0",
|
|
57
|
+
"@drodil/backstage-plugin-qeta-react": "^3.3.0",
|
|
58
58
|
"@material-ui/core": "^4.12.2",
|
|
59
59
|
"@material-ui/icons": "^4.11.3",
|
|
60
60
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"react-markdown": "8.0.7"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
|
-
"@backstage/cli": "^0.28.
|
|
73
|
+
"@backstage/cli": "^0.28.1",
|
|
74
74
|
"@backstage/dev-utils": "^1.1.2",
|
|
75
75
|
"@backstage/plugin-catalog": "^1.24.0",
|
|
76
76
|
"@backstage/plugin-home": "^0.8.0",
|