@drodil/backstage-plugin-qeta 3.59.9 → 3.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/config.schema.json +210 -0
  2. package/dist/components/ArticlePage/ArticlePage.esm.js +5 -1
  3. package/dist/components/ArticlePage/ArticlePage.esm.js.map +1 -1
  4. package/dist/components/ArticlesPage/ArticlesPage.esm.js +5 -1
  5. package/dist/components/ArticlesPage/ArticlesPage.esm.js.map +1 -1
  6. package/dist/components/AskPage/AskPage.esm.js +5 -1
  7. package/dist/components/AskPage/AskPage.esm.js.map +1 -1
  8. package/dist/components/CollectionCreatePage/CollectionCreatePage.esm.js +5 -1
  9. package/dist/components/CollectionCreatePage/CollectionCreatePage.esm.js.map +1 -1
  10. package/dist/components/CollectionPage/CollectionPage.esm.js +5 -1
  11. package/dist/components/CollectionPage/CollectionPage.esm.js.map +1 -1
  12. package/dist/components/CollectionsPage/CollectionsPage.esm.js +5 -1
  13. package/dist/components/CollectionsPage/CollectionsPage.esm.js.map +1 -1
  14. package/dist/components/CreateLinkPage/CreateLinkPage.esm.js +5 -1
  15. package/dist/components/CreateLinkPage/CreateLinkPage.esm.js.map +1 -1
  16. package/dist/components/EntityPage/EntityPage.esm.js +9 -1
  17. package/dist/components/EntityPage/EntityPage.esm.js.map +1 -1
  18. package/dist/components/HomePage/HomePage.esm.js +7 -4
  19. package/dist/components/HomePage/HomePage.esm.js.map +1 -1
  20. package/dist/components/LinkPage/LinkPage.esm.js +5 -1
  21. package/dist/components/LinkPage/LinkPage.esm.js.map +1 -1
  22. package/dist/components/LinksPage/LinksPage.esm.js +5 -1
  23. package/dist/components/LinksPage/LinksPage.esm.js.map +1 -1
  24. package/dist/components/QetaPage/QetaPage.esm.js +131 -100
  25. package/dist/components/QetaPage/QetaPage.esm.js.map +1 -1
  26. package/dist/components/QuestionPage/QuestionPage.esm.js +5 -1
  27. package/dist/components/QuestionPage/QuestionPage.esm.js.map +1 -1
  28. package/dist/components/QuestionsPage/QuestionsPage.esm.js +5 -1
  29. package/dist/components/QuestionsPage/QuestionsPage.esm.js.map +1 -1
  30. package/dist/components/RightContent/RightContent.esm.js +10 -9
  31. package/dist/components/RightContent/RightContent.esm.js.map +1 -1
  32. package/dist/components/Statistics/StatisticsPage.esm.js +10 -4
  33. package/dist/components/Statistics/StatisticsPage.esm.js.map +1 -1
  34. package/dist/components/TagPage/TagPage.esm.js +5 -1
  35. package/dist/components/TagPage/TagPage.esm.js.map +1 -1
  36. package/dist/components/UserPage/UserPage.esm.js +111 -88
  37. package/dist/components/UserPage/UserPage.esm.js.map +1 -1
  38. package/dist/components/WritePage/WritePage.esm.js +5 -1
  39. package/dist/components/WritePage/WritePage.esm.js.map +1 -1
  40. package/dist/package.json.esm.js +2 -2
  41. package/package.json +26 -26
  42. package/configSchema.d.ts +0 -147
@@ -1,5 +1,5 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
- import { qetaTranslationRef, ContentHeader, AskQuestionButton, WriteArticleButton, CreateLinkButton, SuggestionsCard, FollowedItemsCard, ImpactCard, CommunityActivityCard, Timeline } from '@drodil/backstage-plugin-qeta-react';
2
+ import { qetaTranslationRef, useQetaConfig, ContentHeader, AskQuestionButton, WriteArticleButton, CreateLinkButton, SuggestionsCard, FollowedItemsCard, ImpactCard, CommunityActivityCard, Timeline } from '@drodil/backstage-plugin-qeta-react';
3
3
  import { Box, makeStyles } from '@material-ui/core';
4
4
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
5
5
  import HomeOutlined from '@material-ui/icons/HomeOutlined';
@@ -51,6 +51,9 @@ const useStyles = makeStyles((theme) => ({
51
51
  const HomePage = () => {
52
52
  const classes = useStyles();
53
53
  const { t } = useTranslationRef(qetaTranslationRef);
54
+ const { disabled } = useQetaConfig();
55
+ const showSuggestions = !disabled.questions || !disabled.articles || !disabled.links;
56
+ const showFollowed = !disabled.tags || !disabled.entities || !disabled.collections;
54
57
  return /* @__PURE__ */ jsxs(Fragment, { children: [
55
58
  /* @__PURE__ */ jsxs(
56
59
  ContentHeader,
@@ -64,9 +67,9 @@ const HomePage = () => {
64
67
  ]
65
68
  }
66
69
  ),
67
- /* @__PURE__ */ jsxs(Box, { className: classes.flexRow, children: [
68
- /* @__PURE__ */ jsx(Box, { className: classes.suggestionColumn, children: /* @__PURE__ */ jsx(SuggestionsCard, {}) }),
69
- /* @__PURE__ */ jsx(Box, { className: classes.followedColumn, children: /* @__PURE__ */ jsx(FollowedItemsCard, {}) })
70
+ (showSuggestions || showFollowed) && /* @__PURE__ */ jsxs(Box, { className: classes.flexRow, children: [
71
+ showSuggestions && /* @__PURE__ */ jsx(Box, { className: classes.suggestionColumn, children: /* @__PURE__ */ jsx(SuggestionsCard, {}) }),
72
+ showFollowed && /* @__PURE__ */ jsx(Box, { className: classes.followedColumn, children: /* @__PURE__ */ jsx(FollowedItemsCard, {}) })
70
73
  ] }),
71
74
  /* @__PURE__ */ jsxs(Box, { className: classes.flexRow, children: [
72
75
  /* @__PURE__ */ jsx(Box, { className: classes.equalColumn, children: /* @__PURE__ */ jsx(ImpactCard, {}) }),
@@ -1 +1 @@
1
- {"version":3,"file":"HomePage.esm.js","sources":["../../../src/components/HomePage/HomePage.tsx"],"sourcesContent":["import {\n AskQuestionButton,\n ContentHeader,\n CreateLinkButton,\n ImpactCard,\n qetaTranslationRef,\n SuggestionsCard,\n WriteArticleButton,\n Timeline,\n CommunityActivityCard,\n FollowedItemsCard,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Box, makeStyles } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport HomeOutlined from '@material-ui/icons/HomeOutlined';\n\nconst useStyles = makeStyles(theme => ({\n flexRow: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n width: '100%',\n marginBottom: theme.spacing(2),\n alignItems: 'stretch',\n },\n suggestionColumn: {\n flex: '3 1 350px',\n display: 'flex',\n minWidth: 0,\n '& > *': {\n flex: 1,\n maxHeight: 460,\n overflowY: 'auto',\n },\n },\n followedColumn: {\n flex: '1 1 250px',\n display: 'flex',\n minWidth: 0,\n '& > *': {\n flex: 1,\n maxHeight: 460,\n overflowY: 'auto',\n },\n },\n equalColumn: {\n flex: '1 1 395px',\n display: 'flex',\n minWidth: 0,\n '& > *': {\n flex: 1,\n maxHeight: 460,\n overflowY: 'auto',\n },\n },\n timelineWrapper: {\n width: '100%',\n marginTop: theme.spacing(2),\n },\n}));\n\nexport const HomePage = () => {\n const classes = useStyles();\n const { t } = useTranslationRef(qetaTranslationRef);\n\n return (\n <>\n <ContentHeader\n title={t('homePage.title')}\n titleIcon={<HomeOutlined fontSize=\"large\" />}\n >\n <AskQuestionButton />\n <WriteArticleButton />\n <CreateLinkButton />\n </ContentHeader>\n\n <Box className={classes.flexRow}>\n <Box className={classes.suggestionColumn}>\n <SuggestionsCard />\n </Box>\n <Box className={classes.followedColumn}>\n <FollowedItemsCard />\n </Box>\n </Box>\n\n <Box className={classes.flexRow}>\n <Box className={classes.equalColumn}>\n <ImpactCard />\n </Box>\n <Box className={classes.equalColumn}>\n <CommunityActivityCard />\n </Box>\n </Box>\n\n <Box className={classes.timelineWrapper}>\n <Timeline />\n </Box>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HomePage.esm.js","sources":["../../../src/components/HomePage/HomePage.tsx"],"sourcesContent":["import {\n AskQuestionButton,\n ContentHeader,\n CreateLinkButton,\n ImpactCard,\n qetaTranslationRef,\n SuggestionsCard,\n WriteArticleButton,\n Timeline,\n CommunityActivityCard,\n FollowedItemsCard,\n useQetaConfig,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Box, makeStyles } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport HomeOutlined from '@material-ui/icons/HomeOutlined';\n\nconst useStyles = makeStyles(theme => ({\n flexRow: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n width: '100%',\n marginBottom: theme.spacing(2),\n alignItems: 'stretch',\n },\n suggestionColumn: {\n flex: '3 1 350px',\n display: 'flex',\n minWidth: 0,\n '& > *': {\n flex: 1,\n maxHeight: 460,\n overflowY: 'auto',\n },\n },\n followedColumn: {\n flex: '1 1 250px',\n display: 'flex',\n minWidth: 0,\n '& > *': {\n flex: 1,\n maxHeight: 460,\n overflowY: 'auto',\n },\n },\n equalColumn: {\n flex: '1 1 395px',\n display: 'flex',\n minWidth: 0,\n '& > *': {\n flex: 1,\n maxHeight: 460,\n overflowY: 'auto',\n },\n },\n timelineWrapper: {\n width: '100%',\n marginTop: theme.spacing(2),\n },\n}));\n\nexport const HomePage = () => {\n const classes = useStyles();\n const { t } = useTranslationRef(qetaTranslationRef);\n const { disabled } = useQetaConfig();\n\n const showSuggestions =\n !disabled.questions || !disabled.articles || !disabled.links;\n const showFollowed =\n !disabled.tags || !disabled.entities || !disabled.collections;\n\n return (\n <>\n <ContentHeader\n title={t('homePage.title')}\n titleIcon={<HomeOutlined fontSize=\"large\" />}\n >\n <AskQuestionButton />\n <WriteArticleButton />\n <CreateLinkButton />\n </ContentHeader>\n\n {(showSuggestions || showFollowed) && (\n <Box className={classes.flexRow}>\n {showSuggestions && (\n <Box className={classes.suggestionColumn}>\n <SuggestionsCard />\n </Box>\n )}\n {showFollowed && (\n <Box className={classes.followedColumn}>\n <FollowedItemsCard />\n </Box>\n )}\n </Box>\n )}\n\n <Box className={classes.flexRow}>\n <Box className={classes.equalColumn}>\n <ImpactCard />\n </Box>\n <Box className={classes.equalColumn}>\n <CommunityActivityCard />\n </Box>\n </Box>\n\n <Box className={classes.timelineWrapper}>\n <Timeline />\n </Box>\n </>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useParams } from 'react-router-dom';
3
3
  import { useState, useEffect } from 'react';
4
4
  import { useSignal } from '@backstage/plugin-signals-react';
5
5
  import { WarningPanel } from '@backstage/core-components';
6
- import { qetaApiRef, qetaTranslationRef, useQetaApi, ContentHeader, PostHistoryButton, FollowPostButton, CreateLinkButton, AddToCollectionButton, FaviconItem, DraftBanner, DeletedBanner, LinkCard, RelativeTimeWithTooltip, UpdatedByLink } from '@drodil/backstage-plugin-qeta-react';
6
+ import { qetaApiRef, qetaTranslationRef, useQetaConfig, useQetaApi, ContentHeader, PostHistoryButton, FollowPostButton, CreateLinkButton, AddToCollectionButton, FaviconItem, DraftBanner, DeletedBanner, LinkCard, RelativeTimeWithTooltip, UpdatedByLink } from '@drodil/backstage-plugin-qeta-react';
7
7
  import { Skeleton } from '@material-ui/lab';
8
8
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
9
9
  import { makeStyles, Box } from '@material-ui/core';
@@ -22,6 +22,7 @@ const LinkPage = () => {
22
22
  const { id } = useParams();
23
23
  const qetaApi = useApi(qetaApiRef);
24
24
  const { t } = useTranslationRef(qetaTranslationRef);
25
+ const { disabled } = useQetaConfig();
25
26
  const dStyles = useDescriptionStyles();
26
27
  const [score, setScore] = useState(0);
27
28
  const { lastSignal } = useSignal(`qeta:post_${id}`);
@@ -41,6 +42,9 @@ const LinkPage = () => {
41
42
  setScore(lastSignal.score);
42
43
  }
43
44
  }, [lastSignal]);
45
+ if (disabled.links) {
46
+ return null;
47
+ }
44
48
  if (loading) {
45
49
  return /* @__PURE__ */ jsx(Skeleton, { variant: "rect", height: 200 });
46
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LinkPage.esm.js","sources":["../../../src/components/LinkPage/LinkPage.tsx"],"sourcesContent":["import { useParams } from 'react-router-dom';\nimport { useEffect, useState } from 'react';\nimport { useSignal } from '@backstage/plugin-signals-react';\nimport { WarningPanel } from '@backstage/core-components';\nimport { PostResponse, QetaSignal } from '@drodil/backstage-plugin-qeta-common';\nimport {\n AddToCollectionButton,\n ContentHeader,\n CreateLinkButton,\n DeletedBanner,\n DraftBanner,\n LinkCard,\n PostHistoryButton,\n qetaTranslationRef,\n RelativeTimeWithTooltip,\n UpdatedByLink,\n useQetaApi,\n FaviconItem,\n qetaApiRef,\n FollowPostButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Skeleton } from '@material-ui/lab';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Box, makeStyles } from '@material-ui/core';\nimport { useApi } from '@backstage/core-plugin-api';\n\nconst useDescriptionStyles = makeStyles(\n () => ({\n root: {},\n box: {\n display: 'inline',\n },\n }),\n { name: 'QetaDescription' },\n);\n\nexport const LinkPage = () => {\n const { id } = useParams();\n const qetaApi = useApi(qetaApiRef);\n const { t } = useTranslationRef(qetaTranslationRef);\n const dStyles = useDescriptionStyles();\n const [score, setScore] = useState(0);\n const { lastSignal } = useSignal<QetaSignal>(`qeta:post_${id}`);\n\n const {\n value: post,\n loading,\n error,\n retry,\n } = useQetaApi(api => api.getPost(id), [id]);\n\n useEffect(() => {\n if (post) {\n setScore(post.score);\n }\n }, [post]);\n\n useEffect(() => {\n if (lastSignal?.type === 'post_stats') {\n setScore(lastSignal.score);\n }\n }, [lastSignal]);\n\n if (loading) {\n return <Skeleton variant=\"rect\" height={200} />;\n }\n\n if (error || post === undefined) {\n return (\n <WarningPanel severity=\"error\" title={t('linkPage.errorLoading')}>\n {error?.message}\n </WarningPanel>\n );\n }\n\n if (post.type !== 'link') {\n return <WarningPanel title=\"Not found\" message={t('linkPage.notFound')} />;\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 <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 )}\n <Box fontWeight=\"fontWeightMedium\" className={dStyles.box}>\n {t('common.clicksCount', { count: score })}\n </Box>\n </span>\n );\n };\n\n return (\n <>\n <ContentHeader\n title={\n post.url ? (\n <a\n href={post.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ color: 'inherit', textDecoration: 'none' }}\n data-testid=\"link-title\"\n onClick={event => {\n event.stopPropagation();\n qetaApi.clickLink(post.id);\n }}\n >\n {post.title}\n </a>\n ) : (\n post.title\n )\n }\n titleIcon={post.url ? <FaviconItem entity={post} /> : undefined}\n description={getDescription(post)}\n >\n <PostHistoryButton post={post} onRestore={retry} />\n <FollowPostButton post={post} />\n <CreateLinkButton />\n <AddToCollectionButton post={post} />\n </ContentHeader>\n {post.status === 'draft' && <DraftBanner />}\n {post.status === 'deleted' && <DeletedBanner />}\n <LinkCard link={post} />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinkPage.esm.js","sources":["../../../src/components/LinkPage/LinkPage.tsx"],"sourcesContent":["import { useParams } from 'react-router-dom';\nimport { useEffect, useState } from 'react';\nimport { useSignal } from '@backstage/plugin-signals-react';\nimport { WarningPanel } from '@backstage/core-components';\nimport { PostResponse, QetaSignal } from '@drodil/backstage-plugin-qeta-common';\nimport {\n AddToCollectionButton,\n ContentHeader,\n CreateLinkButton,\n DeletedBanner,\n DraftBanner,\n LinkCard,\n PostHistoryButton,\n qetaTranslationRef,\n RelativeTimeWithTooltip,\n UpdatedByLink,\n useQetaApi,\n FaviconItem,\n qetaApiRef,\n FollowPostButton,\n useQetaConfig,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Skeleton } from '@material-ui/lab';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Box, makeStyles } from '@material-ui/core';\nimport { useApi } from '@backstage/core-plugin-api';\n\nconst useDescriptionStyles = makeStyles(\n () => ({\n root: {},\n box: {\n display: 'inline',\n },\n }),\n { name: 'QetaDescription' },\n);\n\nexport const LinkPage = () => {\n const { id } = useParams();\n const qetaApi = useApi(qetaApiRef);\n const { t } = useTranslationRef(qetaTranslationRef);\n const { disabled } = useQetaConfig();\n const dStyles = useDescriptionStyles();\n const [score, setScore] = useState(0);\n const { lastSignal } = useSignal<QetaSignal>(`qeta:post_${id}`);\n\n const {\n value: post,\n loading,\n error,\n retry,\n } = useQetaApi(api => api.getPost(id), [id]);\n\n useEffect(() => {\n if (post) {\n setScore(post.score);\n }\n }, [post]);\n\n useEffect(() => {\n if (lastSignal?.type === 'post_stats') {\n setScore(lastSignal.score);\n }\n }, [lastSignal]);\n\n if (disabled.links) {\n return null;\n }\n\n if (loading) {\n return <Skeleton variant=\"rect\" height={200} />;\n }\n\n if (error || post === undefined) {\n return (\n <WarningPanel severity=\"error\" title={t('linkPage.errorLoading')}>\n {error?.message}\n </WarningPanel>\n );\n }\n\n if (post.type !== 'link') {\n return <WarningPanel title=\"Not found\" message={t('linkPage.notFound')} />;\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 <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 )}\n <Box fontWeight=\"fontWeightMedium\" className={dStyles.box}>\n {t('common.clicksCount', { count: score })}\n </Box>\n </span>\n );\n };\n\n return (\n <>\n <ContentHeader\n title={\n post.url ? (\n <a\n href={post.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{ color: 'inherit', textDecoration: 'none' }}\n data-testid=\"link-title\"\n onClick={event => {\n event.stopPropagation();\n qetaApi.clickLink(post.id);\n }}\n >\n {post.title}\n </a>\n ) : (\n post.title\n )\n }\n titleIcon={post.url ? <FaviconItem entity={post} /> : undefined}\n description={getDescription(post)}\n >\n <PostHistoryButton post={post} onRestore={retry} />\n <FollowPostButton post={post} />\n <CreateLinkButton />\n <AddToCollectionButton post={post} />\n </ContentHeader>\n {post.status === 'draft' && <DraftBanner />}\n {post.status === 'deleted' && <DeletedBanner />}\n <LinkCard link={post} />\n </>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
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, ContentHeader, CreateLinkButton, PostsContainer } from '@drodil/backstage-plugin-qeta-react';
4
+ import { qetaTranslationRef, useQetaConfig, ContentHeader, CreateLinkButton, PostsContainer } from '@drodil/backstage-plugin-qeta-react';
5
5
  import { filterTags } from '@drodil/backstage-plugin-qeta-common';
6
6
  import LinkIcon from '@material-ui/icons/Link';
7
7
  import { Typography } from '@material-ui/core';
@@ -12,10 +12,14 @@ const LinksPage = () => {
12
12
  const [entityRef, setEntityRef] = useState(void 0);
13
13
  const [tags, setTags] = useState(void 0);
14
14
  const { t } = useTranslationRef(qetaTranslationRef);
15
+ const { disabled } = useQetaConfig();
15
16
  useEffect(() => {
16
17
  setEntityRef(searchParams.get("entity") ?? void 0);
17
18
  setTags(filterTags(searchParams.get("tags")));
18
19
  }, [searchParams, setEntityRef]);
20
+ if (disabled.links) {
21
+ return null;
22
+ }
19
23
  return /* @__PURE__ */ jsxs(Fragment, { children: [
20
24
  /* @__PURE__ */ jsx(
21
25
  ContentHeader,
@@ -1 +1 @@
1
- {"version":3,"file":"LinksPage.esm.js","sources":["../../../src/components/LinksPage/LinksPage.tsx"],"sourcesContent":["import { useSearchParams } from 'react-router-dom';\nimport { useEffect, useState } from 'react';\nimport {\n ContentHeader,\n CreateLinkButton,\n PostsContainer,\n qetaTranslationRef,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { filterTags } from '@drodil/backstage-plugin-qeta-common';\nimport LinkIcon from '@material-ui/icons/Link';\nimport { Typography } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const LinksPage = () => {\n const [searchParams] = useSearchParams();\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 titleComponent={\n <Typography\n variant=\"h4\"\n style={{ display: 'flex', alignItems: 'center' }}\n >\n <LinkIcon fontSize=\"large\" style={{ marginRight: '8px' }} />\n {t('linksPage.title')}\n </Typography>\n }\n >\n <CreateLinkButton entity={entityRef} tags={tags} />\n </ContentHeader>\n <PostsContainer type=\"link\" defaultView=\"list\" />\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAaO,MAAM,YAAY,MAAM;AAC7B,EAAA,MAAM,CAAC,YAAY,CAAA,GAAI,eAAA,EAAgB;AAEvC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAA6B,MAAS,CAAA;AACxE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA+B,MAAS,CAAA;AAChE,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,YAAA,CAAa,YAAA,CAAa,GAAA,CAAI,QAAQ,CAAA,IAAK,MAAS,CAAA;AACpD,IAAA,OAAA,CAAQ,UAAA,CAAW,YAAA,CAAa,GAAA,CAAI,MAAM,CAAC,CAAC,CAAA;AAAA,EAC9C,CAAA,EAAG,CAAC,YAAA,EAAc,YAAY,CAAC,CAAA;AAE/B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,cAAA,kBACE,IAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,IAAA;AAAA,YACR,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAS;AAAA,YAE/C,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,YAAS,QAAA,EAAS,OAAA,EAAQ,OAAO,EAAE,WAAA,EAAa,OAAM,EAAG,CAAA;AAAA,cACzD,EAAE,iBAAiB;AAAA;AAAA;AAAA,SACtB;AAAA,QAGF,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,MAAA,EAAQ,SAAA,EAAW,IAAA,EAAY;AAAA;AAAA,KACnD;AAAA,oBACA,GAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EAAK,MAAA,EAAO,aAAY,MAAA,EAAO;AAAA,GAAA,EACjD,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"LinksPage.esm.js","sources":["../../../src/components/LinksPage/LinksPage.tsx"],"sourcesContent":["import { useSearchParams } from 'react-router-dom';\nimport { useEffect, useState } from 'react';\nimport {\n ContentHeader,\n CreateLinkButton,\n PostsContainer,\n qetaTranslationRef,\n useQetaConfig,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { filterTags } from '@drodil/backstage-plugin-qeta-common';\nimport LinkIcon from '@material-ui/icons/Link';\nimport { Typography } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const LinksPage = () => {\n const [searchParams] = useSearchParams();\n\n const [entityRef, setEntityRef] = useState<string | undefined>(undefined);\n const [tags, setTags] = useState<string[] | undefined>(undefined);\n const { t } = useTranslationRef(qetaTranslationRef);\n const { disabled } = useQetaConfig();\n\n useEffect(() => {\n setEntityRef(searchParams.get('entity') ?? undefined);\n setTags(filterTags(searchParams.get('tags')));\n }, [searchParams, setEntityRef]);\n\n if (disabled.links) {\n return null;\n }\n\n return (\n <>\n <ContentHeader\n titleComponent={\n <Typography\n variant=\"h4\"\n style={{ display: 'flex', alignItems: 'center' }}\n >\n <LinkIcon fontSize=\"large\" style={{ marginRight: '8px' }} />\n {t('linksPage.title')}\n </Typography>\n }\n >\n <CreateLinkButton entity={entityRef} tags={tags} />\n </ContentHeader>\n <PostsContainer type=\"link\" defaultView=\"list\" />\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAcO,MAAM,YAAY,MAAM;AAC7B,EAAA,MAAM,CAAC,YAAY,CAAA,GAAI,eAAA,EAAgB;AAEvC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAA6B,MAAS,CAAA;AACxE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA+B,MAAS,CAAA;AAChE,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,MAAM,EAAE,QAAA,EAAS,GAAI,aAAA,EAAc;AAEnC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,YAAA,CAAa,YAAA,CAAa,GAAA,CAAI,QAAQ,CAAA,IAAK,MAAS,CAAA;AACpD,IAAA,OAAA,CAAQ,UAAA,CAAW,YAAA,CAAa,GAAA,CAAI,MAAM,CAAC,CAAC,CAAA;AAAA,EAC9C,CAAA,EAAG,CAAC,YAAA,EAAc,YAAY,CAAC,CAAA;AAE/B,EAAA,IAAI,SAAS,KAAA,EAAO;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,cAAA,kBACE,IAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAQ,IAAA;AAAA,YACR,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,YAAY,QAAA,EAAS;AAAA,YAE/C,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,YAAS,QAAA,EAAS,OAAA,EAAQ,OAAO,EAAE,WAAA,EAAa,OAAM,EAAG,CAAA;AAAA,cACzD,EAAE,iBAAiB;AAAA;AAAA;AAAA,SACtB;AAAA,QAGF,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,MAAA,EAAQ,SAAA,EAAW,IAAA,EAAY;AAAA;AAAA,KACnD;AAAA,oBACA,GAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EAAK,MAAA,EAAO,aAAY,MAAA,EAAO;AAAA,GAAA,EACjD,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
2
  import { Fragment } from 'react';
3
3
  import { Page, Header, Content } from '@backstage/core-components';
4
4
  import { useLocation, Routes, Route } from 'react-router-dom';
@@ -8,7 +8,7 @@ import { TagPage } from '../TagPage/TagPage.esm.js';
8
8
  import { UserPage } from '../UserPage/UserPage.esm.js';
9
9
  import { FavoritePage } from '../FavoritePage/FavoritePage.esm.js';
10
10
  import { StatisticsPage } from '../Statistics/StatisticsPage.esm.js';
11
- import { QetaProvider, LeftMenuButton, LeftMenu, questionsRouteRef, askRouteRef, articlesRouteRef, writeRouteRef, linksRouteRef, createLinkRouteRef, favoriteQuestionsRouteRef, editQuestionRouteRef, editArticleRouteRef, editLinkRouteRef, questionRouteRef, linkRouteRef, articleRouteRef, tagsRouteRef, tagRouteRef, usersRouteRef, userRouteRef, statisticsRouteRef, collectionsRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, entitiesRouteRef, entityRouteRef, moderatorRouteRef, reviewRouteRef, settingsRouteRef } from '@drodil/backstage-plugin-qeta-react';
11
+ import { useQetaConfig, QetaProvider, LeftMenuButton, LeftMenu, questionsRouteRef, askRouteRef, editQuestionRouteRef, questionRouteRef, articlesRouteRef, writeRouteRef, editArticleRouteRef, articleRouteRef, linksRouteRef, createLinkRouteRef, editLinkRouteRef, linkRouteRef, favoriteQuestionsRouteRef, tagsRouteRef, tagRouteRef, usersRouteRef, userRouteRef, statisticsRouteRef, collectionsRouteRef, collectionCreateRouteRef, collectionEditRouteRef, collectionRouteRef, entitiesRouteRef, entityRouteRef, moderatorRouteRef, reviewRouteRef, settingsRouteRef } from '@drodil/backstage-plugin-qeta-react';
12
12
  import { QuestionsPage } from '../QuestionsPage/QuestionsPage.esm.js';
13
13
  import { HomePage } from '../HomePage/HomePage.esm.js';
14
14
  import { ArticlesPage } from '../ArticlesPage/ArticlesPage.esm.js';
@@ -105,6 +105,7 @@ const QetaPage = (props) => {
105
105
  rehypePlugins
106
106
  } = props ?? {};
107
107
  const { leftCompact, rightCompact, toggleLeft, toggleRight } = useSidebarSettings();
108
+ const { disabled } = useQetaConfig();
108
109
  const location = useLocation();
109
110
  const hideRightSidebar = location.pathname.includes("/review") || location.pathname.includes("/moderate");
110
111
  const classes = useStyles({
@@ -139,30 +140,84 @@ const QetaPage = (props) => {
139
140
  ] }),
140
141
  /* @__PURE__ */ jsx(Grid, { item: true, xs: true, className: classes.mainColumn, children: /* @__PURE__ */ jsxs(Routes, { children: [
141
142
  /* @__PURE__ */ jsx(Route, { path: "/", element: /* @__PURE__ */ jsx(HomePage, {}) }),
142
- /* @__PURE__ */ jsx(
143
- Route,
144
- {
145
- path: questionsRouteRef.path,
146
- element: /* @__PURE__ */ jsx(QuestionsPage, {})
147
- }
148
- ),
149
- /* @__PURE__ */ jsx(Route, { path: askRouteRef.path, element: /* @__PURE__ */ jsx(AskPage, {}) }),
150
- /* @__PURE__ */ jsx(
151
- Route,
152
- {
153
- path: articlesRouteRef.path,
154
- element: /* @__PURE__ */ jsx(ArticlesPage, {})
155
- }
156
- ),
157
- /* @__PURE__ */ jsx(Route, { path: writeRouteRef.path, element: /* @__PURE__ */ jsx(WritePage, {}) }),
158
- /* @__PURE__ */ jsx(Route, { path: linksRouteRef.path, element: /* @__PURE__ */ jsx(LinksPage, {}) }),
159
- /* @__PURE__ */ jsx(
160
- Route,
161
- {
162
- path: createLinkRouteRef.path,
163
- element: /* @__PURE__ */ jsx(CreateLinkPage, {})
164
- }
165
- ),
143
+ !disabled.questions && /* @__PURE__ */ jsxs(Fragment$1, { children: [
144
+ /* @__PURE__ */ jsx(
145
+ Route,
146
+ {
147
+ path: questionsRouteRef.path,
148
+ element: /* @__PURE__ */ jsx(QuestionsPage, {})
149
+ }
150
+ ),
151
+ /* @__PURE__ */ jsx(Route, { path: askRouteRef.path, element: /* @__PURE__ */ jsx(AskPage, {}) }),
152
+ /* @__PURE__ */ jsx(
153
+ Route,
154
+ {
155
+ path: editQuestionRouteRef.path,
156
+ element: /* @__PURE__ */ jsx(AskPage, {})
157
+ }
158
+ ),
159
+ /* @__PURE__ */ jsx(
160
+ Route,
161
+ {
162
+ path: questionRouteRef.path,
163
+ element: /* @__PURE__ */ jsx(QuestionPage, {})
164
+ }
165
+ )
166
+ ] }),
167
+ !disabled.articles && /* @__PURE__ */ jsxs(Fragment$1, { children: [
168
+ /* @__PURE__ */ jsx(
169
+ Route,
170
+ {
171
+ path: articlesRouteRef.path,
172
+ element: /* @__PURE__ */ jsx(ArticlesPage, {})
173
+ }
174
+ ),
175
+ /* @__PURE__ */ jsx(
176
+ Route,
177
+ {
178
+ path: writeRouteRef.path,
179
+ element: /* @__PURE__ */ jsx(WritePage, {})
180
+ }
181
+ ),
182
+ /* @__PURE__ */ jsx(
183
+ Route,
184
+ {
185
+ path: editArticleRouteRef.path,
186
+ element: /* @__PURE__ */ jsx(WritePage, {})
187
+ }
188
+ ),
189
+ /* @__PURE__ */ jsx(
190
+ Route,
191
+ {
192
+ path: articleRouteRef.path,
193
+ element: /* @__PURE__ */ jsx(ArticlePage, {})
194
+ }
195
+ )
196
+ ] }),
197
+ !disabled.links && /* @__PURE__ */ jsxs(Fragment$1, { children: [
198
+ /* @__PURE__ */ jsx(
199
+ Route,
200
+ {
201
+ path: linksRouteRef.path,
202
+ element: /* @__PURE__ */ jsx(LinksPage, {})
203
+ }
204
+ ),
205
+ /* @__PURE__ */ jsx(
206
+ Route,
207
+ {
208
+ path: createLinkRouteRef.path,
209
+ element: /* @__PURE__ */ jsx(CreateLinkPage, {})
210
+ }
211
+ ),
212
+ /* @__PURE__ */ jsx(
213
+ Route,
214
+ {
215
+ path: editLinkRouteRef.path,
216
+ element: /* @__PURE__ */ jsx(CreateLinkPage, {})
217
+ }
218
+ ),
219
+ /* @__PURE__ */ jsx(Route, { path: linkRouteRef.path, element: /* @__PURE__ */ jsx(LinkPage, {}) })
220
+ ] }),
166
221
  /* @__PURE__ */ jsx(
167
222
  Route,
168
223
  {
@@ -170,44 +225,10 @@ const QetaPage = (props) => {
170
225
  element: /* @__PURE__ */ jsx(FavoritePage, {})
171
226
  }
172
227
  ),
173
- /* @__PURE__ */ jsx(
174
- Route,
175
- {
176
- path: editQuestionRouteRef.path,
177
- element: /* @__PURE__ */ jsx(AskPage, {})
178
- }
179
- ),
180
- /* @__PURE__ */ jsx(
181
- Route,
182
- {
183
- path: editArticleRouteRef.path,
184
- element: /* @__PURE__ */ jsx(WritePage, {})
185
- }
186
- ),
187
- /* @__PURE__ */ jsx(
188
- Route,
189
- {
190
- path: editLinkRouteRef.path,
191
- element: /* @__PURE__ */ jsx(CreateLinkPage, {})
192
- }
193
- ),
194
- /* @__PURE__ */ jsx(
195
- Route,
196
- {
197
- path: questionRouteRef.path,
198
- element: /* @__PURE__ */ jsx(QuestionPage, {})
199
- }
200
- ),
201
- /* @__PURE__ */ jsx(Route, { path: linkRouteRef.path, element: /* @__PURE__ */ jsx(LinkPage, {}) }),
202
- /* @__PURE__ */ jsx(
203
- Route,
204
- {
205
- path: articleRouteRef.path,
206
- element: /* @__PURE__ */ jsx(ArticlePage, {})
207
- }
208
- ),
209
- /* @__PURE__ */ jsx(Route, { path: tagsRouteRef.path, element: /* @__PURE__ */ jsx(TagPage, {}) }),
210
- /* @__PURE__ */ jsx(Route, { path: tagRouteRef.path, element: /* @__PURE__ */ jsx(TagPage, {}) }),
228
+ !disabled.tags && /* @__PURE__ */ jsxs(Fragment$1, { children: [
229
+ /* @__PURE__ */ jsx(Route, { path: tagsRouteRef.path, element: /* @__PURE__ */ jsx(TagPage, {}) }),
230
+ /* @__PURE__ */ jsx(Route, { path: tagRouteRef.path, element: /* @__PURE__ */ jsx(TagPage, {}) })
231
+ ] }),
211
232
  /* @__PURE__ */ jsx(Route, { path: usersRouteRef.path, element: /* @__PURE__ */ jsx(UsersPage, {}) }),
212
233
  /* @__PURE__ */ jsx(Route, { path: userRouteRef.path, element: /* @__PURE__ */ jsx(UserPage, {}) }),
213
234
  /* @__PURE__ */ jsx(
@@ -217,42 +238,52 @@ const QetaPage = (props) => {
217
238
  element: /* @__PURE__ */ jsx(StatisticsPage, {})
218
239
  }
219
240
  ),
220
- /* @__PURE__ */ jsx(
221
- Route,
222
- {
223
- path: collectionsRouteRef.path,
224
- element: /* @__PURE__ */ jsx(CollectionsPage, {})
225
- }
226
- ),
227
- /* @__PURE__ */ jsx(
228
- Route,
229
- {
230
- path: collectionCreateRouteRef.path,
231
- element: /* @__PURE__ */ jsx(CollectionCreatePage, {})
232
- }
233
- ),
234
- /* @__PURE__ */ jsx(
235
- Route,
236
- {
237
- path: collectionEditRouteRef.path,
238
- element: /* @__PURE__ */ jsx(CollectionCreatePage, {})
239
- }
240
- ),
241
- /* @__PURE__ */ jsx(
242
- Route,
243
- {
244
- path: collectionRouteRef.path,
245
- element: /* @__PURE__ */ jsx(CollectionPage, {})
246
- }
247
- ),
248
- /* @__PURE__ */ jsx(
249
- Route,
250
- {
251
- path: entitiesRouteRef.path,
252
- element: /* @__PURE__ */ jsx(EntityPage, {})
253
- }
254
- ),
255
- /* @__PURE__ */ jsx(Route, { path: entityRouteRef.path, element: /* @__PURE__ */ jsx(EntityPage, {}) }),
241
+ !disabled.collections && /* @__PURE__ */ jsxs(Fragment$1, { children: [
242
+ /* @__PURE__ */ jsx(
243
+ Route,
244
+ {
245
+ path: collectionsRouteRef.path,
246
+ element: /* @__PURE__ */ jsx(CollectionsPage, {})
247
+ }
248
+ ),
249
+ /* @__PURE__ */ jsx(
250
+ Route,
251
+ {
252
+ path: collectionCreateRouteRef.path,
253
+ element: /* @__PURE__ */ jsx(CollectionCreatePage, {})
254
+ }
255
+ ),
256
+ /* @__PURE__ */ jsx(
257
+ Route,
258
+ {
259
+ path: collectionEditRouteRef.path,
260
+ element: /* @__PURE__ */ jsx(CollectionCreatePage, {})
261
+ }
262
+ ),
263
+ /* @__PURE__ */ jsx(
264
+ Route,
265
+ {
266
+ path: collectionRouteRef.path,
267
+ element: /* @__PURE__ */ jsx(CollectionPage, {})
268
+ }
269
+ )
270
+ ] }),
271
+ !disabled.entities && /* @__PURE__ */ jsxs(Fragment$1, { children: [
272
+ /* @__PURE__ */ jsx(
273
+ Route,
274
+ {
275
+ path: entitiesRouteRef.path,
276
+ element: /* @__PURE__ */ jsx(EntityPage, {})
277
+ }
278
+ ),
279
+ /* @__PURE__ */ jsx(
280
+ Route,
281
+ {
282
+ path: entityRouteRef.path,
283
+ element: /* @__PURE__ */ jsx(EntityPage, {})
284
+ }
285
+ )
286
+ ] }),
256
287
  /* @__PURE__ */ jsx(
257
288
  Route,
258
289
  {
@@ -1 +1 @@
1
- {"version":3,"file":"QetaPage.esm.js","sources":["../../../src/components/QetaPage/QetaPage.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { Route, Routes, useLocation } from 'react-router-dom';\nimport { AskPage } from '../AskPage';\nimport { QuestionPage } from '../QuestionPage/QuestionPage';\nimport { TagPage } from '../TagPage/TagPage';\nimport { UserPage } from '../UserPage/UserPage';\nimport { FavoritePage } from '../FavoritePage/FavoritePage';\nimport { StatisticsPage } from '../Statistics';\nimport {\n articleRouteRef,\n articlesRouteRef,\n askRouteRef,\n collectionCreateRouteRef,\n collectionEditRouteRef,\n collectionRouteRef,\n collectionsRouteRef,\n createLinkRouteRef,\n editArticleRouteRef,\n editLinkRouteRef,\n editQuestionRouteRef,\n entitiesRouteRef,\n entityRouteRef,\n favoriteQuestionsRouteRef,\n LeftMenu,\n LeftMenuButton,\n linkRouteRef,\n linksRouteRef,\n moderatorRouteRef,\n QetaProvider,\n questionRouteRef,\n questionsRouteRef,\n reviewRouteRef,\n settingsRouteRef,\n statisticsRouteRef,\n tagRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n writeRouteRef,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { QuestionsPage } from '../QuestionsPage/QuestionsPage';\nimport { HomePage } from '../HomePage/HomePage';\nimport { ArticlesPage } from '../ArticlesPage/ArticlesPage';\nimport { WritePage } from '../WritePage/WritePage';\nimport { ArticlePage } from '../ArticlePage/ArticlePage';\nimport { LinksPage } from '../LinksPage/LinksPage';\nimport { LinkPage } from '../LinkPage/LinkPage';\nimport { CreateLinkPage } from '../CreateLinkPage/CreateLinkPage';\nimport { CollectionsPage } from '../CollectionsPage/CollectionsPage';\nimport { CollectionPage } from '../CollectionPage/CollectionPage';\nimport { CollectionCreatePage } from '../CollectionCreatePage/CollectionCreatePage';\nimport { EntityPage } from '../EntityPage/EntityPage';\nimport { UsersPage } from '../UsersPage/UsersPage';\nimport { ModeratorPage } from '../ModeratorPage/ModeratorPage';\nimport { ReviewPage } from '../ReviewPage/ReviewPage';\nimport { SettingsPage } from '../SettingsPage/SettingsPage';\nimport { Box, Container, Grid, makeStyles } from '@material-ui/core';\nimport { useSidebarSettings } from '../../hooks/useSidebarSettings';\nimport { RightContent } from '../RightContent/RightContent';\nimport type { PluggableList } from 'unified';\n\ntype Props = {\n title?: string;\n subtitle?: string;\n headerElements?: ReactNode[];\n themeId?: string;\n headerTooltip?: string;\n headerType?: string;\n headerTypeLink?: string;\n introElement?: ReactNode;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n};\n\ntype StyleProps = {\n leftCompact: boolean;\n rightCompact: boolean;\n};\n\nconst useStyles = makeStyles(theme => ({\n sidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100dvh - 20px)',\n overflowX: 'hidden',\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n minWidth: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginBottom: theme.spacing(1),\n position: 'static',\n maxHeight: 'none',\n },\n '-ms-overflow-style': 'none',\n 'scrollbar-width': 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n rightSidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100vh - 150px)',\n overflowY: 'auto',\n overflowX: 'hidden',\n // Hide scrollbar but keep scrolling functionality\n scrollbarWidth: 'none', // Firefox\n '-ms-overflow-style': 'none', // IE/Edge\n '&::-webkit-scrollbar': {\n display: 'none', // Chrome/Safari/Edge\n },\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.rightCompact ? 72 : 250),\n minWidth: (props: StyleProps) => (props.rightCompact ? 72 : 250),\n },\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n },\n mainColumn: {\n paddingRight: 0,\n minWidth: 0,\n transition: 'all 0.2s ease-in-out',\n [theme.breakpoints.down('md')]: {\n paddingLeft: 0,\n },\n },\n}));\n\nexport const QetaPage = (props?: Props) => {\n const {\n title = 'Q&A',\n subtitle,\n headerElements,\n themeId = 'tool',\n headerTooltip,\n headerType,\n headerTypeLink,\n introElement,\n remarkPlugins,\n rehypePlugins,\n } = props ?? {};\n const { leftCompact, rightCompact, toggleLeft, toggleRight } =\n useSidebarSettings();\n const location = useLocation();\n\n // Hide right sidebar on review and moderator pages\n const hideRightSidebar =\n location.pathname.includes('/review') ||\n location.pathname.includes('/moderate');\n\n const classes = useStyles({\n leftCompact,\n rightCompact,\n });\n\n return (\n <QetaProvider remarkPlugins={remarkPlugins} rehypePlugins={rehypePlugins}>\n <Page themeId={themeId}>\n <Header\n title={title}\n subtitle={subtitle}\n type={headerType}\n typeLink={headerTypeLink}\n tooltip={headerTooltip}\n >\n {headerElements?.map((element, index) => (\n <Fragment key={index}>{element}</Fragment>\n ))}\n </Header>\n <Content className=\"qetaHomePage\">\n {introElement}\n <Container maxWidth=\"xl\">\n <Grid\n container\n spacing={3}\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n <Grid item className={classes.sidebarColumn}>\n <Box display={{ xs: 'block', lg: 'none' }}>\n <LeftMenuButton />\n </Box>\n <Box display={{ xs: 'none', lg: 'block' }}>\n <LeftMenu compact={leftCompact} onToggle={toggleLeft} />\n </Box>\n </Grid>\n <Grid item xs className={classes.mainColumn}>\n <Routes>\n <Route path=\"/\" element={<HomePage />} />\n <Route\n path={questionsRouteRef.path}\n element={<QuestionsPage />}\n />\n <Route path={askRouteRef.path} element={<AskPage />} />\n <Route\n path={articlesRouteRef.path}\n element={<ArticlesPage />}\n />\n <Route path={writeRouteRef.path} element={<WritePage />} />\n <Route path={linksRouteRef.path} element={<LinksPage />} />\n <Route\n path={createLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={favoriteQuestionsRouteRef.path}\n element={<FavoritePage />}\n />\n <Route\n path={editQuestionRouteRef.path}\n element={<AskPage />}\n />\n <Route\n path={editArticleRouteRef.path}\n element={<WritePage />}\n />\n <Route\n path={editLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={questionRouteRef.path}\n element={<QuestionPage />}\n />\n <Route path={linkRouteRef.path} element={<LinkPage />} />\n <Route\n path={articleRouteRef.path}\n element={<ArticlePage />}\n />\n <Route path={tagsRouteRef.path} element={<TagPage />} />\n <Route path={tagRouteRef.path} element={<TagPage />} />\n <Route path={usersRouteRef.path} element={<UsersPage />} />\n <Route path={userRouteRef.path} element={<UserPage />} />\n <Route\n path={statisticsRouteRef.path}\n element={<StatisticsPage />}\n />\n <Route\n path={collectionsRouteRef.path}\n element={<CollectionsPage />}\n />\n <Route\n path={collectionCreateRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionEditRouteRef.path}\n element={<CollectionCreatePage />}\n />\n <Route\n path={collectionRouteRef.path}\n element={<CollectionPage />}\n />\n <Route\n path={entitiesRouteRef.path}\n element={<EntityPage />}\n />\n <Route path={entityRouteRef.path} element={<EntityPage />} />\n <Route\n path={moderatorRouteRef.path}\n element={<ModeratorPage />}\n />\n <Route path={reviewRouteRef.path} element={<ReviewPage />} />\n <Route\n path={settingsRouteRef.path}\n element={<SettingsPage />}\n />\n </Routes>\n </Grid>\n {!hideRightSidebar && (\n <Grid item className={classes.rightSidebarColumn}>\n <RightContent compact={rightCompact} onToggle={toggleRight} />\n </Grid>\n )}\n </Grid>\n </Container>\n </Content>\n </Page>\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QetaPage.esm.js","sources":["../../../src/components/QetaPage/QetaPage.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react';\nimport { Content, Header, Page } from '@backstage/core-components';\nimport { Route, Routes, useLocation } from 'react-router-dom';\nimport { AskPage } from '../AskPage';\nimport { QuestionPage } from '../QuestionPage/QuestionPage';\nimport { TagPage } from '../TagPage/TagPage';\nimport { UserPage } from '../UserPage/UserPage';\nimport { FavoritePage } from '../FavoritePage/FavoritePage';\nimport { StatisticsPage } from '../Statistics';\nimport {\n articleRouteRef,\n articlesRouteRef,\n askRouteRef,\n collectionCreateRouteRef,\n collectionEditRouteRef,\n collectionRouteRef,\n collectionsRouteRef,\n createLinkRouteRef,\n editArticleRouteRef,\n editLinkRouteRef,\n editQuestionRouteRef,\n entitiesRouteRef,\n entityRouteRef,\n favoriteQuestionsRouteRef,\n LeftMenu,\n LeftMenuButton,\n linkRouteRef,\n linksRouteRef,\n moderatorRouteRef,\n QetaProvider,\n questionRouteRef,\n questionsRouteRef,\n reviewRouteRef,\n settingsRouteRef,\n statisticsRouteRef,\n tagRouteRef,\n tagsRouteRef,\n userRouteRef,\n usersRouteRef,\n writeRouteRef,\n useQetaConfig,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { QuestionsPage } from '../QuestionsPage/QuestionsPage';\nimport { HomePage } from '../HomePage/HomePage';\nimport { ArticlesPage } from '../ArticlesPage/ArticlesPage';\nimport { WritePage } from '../WritePage/WritePage';\nimport { ArticlePage } from '../ArticlePage/ArticlePage';\nimport { LinksPage } from '../LinksPage/LinksPage';\nimport { LinkPage } from '../LinkPage/LinkPage';\nimport { CreateLinkPage } from '../CreateLinkPage/CreateLinkPage';\nimport { CollectionsPage } from '../CollectionsPage/CollectionsPage';\nimport { CollectionPage } from '../CollectionPage/CollectionPage';\nimport { CollectionCreatePage } from '../CollectionCreatePage/CollectionCreatePage';\nimport { EntityPage } from '../EntityPage/EntityPage';\nimport { UsersPage } from '../UsersPage/UsersPage';\nimport { ModeratorPage } from '../ModeratorPage/ModeratorPage';\nimport { ReviewPage } from '../ReviewPage/ReviewPage';\nimport { SettingsPage } from '../SettingsPage/SettingsPage';\nimport { Box, Container, Grid, makeStyles } from '@material-ui/core';\nimport { useSidebarSettings } from '../../hooks/useSidebarSettings';\nimport { RightContent } from '../RightContent/RightContent';\nimport type { PluggableList } from 'unified';\n\ntype Props = {\n title?: string;\n subtitle?: string;\n headerElements?: ReactNode[];\n themeId?: string;\n headerTooltip?: string;\n headerType?: string;\n headerTypeLink?: string;\n introElement?: ReactNode;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n};\n\ntype StyleProps = {\n leftCompact: boolean;\n rightCompact: boolean;\n};\n\nconst useStyles = makeStyles(theme => ({\n sidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100dvh - 20px)',\n overflowX: 'hidden',\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n minWidth: (props: StyleProps) => (props.leftCompact ? 80 : 180),\n },\n [theme.breakpoints.down('md')]: {\n width: '100%',\n marginBottom: theme.spacing(1),\n position: 'static',\n maxHeight: 'none',\n },\n '-ms-overflow-style': 'none',\n 'scrollbar-width': 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n },\n rightSidebarColumn: {\n padding: 0,\n transition: 'all 0.2s ease-in-out',\n flexShrink: 0,\n position: 'sticky',\n top: theme.spacing(2),\n alignSelf: 'flex-start',\n maxHeight: 'calc(100vh - 150px)',\n overflowY: 'auto',\n overflowX: 'hidden',\n // Hide scrollbar but keep scrolling functionality\n scrollbarWidth: 'none', // Firefox\n '-ms-overflow-style': 'none', // IE/Edge\n '&::-webkit-scrollbar': {\n display: 'none', // Chrome/Safari/Edge\n },\n [theme.breakpoints.up('lg')]: {\n width: (props: StyleProps) => (props.rightCompact ? 72 : 250),\n minWidth: (props: StyleProps) => (props.rightCompact ? 72 : 250),\n },\n [theme.breakpoints.down('md')]: {\n display: 'none',\n },\n },\n mainColumn: {\n paddingRight: 0,\n minWidth: 0,\n transition: 'all 0.2s ease-in-out',\n [theme.breakpoints.down('md')]: {\n paddingLeft: 0,\n },\n },\n}));\n\nexport const QetaPage = (props?: Props) => {\n const {\n title = 'Q&A',\n subtitle,\n headerElements,\n themeId = 'tool',\n headerTooltip,\n headerType,\n headerTypeLink,\n introElement,\n remarkPlugins,\n rehypePlugins,\n } = props ?? {};\n const { leftCompact, rightCompact, toggleLeft, toggleRight } =\n useSidebarSettings();\n const { disabled } = useQetaConfig();\n const location = useLocation();\n\n // Hide right sidebar on review and moderator pages\n const hideRightSidebar =\n location.pathname.includes('/review') ||\n location.pathname.includes('/moderate');\n\n const classes = useStyles({\n leftCompact,\n rightCompact,\n });\n\n return (\n <QetaProvider remarkPlugins={remarkPlugins} rehypePlugins={rehypePlugins}>\n <Page themeId={themeId}>\n <Header\n title={title}\n subtitle={subtitle}\n type={headerType}\n typeLink={headerTypeLink}\n tooltip={headerTooltip}\n >\n {headerElements?.map((element, index) => (\n <Fragment key={index}>{element}</Fragment>\n ))}\n </Header>\n <Content className=\"qetaHomePage\">\n {introElement}\n <Container maxWidth=\"xl\">\n <Grid\n container\n spacing={3}\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n >\n <Grid item className={classes.sidebarColumn}>\n <Box display={{ xs: 'block', lg: 'none' }}>\n <LeftMenuButton />\n </Box>\n <Box display={{ xs: 'none', lg: 'block' }}>\n <LeftMenu compact={leftCompact} onToggle={toggleLeft} />\n </Box>\n </Grid>\n <Grid item xs className={classes.mainColumn}>\n <Routes>\n <Route path=\"/\" element={<HomePage />} />\n {!disabled.questions && (\n <>\n <Route\n path={questionsRouteRef.path}\n element={<QuestionsPage />}\n />\n <Route path={askRouteRef.path} element={<AskPage />} />\n <Route\n path={editQuestionRouteRef.path}\n element={<AskPage />}\n />\n <Route\n path={questionRouteRef.path}\n element={<QuestionPage />}\n />\n </>\n )}\n {!disabled.articles && (\n <>\n <Route\n path={articlesRouteRef.path}\n element={<ArticlesPage />}\n />\n <Route\n path={writeRouteRef.path}\n element={<WritePage />}\n />\n <Route\n path={editArticleRouteRef.path}\n element={<WritePage />}\n />\n <Route\n path={articleRouteRef.path}\n element={<ArticlePage />}\n />\n </>\n )}\n {!disabled.links && (\n <>\n <Route\n path={linksRouteRef.path}\n element={<LinksPage />}\n />\n <Route\n path={createLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route\n path={editLinkRouteRef.path}\n element={<CreateLinkPage />}\n />\n <Route path={linkRouteRef.path} element={<LinkPage />} />\n </>\n )}\n <Route\n path={favoriteQuestionsRouteRef.path}\n element={<FavoritePage />}\n />\n {!disabled.tags && (\n <>\n <Route path={tagsRouteRef.path} element={<TagPage />} />\n <Route path={tagRouteRef.path} element={<TagPage />} />\n </>\n )}\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 {!disabled.collections && (\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 </>\n )}\n {!disabled.entities && (\n <>\n <Route\n path={entitiesRouteRef.path}\n element={<EntityPage />}\n />\n <Route\n path={entityRouteRef.path}\n element={<EntityPage />}\n />\n </>\n )}\n <Route\n path={moderatorRouteRef.path}\n element={<ModeratorPage />}\n />\n <Route path={reviewRouteRef.path} element={<ReviewPage />} />\n <Route\n path={settingsRouteRef.path}\n element={<SettingsPage />}\n />\n </Routes>\n </Grid>\n {!hideRightSidebar && (\n <Grid item className={classes.rightSidebarColumn}>\n <RightContent compact={rightCompact} onToggle={toggleRight} />\n </Grid>\n )}\n </Grid>\n </Container>\n </Content>\n </Page>\n </QetaProvider>\n );\n};\n"],"names":["Fragment"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { useState, useEffect, useCallback, useMemo, Fragment as Fragment$1 } from 'react';
3
3
  import { WarningPanel } from '@backstage/core-components';
4
4
  import { useParams } from 'react-router-dom';
5
- import { qetaTranslationRef, useQetaApi, ContentHeader, PostHistoryButton, FollowPostButton, AskQuestionButton, ContentHeaderButton, AddToCollectionButton, DraftBanner, DeletedBanner, ObsoleteBanner, QuestionCard, AIAnswerCard, AnswerCard, AnswerForm, RelativeTimeWithTooltip, UpdatedByLink } from '@drodil/backstage-plugin-qeta-react';
5
+ import { qetaTranslationRef, useQetaConfig, useQetaApi, ContentHeader, PostHistoryButton, FollowPostButton, AskQuestionButton, ContentHeaderButton, AddToCollectionButton, DraftBanner, DeletedBanner, ObsoleteBanner, QuestionCard, AIAnswerCard, AnswerCard, AnswerForm, RelativeTimeWithTooltip, UpdatedByLink } from '@drodil/backstage-plugin-qeta-react';
6
6
  import Comment from '@material-ui/icons/Comment';
7
7
  import { useSignal } from '@backstage/plugin-signals-react';
8
8
  import { Box, Grid, Typography, FormControl, TextField, MenuItem, makeStyles } from '@material-ui/core';
@@ -22,6 +22,7 @@ const useDescriptionStyles = makeStyles(
22
22
  const QuestionPage = () => {
23
23
  const { id } = useParams();
24
24
  const { t } = useTranslationRef(qetaTranslationRef);
25
+ const { disabled } = useQetaConfig();
25
26
  const [answers, setAnswers] = useState([]);
26
27
  const [newAnswers, setNewAnswers] = useState([]);
27
28
  const [answerSort, setAnswerSort] = useState("default");
@@ -117,6 +118,9 @@ const QuestionPage = () => {
117
118
  /* @__PURE__ */ jsx(Box, { fontWeight: "fontWeightMedium", className: dStyles.box, children: t("common.viewsCount", { count: views }) })
118
119
  ] });
119
120
  };
121
+ if (disabled.questions) {
122
+ return null;
123
+ }
120
124
  if (loading) {
121
125
  return /* @__PURE__ */ jsxs(Box, { role: "status", "aria-label": t("common.loading"), children: [
122
126
  /* @__PURE__ */ jsx(Skeleton, { variant: "rect", height: 200, animation: "wave" }),