@drodil/backstage-plugin-qeta 3.48.2 → 3.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/components/ArticlePage/ArticlePage.esm.js +14 -6
  2. package/dist/components/ArticlePage/ArticlePage.esm.js.map +1 -1
  3. package/dist/components/ArticlesPage/ArticlesPage.esm.js +29 -24
  4. package/dist/components/ArticlesPage/ArticlesPage.esm.js.map +1 -1
  5. package/dist/components/AskPage/AskPage.esm.js +18 -3
  6. package/dist/components/AskPage/AskPage.esm.js.map +1 -1
  7. package/dist/components/CollectionPage/CollectionPage.esm.js +79 -15
  8. package/dist/components/CollectionPage/CollectionPage.esm.js.map +1 -1
  9. package/dist/components/CollectionsPage/CollectionsPage.esm.js +11 -14
  10. package/dist/components/CollectionsPage/CollectionsPage.esm.js.map +1 -1
  11. package/dist/components/CreateLinkPage/CreateLinkPage.esm.js +2 -2
  12. package/dist/components/CreateLinkPage/CreateLinkPage.esm.js.map +1 -1
  13. package/dist/components/EntityPage/EntityPage.esm.js +110 -123
  14. package/dist/components/EntityPage/EntityPage.esm.js.map +1 -1
  15. package/dist/components/EntityPostsContent/EntityPostsContent.esm.js +2 -2
  16. package/dist/components/EntityPostsContent/EntityPostsContent.esm.js.map +1 -1
  17. package/dist/components/FavoritePage/FavoritePage.esm.js +34 -31
  18. package/dist/components/FavoritePage/FavoritePage.esm.js.map +1 -1
  19. package/dist/components/HomePage/HomePage.esm.js +34 -35
  20. package/dist/components/HomePage/HomePage.esm.js.map +1 -1
  21. package/dist/components/LinkPage/LinkPage.esm.js +22 -25
  22. package/dist/components/LinkPage/LinkPage.esm.js.map +1 -1
  23. package/dist/components/LinksPage/LinksPage.esm.js +24 -25
  24. package/dist/components/LinksPage/LinksPage.esm.js.map +1 -1
  25. package/dist/components/ModeratorPage/ModeratorPage.esm.js +11 -5
  26. package/dist/components/ModeratorPage/ModeratorPage.esm.js.map +1 -1
  27. package/dist/components/PostsTableCard/Content.esm.js +2 -2
  28. package/dist/components/PostsTableCard/Content.esm.js.map +1 -1
  29. package/dist/components/QetaPage/QetaPage.esm.js +192 -164
  30. package/dist/components/QetaPage/QetaPage.esm.js.map +1 -1
  31. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js +2 -2
  32. package/dist/components/QetaSearchResultListItem/QetaSearchResultListItem.esm.js.map +1 -1
  33. package/dist/components/QuestionPage/QuestionPage.esm.js +27 -9
  34. package/dist/components/QuestionPage/QuestionPage.esm.js.map +1 -1
  35. package/dist/components/QuestionsPage/QuestionsPage.esm.js +13 -54
  36. package/dist/components/QuestionsPage/QuestionsPage.esm.js.map +1 -1
  37. package/dist/components/RightContent/ArticlesRightContent.esm.js +31 -0
  38. package/dist/components/RightContent/ArticlesRightContent.esm.js.map +1 -0
  39. package/dist/components/RightContent/AskRightContent.esm.js +16 -0
  40. package/dist/components/RightContent/AskRightContent.esm.js.map +1 -0
  41. package/dist/components/RightContent/CollectionsRightContent.esm.js +12 -0
  42. package/dist/components/RightContent/CollectionsRightContent.esm.js.map +1 -0
  43. package/dist/components/RightContent/DefaultRightContent.esm.js +27 -0
  44. package/dist/components/RightContent/DefaultRightContent.esm.js.map +1 -0
  45. package/dist/components/RightContent/EntitiesRightContent.esm.js +12 -0
  46. package/dist/components/RightContent/EntitiesRightContent.esm.js.map +1 -0
  47. package/dist/components/RightContent/EntityRightContent.esm.js +47 -0
  48. package/dist/components/RightContent/EntityRightContent.esm.js.map +1 -0
  49. package/dist/components/RightContent/FavoriteRightContent.esm.js +9 -0
  50. package/dist/components/RightContent/FavoriteRightContent.esm.js.map +1 -0
  51. package/dist/components/RightContent/HomeRightContent.esm.js +15 -0
  52. package/dist/components/RightContent/HomeRightContent.esm.js.map +1 -0
  53. package/dist/components/RightContent/LinksRightContent.esm.js +31 -0
  54. package/dist/components/RightContent/LinksRightContent.esm.js.map +1 -0
  55. package/dist/components/RightContent/QuestionsRightContent.esm.js +57 -0
  56. package/dist/components/RightContent/QuestionsRightContent.esm.js.map +1 -0
  57. package/dist/components/RightContent/RightContent.esm.js +203 -0
  58. package/dist/components/RightContent/RightContent.esm.js.map +1 -0
  59. package/dist/components/RightContent/SimilarQuestions.esm.js +58 -0
  60. package/dist/components/RightContent/SimilarQuestions.esm.js.map +1 -0
  61. package/dist/components/RightContent/TagRightContent.esm.js +48 -0
  62. package/dist/components/RightContent/TagRightContent.esm.js.map +1 -0
  63. package/dist/components/RightContent/TagsRightContent.esm.js +12 -0
  64. package/dist/components/RightContent/TagsRightContent.esm.js.map +1 -0
  65. package/dist/components/RightContent/UsersRightContent.esm.js +12 -0
  66. package/dist/components/RightContent/UsersRightContent.esm.js.map +1 -0
  67. package/dist/components/Statistics/GlobalStatsContent.esm.js +15 -9
  68. package/dist/components/Statistics/GlobalStatsContent.esm.js.map +1 -1
  69. package/dist/components/Statistics/StatisticsPage.esm.js +28 -11
  70. package/dist/components/Statistics/StatisticsPage.esm.js.map +1 -1
  71. package/dist/components/TagPage/TagPage.esm.js +75 -107
  72. package/dist/components/TagPage/TagPage.esm.js.map +1 -1
  73. package/dist/components/UserPage/UserPage.esm.js +34 -22
  74. package/dist/components/UserPage/UserPage.esm.js.map +1 -1
  75. package/dist/components/UserPage/UserStatsContent.esm.js +12 -9
  76. package/dist/components/UserPage/UserStatsContent.esm.js.map +1 -1
  77. package/dist/components/UsersPage/UsersPage.esm.js +12 -13
  78. package/dist/components/UsersPage/UsersPage.esm.js.map +1 -1
  79. package/dist/components/WritePage/WritePage.esm.js +2 -2
  80. package/dist/components/WritePage/WritePage.esm.js.map +1 -1
  81. package/dist/hooks/useSidebarSettings.esm.js +23 -0
  82. package/dist/hooks/useSidebarSettings.esm.js.map +1 -0
  83. package/dist/package.json.esm.js +1 -1
  84. package/package.json +3 -3
@@ -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 { ContentHeader, WarningPanel } from '@backstage/core-components';\nimport { PostResponse, QetaSignal } from '@drodil/backstage-plugin-qeta-common';\nimport {\n AddToCollectionButton,\n ButtonContainer,\n CreateLinkButton,\n DeletedBanner,\n DraftBanner,\n LinkCard,\n qetaTranslationRef,\n RelativeTimeWithTooltip,\n UpdatedByLink,\n useQetaApi,\n FaviconItem,\n qetaApiRef,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Skeleton } from '@material-ui/lab';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { Box, makeStyles, Typography } 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 } = 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={post.title}\n titleComponent={\n post.url ? (\n <Box display=\"flex\" alignItems=\"center\">\n <FaviconItem entity={post} />\n <Typography variant=\"h3\">\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 </Typography>\n </Box>\n ) : (\n post.title\n )\n }\n // @ts-ignore, it can accept a react node. See QuestionPage.\n description={getDescription(post)}\n >\n <ButtonContainer>\n <CreateLinkButton />\n <AddToCollectionButton post={post} />\n </ButtonContainer>\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 qetaTranslationRef,\n RelativeTimeWithTooltip,\n UpdatedByLink,\n useQetaApi,\n FaviconItem,\n qetaApiRef,\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 } = 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 <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,16 +1,15 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { useSearchParams } from 'react-router-dom';
3
3
  import { useState, useEffect } from 'react';
4
- import { ContentHeader } from '@backstage/core-components';
5
- import { qetaTranslationRef, ButtonContainer, CreateLinkButton, PostsGrid, PostsContainer, PostHighlightList, FollowedTagsList, FollowedEntitiesList } from '@drodil/backstage-plugin-qeta-react';
4
+ import { qetaTranslationRef, ContentHeader, CreateLinkButton, PostsGrid, PostsContainer } from '@drodil/backstage-plugin-qeta-react';
6
5
  import { filterTags } from '@drodil/backstage-plugin-qeta-common';
7
- import Whatshot from '@material-ui/icons/Whatshot';
8
- import { Grid } from '@material-ui/core';
6
+ import LinkIcon from '@material-ui/icons/Link';
7
+ import { Typography } from '@material-ui/core';
9
8
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
10
9
 
11
10
  const LinksPage = () => {
12
11
  const [searchParams] = useSearchParams();
13
- const [view, setView] = useState("grid");
12
+ const [view, setView] = useState("list");
14
13
  const [entityRef, setEntityRef] = useState(void 0);
15
14
  const [tags, setTags] = useState(void 0);
16
15
  const { t } = useTranslationRef(qetaTranslationRef);
@@ -18,25 +17,25 @@ const LinksPage = () => {
18
17
  setEntityRef(searchParams.get("entity") ?? void 0);
19
18
  setTags(filterTags(searchParams.get("tags")));
20
19
  }, [searchParams, setEntityRef]);
21
- return /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 4, children: [
22
- /* @__PURE__ */ jsxs(Grid, { item: true, md: 12, lg: 9, xl: 10, children: [
23
- /* @__PURE__ */ jsx(ContentHeader, { title: t("linksPage.title"), children: /* @__PURE__ */ jsx(ButtonContainer, { children: /* @__PURE__ */ jsx(CreateLinkButton, { entity: entityRef, tags }) }) }),
24
- view === "grid" ? /* @__PURE__ */ jsx(PostsGrid, { type: "link", view, onViewChange: setView }) : /* @__PURE__ */ jsx(PostsContainer, { type: "link", view, onViewChange: setView })
25
- ] }),
26
- /* @__PURE__ */ jsxs(Grid, { item: true, lg: 3, xl: 2, children: [
27
- /* @__PURE__ */ jsx(
28
- PostHighlightList,
29
- {
30
- type: "hot",
31
- title: t("highlights.hotLinks.title"),
32
- noQuestionsLabel: t("highlights.hotLinks.noLinksLabel"),
33
- icon: /* @__PURE__ */ jsx(Whatshot, { fontSize: "small" }),
34
- postType: "link"
35
- }
36
- ),
37
- /* @__PURE__ */ jsx(FollowedTagsList, {}),
38
- /* @__PURE__ */ jsx(FollowedEntitiesList, {})
39
- ] })
20
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
21
+ /* @__PURE__ */ jsx(
22
+ ContentHeader,
23
+ {
24
+ titleComponent: /* @__PURE__ */ jsxs(
25
+ Typography,
26
+ {
27
+ variant: "h4",
28
+ style: { display: "flex", alignItems: "center" },
29
+ children: [
30
+ /* @__PURE__ */ jsx(LinkIcon, { fontSize: "large", style: { marginRight: "8px" } }),
31
+ t("linksPage.title")
32
+ ]
33
+ }
34
+ ),
35
+ children: /* @__PURE__ */ jsx(CreateLinkButton, { entity: entityRef, tags })
36
+ }
37
+ ),
38
+ view === "grid" ? /* @__PURE__ */ jsx(PostsGrid, { type: "link", view, onViewChange: setView }) : /* @__PURE__ */ jsx(PostsContainer, { type: "link", view, onViewChange: setView })
40
39
  ] });
41
40
  };
42
41
 
@@ -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 { ContentHeader } from '@backstage/core-components';\nimport {\n ButtonContainer,\n CreateLinkButton,\n FollowedEntitiesList,\n FollowedTagsList,\n PostHighlightList,\n PostsContainer,\n PostsGrid,\n qetaTranslationRef,\n ViewType,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { filterTags } from '@drodil/backstage-plugin-qeta-common';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport { Grid } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const LinksPage = () => {\n const [searchParams] = useSearchParams();\n const [view, setView] = useState<ViewType>('grid');\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 <Grid container spacing={4}>\n <Grid item md={12} lg={9} xl={10}>\n <ContentHeader title={t('linksPage.title')}>\n <ButtonContainer>\n <CreateLinkButton entity={entityRef} tags={tags} />\n </ButtonContainer>\n </ContentHeader>\n {view === 'grid' ? (\n <PostsGrid type=\"link\" view={view} onViewChange={setView} />\n ) : (\n <PostsContainer type=\"link\" view={view} onViewChange={setView} />\n )}\n </Grid>\n <Grid item lg={3} xl={2}>\n <PostHighlightList\n type=\"hot\"\n title={t('highlights.hotLinks.title')}\n noQuestionsLabel={t('highlights.hotLinks.noLinksLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n postType=\"link\"\n />\n <FollowedTagsList />\n <FollowedEntitiesList />\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AAmBO,MAAM,YAAY,MAAM;AAC7B,EAAM,MAAA,CAAC,YAAY,CAAA,GAAI,eAAgB,EAAA;AACvC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAmB,MAAM,CAAA;AAEjD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAA6B,KAAS,CAAA,CAAA;AACxE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA+B,KAAS,CAAA,CAAA;AAChE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,YAAA,CAAa,YAAa,CAAA,GAAA,CAAI,QAAQ,CAAA,IAAK,KAAS,CAAA,CAAA;AACpD,IAAA,OAAA,CAAQ,UAAW,CAAA,YAAA,CAAa,GAAI,CAAA,MAAM,CAAC,CAAC,CAAA;AAAA,GAC3C,EAAA,CAAC,YAAc,EAAA,YAAY,CAAC,CAAA;AAE/B,EAAA,uBACG,IAAA,CAAA,IAAA,EAAA,EAAK,SAAS,EAAA,IAAA,EAAC,SAAS,CACvB,EAAA,QAAA,EAAA;AAAA,oBAAC,IAAA,CAAA,IAAA,EAAA,EAAK,MAAI,IAAC,EAAA,EAAA,EAAI,IAAI,EAAI,EAAA,CAAA,EAAG,IAAI,EAC5B,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,KAAA,EAAO,CAAE,CAAA,iBAAiB,CACvC,EAAA,QAAA,kBAAA,GAAA,CAAC,eACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,gBAAiB,EAAA,EAAA,MAAA,EAAQ,SAAW,EAAA,IAAA,EAAY,GACnD,CACF,EAAA,CAAA;AAAA,MACC,SAAS,MACR,mBAAA,GAAA,CAAC,SAAU,EAAA,EAAA,IAAA,EAAK,QAAO,IAAY,EAAA,YAAA,EAAc,OAAS,EAAA,CAAA,uBAEzD,cAAe,EAAA,EAAA,IAAA,EAAK,MAAO,EAAA,IAAA,EAAY,cAAc,OAAS,EAAA;AAAA,KAEnE,EAAA,CAAA;AAAA,yBACC,IAAK,EAAA,EAAA,IAAA,EAAI,MAAC,EAAI,EAAA,CAAA,EAAG,IAAI,CACpB,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,KAAA;AAAA,UACL,KAAA,EAAO,EAAE,2BAA2B,CAAA;AAAA,UACpC,gBAAA,EAAkB,EAAE,kCAAkC,CAAA;AAAA,UACtD,IAAM,kBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,UACjC,QAAS,EAAA;AAAA;AAAA,OACX;AAAA,0BACC,gBAAiB,EAAA,EAAA,CAAA;AAAA,0BACjB,oBAAqB,EAAA,EAAA;AAAA,KACxB,EAAA;AAAA,GACF,EAAA,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 PostsGrid,\n qetaTranslationRef,\n ViewType,\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 const [view, setView] = useState<ViewType>('list');\n\n const [entityRef, setEntityRef] = useState<string | undefined>(undefined);\n const [tags, setTags] = useState<string[] | undefined>(undefined);\n const { t } = useTranslationRef(qetaTranslationRef);\n useEffect(() => {\n setEntityRef(searchParams.get('entity') ?? undefined);\n setTags(filterTags(searchParams.get('tags')));\n }, [searchParams, setEntityRef]);\n\n return (\n <>\n <ContentHeader\n 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 {view === 'grid' ? (\n <PostsGrid type=\"link\" view={view} onViewChange={setView} />\n ) : (\n <PostsContainer type=\"link\" view={view} onViewChange={setView} />\n )}\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAeO,MAAM,YAAY,MAAM;AAC7B,EAAM,MAAA,CAAC,YAAY,CAAA,GAAI,eAAgB,EAAA;AACvC,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAmB,MAAM,CAAA;AAEjD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAA6B,KAAS,CAAA,CAAA;AACxE,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAA+B,KAAS,CAAA,CAAA;AAChE,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAClD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,YAAA,CAAa,YAAa,CAAA,GAAA,CAAI,QAAQ,CAAA,IAAK,KAAS,CAAA,CAAA;AACpD,IAAA,OAAA,CAAQ,UAAW,CAAA,YAAA,CAAa,GAAI,CAAA,MAAM,CAAC,CAAC,CAAA;AAAA,GAC3C,EAAA,CAAC,YAAc,EAAA,YAAY,CAAC,CAAA;AAE/B,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,cACE,kBAAA,IAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAQ,EAAA,IAAA;AAAA,YACR,KAAO,EAAA,EAAE,OAAS,EAAA,MAAA,EAAQ,YAAY,QAAS,EAAA;AAAA,YAE/C,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,YAAS,QAAS,EAAA,OAAA,EAAQ,OAAO,EAAE,WAAA,EAAa,OAAS,EAAA,CAAA;AAAA,cACzD,EAAE,iBAAiB;AAAA;AAAA;AAAA,SACtB;AAAA,QAGF,QAAC,kBAAA,GAAA,CAAA,gBAAA,EAAA,EAAiB,MAAQ,EAAA,SAAA,EAAW,IAAY,EAAA;AAAA;AAAA,KACnD;AAAA,IACC,SAAS,MACR,mBAAA,GAAA,CAAC,SAAU,EAAA,EAAA,IAAA,EAAK,QAAO,IAAY,EAAA,YAAA,EAAc,OAAS,EAAA,CAAA,uBAEzD,cAAe,EAAA,EAAA,IAAA,EAAK,MAAO,EAAA,IAAA,EAAY,cAAc,OAAS,EAAA;AAAA,GAEnE,EAAA,CAAA;AAEJ;;;;"}
@@ -1,10 +1,10 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
- import { useIsModerator, qetaTranslationRef, TemplateList, PostsContainer } from '@drodil/backstage-plugin-qeta-react';
3
+ import { useIsModerator, qetaTranslationRef, ContentHeader, TemplateList, PostsContainer } from '@drodil/backstage-plugin-qeta-react';
4
4
  import { Box, Tab } from '@material-ui/core';
5
- import { ContentHeader } from '@backstage/core-components';
6
5
  import { TabContext, TabList, TabPanel, Alert } from '@material-ui/lab';
7
6
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
7
+ import SettingsOutlined from '@material-ui/icons/SettingsOutlined';
8
8
 
9
9
  const ModeratorPage = () => {
10
10
  const { isModerator } = useIsModerator();
@@ -17,7 +17,13 @@ const ModeratorPage = () => {
17
17
  setTab(newValue);
18
18
  };
19
19
  return /* @__PURE__ */ jsxs(Fragment, { children: [
20
- /* @__PURE__ */ jsx(ContentHeader, { title: t("moderatorPage.title") }),
20
+ /* @__PURE__ */ jsx(
21
+ ContentHeader,
22
+ {
23
+ title: t("moderatorPage.title"),
24
+ titleIcon: /* @__PURE__ */ jsx(SettingsOutlined, { fontSize: "large" })
25
+ }
26
+ ),
21
27
  /* @__PURE__ */ jsxs(TabContext, { value: tab, children: [
22
28
  /* @__PURE__ */ jsx(Box, { sx: { borderBottom: 1, borderColor: "divider" }, children: /* @__PURE__ */ jsxs(
23
29
  TabList,
@@ -30,11 +36,11 @@ const ModeratorPage = () => {
30
36
  ]
31
37
  }
32
38
  ) }),
33
- /* @__PURE__ */ jsxs(TabPanel, { value: "templates", children: [
39
+ /* @__PURE__ */ jsxs(TabPanel, { value: "templates", style: { padding: "24px 0" }, children: [
34
40
  /* @__PURE__ */ jsx(Alert, { severity: "info", style: { marginBottom: "1em" }, children: t("moderatorPage.templatesInfo") }),
35
41
  /* @__PURE__ */ jsx(TemplateList, {})
36
42
  ] }),
37
- /* @__PURE__ */ jsx(TabPanel, { value: "deletedPosts", children: /* @__PURE__ */ jsx(
43
+ /* @__PURE__ */ jsx(TabPanel, { value: "deletedPosts", style: { padding: "24px 0" }, children: /* @__PURE__ */ jsx(
38
44
  PostsContainer,
39
45
  {
40
46
  status: "deleted",
@@ -1 +1 @@
1
- {"version":3,"file":"ModeratorPage.esm.js","sources":["../../../src/components/ModeratorPage/ModeratorPage.tsx"],"sourcesContent":["import { ChangeEvent, useState } from 'react';\nimport {\n PostsContainer,\n qetaTranslationRef,\n TemplateList,\n useIsModerator,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Box, Tab } from '@material-ui/core';\nimport { ContentHeader } from '@backstage/core-components';\nimport { Alert, TabContext, TabList, TabPanel } from '@material-ui/lab';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const ModeratorPage = () => {\n const { isModerator } = useIsModerator();\n const [tab, setTab] = useState('templates');\n const { t } = useTranslationRef(qetaTranslationRef);\n\n if (!isModerator) {\n return null;\n }\n\n const handleChange = (_event: ChangeEvent<{}>, newValue: string) => {\n setTab(newValue);\n };\n\n return (\n <>\n <ContentHeader title={t('moderatorPage.title')} />\n <TabContext value={tab}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList\n onChange={handleChange}\n aria-label={t('moderatorPage.tools')}\n >\n <Tab label={t('moderatorPage.templates')} value=\"templates\" />\n <Tab label={t('moderatorPage.deletedPosts')} value=\"deletedPosts\" />\n </TabList>\n </Box>\n <TabPanel value=\"templates\">\n <Alert severity=\"info\" style={{ marginBottom: '1em' }}>\n {t('moderatorPage.templatesInfo')}\n </Alert>\n <TemplateList />\n </TabPanel>\n <TabPanel value=\"deletedPosts\">\n <PostsContainer\n status=\"deleted\"\n showNoQuestionsBtn={false}\n showTypeLabel\n />\n </TabPanel>\n </TabContext>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAYO,MAAM,gBAAgB,MAAM;AACjC,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,cAAe,EAAA;AACvC,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAI,SAAS,WAAW,CAAA;AAC1C,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAElD,EAAA,IAAI,CAAC,WAAa,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAM,MAAA,YAAA,GAAe,CAAC,MAAA,EAAyB,QAAqB,KAAA;AAClE,IAAA,MAAA,CAAO,QAAQ,CAAA;AAAA,GACjB;AAEA,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,KAAA,EAAO,CAAE,CAAA,qBAAqB,CAAG,EAAA,CAAA;AAAA,oBAChD,IAAA,CAAC,UAAW,EAAA,EAAA,KAAA,EAAO,GACjB,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,OAAI,EAAI,EAAA,EAAE,cAAc,CAAG,EAAA,WAAA,EAAa,WACvC,EAAA,QAAA,kBAAA,IAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,QAAU,EAAA,YAAA;AAAA,UACV,YAAA,EAAY,EAAE,qBAAqB,CAAA;AAAA,UAEnC,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,OAAI,KAAO,EAAA,CAAA,CAAE,yBAAyB,CAAA,EAAG,OAAM,WAAY,EAAA,CAAA;AAAA,gCAC3D,GAAI,EAAA,EAAA,KAAA,EAAO,EAAE,4BAA4B,CAAA,EAAG,OAAM,cAAe,EAAA;AAAA;AAAA;AAAA,OAEtE,EAAA,CAAA;AAAA,sBACA,IAAA,CAAC,QAAS,EAAA,EAAA,KAAA,EAAM,WACd,EAAA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,KAAA,EAAA,EAAM,QAAS,EAAA,MAAA,EAAO,KAAO,EAAA,EAAE,cAAc,KAAM,EAAA,EACjD,QAAE,EAAA,CAAA,CAAA,6BAA6B,CAClC,EAAA,CAAA;AAAA,4BACC,YAAa,EAAA,EAAA;AAAA,OAChB,EAAA,CAAA;AAAA,sBACA,GAAA,CAAC,QAAS,EAAA,EAAA,KAAA,EAAM,cACd,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,MAAO,EAAA,SAAA;AAAA,UACP,kBAAoB,EAAA,KAAA;AAAA,UACpB,aAAa,EAAA;AAAA;AAAA,OAEjB,EAAA;AAAA,KACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ModeratorPage.esm.js","sources":["../../../src/components/ModeratorPage/ModeratorPage.tsx"],"sourcesContent":["import { ChangeEvent, useState } from 'react';\nimport {\n ContentHeader,\n PostsContainer,\n qetaTranslationRef,\n TemplateList,\n useIsModerator,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { Box, Tab } from '@material-ui/core';\nimport { Alert, TabContext, TabList, TabPanel } from '@material-ui/lab';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport SettingsOutlined from '@material-ui/icons/SettingsOutlined';\n\nexport const ModeratorPage = () => {\n const { isModerator } = useIsModerator();\n const [tab, setTab] = useState('templates');\n const { t } = useTranslationRef(qetaTranslationRef);\n\n if (!isModerator) {\n return null;\n }\n\n const handleChange = (_event: ChangeEvent<{}>, newValue: string) => {\n setTab(newValue);\n };\n\n return (\n <>\n <ContentHeader\n title={t('moderatorPage.title')}\n titleIcon={<SettingsOutlined fontSize=\"large\" />}\n />\n <TabContext value={tab}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <TabList\n onChange={handleChange}\n aria-label={t('moderatorPage.tools')}\n >\n <Tab label={t('moderatorPage.templates')} value=\"templates\" />\n <Tab label={t('moderatorPage.deletedPosts')} value=\"deletedPosts\" />\n </TabList>\n </Box>\n <TabPanel value=\"templates\" style={{ padding: '24px 0' }}>\n <Alert severity=\"info\" style={{ marginBottom: '1em' }}>\n {t('moderatorPage.templatesInfo')}\n </Alert>\n <TemplateList />\n </TabPanel>\n <TabPanel value=\"deletedPosts\" style={{ padding: '24px 0' }}>\n <PostsContainer\n status=\"deleted\"\n showNoQuestionsBtn={false}\n showTypeLabel\n />\n </TabPanel>\n </TabContext>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAaO,MAAM,gBAAgB,MAAM;AACjC,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,cAAe,EAAA;AACvC,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAI,SAAS,WAAW,CAAA;AAC1C,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,kBAAkB,CAAA;AAElD,EAAA,IAAI,CAAC,WAAa,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAM,MAAA,YAAA,GAAe,CAAC,MAAA,EAAyB,QAAqB,KAAA;AAClE,IAAA,MAAA,CAAO,QAAQ,CAAA;AAAA,GACjB;AAEA,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,aAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,EAAE,qBAAqB,CAAA;AAAA,QAC9B,SAAW,kBAAA,GAAA,CAAC,gBAAiB,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA;AAAA;AAAA,KAChD;AAAA,oBACA,IAAA,CAAC,UAAW,EAAA,EAAA,KAAA,EAAO,GACjB,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,OAAI,EAAI,EAAA,EAAE,cAAc,CAAG,EAAA,WAAA,EAAa,WACvC,EAAA,QAAA,kBAAA,IAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,QAAU,EAAA,YAAA;AAAA,UACV,YAAA,EAAY,EAAE,qBAAqB,CAAA;AAAA,UAEnC,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,OAAI,KAAO,EAAA,CAAA,CAAE,yBAAyB,CAAA,EAAG,OAAM,WAAY,EAAA,CAAA;AAAA,gCAC3D,GAAI,EAAA,EAAA,KAAA,EAAO,EAAE,4BAA4B,CAAA,EAAG,OAAM,cAAe,EAAA;AAAA;AAAA;AAAA,OAEtE,EAAA,CAAA;AAAA,sBACA,IAAA,CAAC,YAAS,KAAM,EAAA,WAAA,EAAY,OAAO,EAAE,OAAA,EAAS,UAC5C,EAAA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,KAAA,EAAA,EAAM,QAAS,EAAA,MAAA,EAAO,KAAO,EAAA,EAAE,cAAc,KAAM,EAAA,EACjD,QAAE,EAAA,CAAA,CAAA,6BAA6B,CAClC,EAAA,CAAA;AAAA,4BACC,YAAa,EAAA,EAAA;AAAA,OAChB,EAAA,CAAA;AAAA,sBACA,GAAA,CAAC,YAAS,KAAM,EAAA,cAAA,EAAe,OAAO,EAAE,OAAA,EAAS,UAC/C,EAAA,QAAA,kBAAA,GAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,MAAO,EAAA,SAAA;AAAA,UACP,kBAAoB,EAAA,KAAA;AAAA,UACpB,aAAa,EAAA;AAAA;AAAA,OAEjB,EAAA;AAAA,KACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { QetaExtensionProvider, PostsTable } from '@drodil/backstage-plugin-qeta-react';
2
+ import { QetaProvider, PostsTable } from '@drodil/backstage-plugin-qeta-react';
3
3
 
4
4
  const Content = (props) => {
5
5
  return /* @__PURE__ */ jsx(
6
- QetaExtensionProvider,
6
+ QetaProvider,
7
7
  {
8
8
  remarkPlugins: props.remarkPlugins,
9
9
  rehypePlugins: props.rehypePlugins,
@@ -1 +1 @@
1
- {"version":3,"file":"Content.esm.js","sources":["../../../src/components/PostsTableCard/Content.tsx"],"sourcesContent":["import {\n PostsTable,\n QetaExtensionProvider,\n} from '@drodil/backstage-plugin-qeta-react';\nimport { PostType } from '@drodil/backstage-plugin-qeta-common';\nimport type { PluggableList } from 'unified';\n\nexport const Content = (props: {\n rowsPerPage?: number;\n quickFilter?: 'latest' | 'favorites' | 'most_viewed';\n postType?: PostType;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n}) => {\n return (\n <QetaExtensionProvider\n remarkPlugins={props.remarkPlugins}\n rehypePlugins={props.rehypePlugins}\n >\n <PostsTable hideTitle {...props} />\n </QetaExtensionProvider>\n );\n};\n"],"names":[],"mappings":";;;AAOa,MAAA,OAAA,GAAU,CAAC,KAMlB,KAAA;AACJ,EACE,uBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACC,eAAe,KAAM,CAAA,aAAA;AAAA,MACrB,eAAe,KAAM,CAAA,aAAA;AAAA,MAErB,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,SAAS,EAAA,IAAA,EAAE,GAAG,KAAO,EAAA;AAAA;AAAA,GACnC;AAEJ;;;;"}
1
+ {"version":3,"file":"Content.esm.js","sources":["../../../src/components/PostsTableCard/Content.tsx"],"sourcesContent":["import { PostsTable, QetaProvider } from '@drodil/backstage-plugin-qeta-react';\nimport { PostType } from '@drodil/backstage-plugin-qeta-common';\nimport type { PluggableList } from 'unified';\n\nexport const Content = (props: {\n rowsPerPage?: number;\n quickFilter?: 'latest' | 'favorites' | 'most_viewed';\n postType?: PostType;\n remarkPlugins?: PluggableList;\n rehypePlugins?: PluggableList;\n}) => {\n return (\n <QetaProvider\n remarkPlugins={props.remarkPlugins}\n rehypePlugins={props.rehypePlugins}\n >\n <PostsTable hideTitle {...props} />\n </QetaProvider>\n );\n};\n"],"names":[],"mappings":";;;AAIa,MAAA,OAAA,GAAU,CAAC,KAMlB,KAAA;AACJ,EACE,uBAAA,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,eAAe,KAAM,CAAA,aAAA;AAAA,MACrB,eAAe,KAAM,CAAA,aAAA;AAAA,MAErB,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,SAAS,EAAA,IAAA,EAAE,GAAG,KAAO,EAAA;AAAA;AAAA,GACnC;AAEJ;;;;"}
@@ -7,7 +7,7 @@ import { TagPage } from '../TagPage/TagPage.esm.js';
7
7
  import { UserPage } from '../UserPage/UserPage.esm.js';
8
8
  import { FavoritePage } from '../FavoritePage/FavoritePage.esm.js';
9
9
  import { StatisticsPage } from '../Statistics/StatisticsPage.esm.js';
10
- import { QetaExtensionProvider, 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 } from '@drodil/backstage-plugin-qeta-react';
10
+ 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 } from '@drodil/backstage-plugin-qeta-react';
11
11
  import { QuestionsPage } from '../QuestionsPage/QuestionsPage.esm.js';
12
12
  import { HomePage } from '../HomePage/HomePage.esm.js';
13
13
  import { ArticlesPage } from '../ArticlesPage/ArticlesPage.esm.js';
@@ -22,8 +22,46 @@ import { CollectionCreatePage } from '../CollectionCreatePage/CollectionCreatePa
22
22
  import { EntityPage } from '../EntityPage/EntityPage.esm.js';
23
23
  import { UsersPage } from '../UsersPage/UsersPage.esm.js';
24
24
  import { ModeratorPage } from '../ModeratorPage/ModeratorPage.esm.js';
25
- import { Container, Grid, Box } from '@material-ui/core';
25
+ import { makeStyles, Container, Grid, Box } from '@material-ui/core';
26
+ import { useSidebarSettings } from '../../hooks/useSidebarSettings.esm.js';
27
+ import { RightContent } from '../RightContent/RightContent.esm.js';
26
28
 
29
+ const useStyles = makeStyles((theme) => ({
30
+ sidebarColumn: {
31
+ padding: 0,
32
+ transition: "all 0.2s ease-in-out",
33
+ flexShrink: 0,
34
+ [theme.breakpoints.up("lg")]: {
35
+ width: (props) => props.leftCompact ? 72 : 220,
36
+ minWidth: (props) => props.leftCompact ? 72 : 220
37
+ },
38
+ [theme.breakpoints.down("md")]: {
39
+ width: "100%",
40
+ marginBottom: theme.spacing(1)
41
+ }
42
+ },
43
+ rightSidebarColumn: {
44
+ padding: 0,
45
+ transition: "all 0.2s ease-in-out",
46
+ flexShrink: 0,
47
+ [theme.breakpoints.up("lg")]: {
48
+ width: (props) => props.rightCompact ? 72 : 300,
49
+ minWidth: (props) => props.rightCompact ? 72 : 300
50
+ },
51
+ [theme.breakpoints.down("md")]: {
52
+ width: "100%",
53
+ marginTop: theme.spacing(1)
54
+ }
55
+ },
56
+ mainColumn: {
57
+ paddingRight: 0,
58
+ minWidth: 0,
59
+ transition: "all 0.2s ease-in-out",
60
+ [theme.breakpoints.down("md")]: {
61
+ paddingLeft: 0
62
+ }
63
+ }
64
+ }));
27
65
  const QetaPage = (props) => {
28
66
  const {
29
67
  title = "Q&A",
@@ -37,168 +75,158 @@ const QetaPage = (props) => {
37
75
  remarkPlugins,
38
76
  rehypePlugins
39
77
  } = props ?? {};
40
- return /* @__PURE__ */ jsx(
41
- QetaExtensionProvider,
42
- {
43
- remarkPlugins,
44
- rehypePlugins,
45
- children: /* @__PURE__ */ jsxs(Page, { themeId, children: [
46
- /* @__PURE__ */ jsx(
47
- Header,
48
- {
49
- title,
50
- subtitle,
51
- type: headerType,
52
- typeLink: headerTypeLink,
53
- tooltip: headerTooltip,
54
- children: headerElements
55
- }
56
- ),
57
- /* @__PURE__ */ jsxs(Content, { className: "qetaHomePage", children: [
58
- introElement,
59
- /* @__PURE__ */ jsx(Container, { maxWidth: "xl", children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 4, justifyContent: "flex-start", children: [
60
- /* @__PURE__ */ jsxs(Grid, { item: true, md: 1, lg: 2, style: { padding: 0 }, children: [
61
- /* @__PURE__ */ jsx(Box, { display: { md: "block", lg: "none" }, children: /* @__PURE__ */ jsx(LeftMenuButton, {}) }),
62
- /* @__PURE__ */ jsx(Box, { display: { xs: "none", md: "block" }, children: /* @__PURE__ */ jsx(LeftMenu, {}) })
63
- ] }),
64
- /* @__PURE__ */ jsx(
65
- Grid,
66
- {
67
- item: true,
68
- md: 12,
69
- lg: 10,
70
- style: { paddingLeft: "8px", paddingRight: "0" },
71
- children: /* @__PURE__ */ jsxs(Routes, { children: [
72
- /* @__PURE__ */ jsx(Route, { path: "/", element: /* @__PURE__ */ jsx(HomePage, {}) }),
73
- /* @__PURE__ */ jsx(
74
- Route,
75
- {
76
- path: questionsRouteRef.path,
77
- element: /* @__PURE__ */ jsx(QuestionsPage, {})
78
- }
79
- ),
80
- /* @__PURE__ */ jsx(Route, { path: askRouteRef.path, element: /* @__PURE__ */ jsx(AskPage, {}) }),
81
- /* @__PURE__ */ jsx(
82
- Route,
83
- {
84
- path: articlesRouteRef.path,
85
- element: /* @__PURE__ */ jsx(ArticlesPage, {})
86
- }
87
- ),
88
- /* @__PURE__ */ jsx(Route, { path: writeRouteRef.path, element: /* @__PURE__ */ jsx(WritePage, {}) }),
89
- /* @__PURE__ */ jsx(Route, { path: linksRouteRef.path, element: /* @__PURE__ */ jsx(LinksPage, {}) }),
90
- /* @__PURE__ */ jsx(
91
- Route,
92
- {
93
- path: createLinkRouteRef.path,
94
- element: /* @__PURE__ */ jsx(CreateLinkPage, {})
95
- }
96
- ),
97
- /* @__PURE__ */ jsx(
98
- Route,
99
- {
100
- path: favoriteQuestionsRouteRef.path,
101
- element: /* @__PURE__ */ jsx(FavoritePage, {})
102
- }
103
- ),
104
- /* @__PURE__ */ jsx(
105
- Route,
106
- {
107
- path: editQuestionRouteRef.path,
108
- element: /* @__PURE__ */ jsx(AskPage, {})
109
- }
110
- ),
111
- /* @__PURE__ */ jsx(
112
- Route,
113
- {
114
- path: editArticleRouteRef.path,
115
- element: /* @__PURE__ */ jsx(WritePage, {})
116
- }
117
- ),
118
- /* @__PURE__ */ jsx(
119
- Route,
120
- {
121
- path: editLinkRouteRef.path,
122
- element: /* @__PURE__ */ jsx(CreateLinkPage, {})
123
- }
124
- ),
125
- /* @__PURE__ */ jsx(
126
- Route,
127
- {
128
- path: questionRouteRef.path,
129
- element: /* @__PURE__ */ jsx(QuestionPage, {})
130
- }
131
- ),
132
- /* @__PURE__ */ jsx(Route, { path: linkRouteRef.path, element: /* @__PURE__ */ jsx(LinkPage, {}) }),
133
- /* @__PURE__ */ jsx(
134
- Route,
135
- {
136
- path: articleRouteRef.path,
137
- element: /* @__PURE__ */ jsx(ArticlePage, {})
138
- }
139
- ),
140
- /* @__PURE__ */ jsx(Route, { path: tagsRouteRef.path, element: /* @__PURE__ */ jsx(TagPage, {}) }),
141
- /* @__PURE__ */ jsx(Route, { path: tagRouteRef.path, element: /* @__PURE__ */ jsx(TagPage, {}) }),
142
- /* @__PURE__ */ jsx(Route, { path: usersRouteRef.path, element: /* @__PURE__ */ jsx(UsersPage, {}) }),
143
- /* @__PURE__ */ jsx(Route, { path: userRouteRef.path, element: /* @__PURE__ */ jsx(UserPage, {}) }),
144
- /* @__PURE__ */ jsx(
145
- Route,
146
- {
147
- path: statisticsRouteRef.path,
148
- element: /* @__PURE__ */ jsx(StatisticsPage, {})
149
- }
150
- ),
151
- /* @__PURE__ */ jsx(
152
- Route,
153
- {
154
- path: collectionsRouteRef.path,
155
- element: /* @__PURE__ */ jsx(CollectionsPage, {})
156
- }
157
- ),
158
- /* @__PURE__ */ jsx(
159
- Route,
160
- {
161
- path: collectionCreateRouteRef.path,
162
- element: /* @__PURE__ */ jsx(CollectionCreatePage, {})
163
- }
164
- ),
165
- /* @__PURE__ */ jsx(
166
- Route,
167
- {
168
- path: collectionEditRouteRef.path,
169
- element: /* @__PURE__ */ jsx(CollectionCreatePage, {})
170
- }
171
- ),
172
- /* @__PURE__ */ jsx(
173
- Route,
174
- {
175
- path: collectionRouteRef.path,
176
- element: /* @__PURE__ */ jsx(CollectionPage, {})
177
- }
178
- ),
179
- /* @__PURE__ */ jsx(
180
- Route,
181
- {
182
- path: entitiesRouteRef.path,
183
- element: /* @__PURE__ */ jsx(EntityPage, {})
184
- }
185
- ),
186
- /* @__PURE__ */ jsx(Route, { path: entityRouteRef.path, element: /* @__PURE__ */ jsx(EntityPage, {}) }),
187
- /* @__PURE__ */ jsx(
188
- Route,
189
- {
190
- path: moderatorRouteRef.path,
191
- element: /* @__PURE__ */ jsx(ModeratorPage, {})
192
- }
193
- )
194
- ] })
195
- }
196
- )
197
- ] }) })
198
- ] })
199
- ] })
200
- }
201
- );
78
+ const { leftCompact, rightCompact, toggleLeft, toggleRight } = useSidebarSettings();
79
+ const classes = useStyles({
80
+ leftCompact,
81
+ rightCompact
82
+ });
83
+ return /* @__PURE__ */ jsx(QetaProvider, { remarkPlugins, rehypePlugins, children: /* @__PURE__ */ jsxs(Page, { themeId, children: [
84
+ /* @__PURE__ */ jsx(
85
+ Header,
86
+ {
87
+ title,
88
+ subtitle,
89
+ type: headerType,
90
+ typeLink: headerTypeLink,
91
+ tooltip: headerTooltip,
92
+ children: headerElements
93
+ }
94
+ ),
95
+ /* @__PURE__ */ jsxs(Content, { className: "qetaHomePage", children: [
96
+ introElement,
97
+ /* @__PURE__ */ jsx(Container, { maxWidth: "xl", children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 3, justifyContent: "flex-start", children: [
98
+ /* @__PURE__ */ jsxs(Grid, { item: true, className: classes.sidebarColumn, children: [
99
+ /* @__PURE__ */ jsx(Box, { display: { xs: "block", lg: "none" }, children: /* @__PURE__ */ jsx(LeftMenuButton, {}) }),
100
+ /* @__PURE__ */ jsx(Box, { display: { xs: "none", lg: "block" }, children: /* @__PURE__ */ jsx(LeftMenu, { compact: leftCompact, onToggle: toggleLeft }) })
101
+ ] }),
102
+ /* @__PURE__ */ jsx(Grid, { item: true, xs: true, className: classes.mainColumn, children: /* @__PURE__ */ jsxs(Routes, { children: [
103
+ /* @__PURE__ */ jsx(Route, { path: "/", element: /* @__PURE__ */ jsx(HomePage, {}) }),
104
+ /* @__PURE__ */ jsx(
105
+ Route,
106
+ {
107
+ path: questionsRouteRef.path,
108
+ element: /* @__PURE__ */ jsx(QuestionsPage, {})
109
+ }
110
+ ),
111
+ /* @__PURE__ */ jsx(Route, { path: askRouteRef.path, element: /* @__PURE__ */ jsx(AskPage, {}) }),
112
+ /* @__PURE__ */ jsx(
113
+ Route,
114
+ {
115
+ path: articlesRouteRef.path,
116
+ element: /* @__PURE__ */ jsx(ArticlesPage, {})
117
+ }
118
+ ),
119
+ /* @__PURE__ */ jsx(Route, { path: writeRouteRef.path, element: /* @__PURE__ */ jsx(WritePage, {}) }),
120
+ /* @__PURE__ */ jsx(Route, { path: linksRouteRef.path, element: /* @__PURE__ */ jsx(LinksPage, {}) }),
121
+ /* @__PURE__ */ jsx(
122
+ Route,
123
+ {
124
+ path: createLinkRouteRef.path,
125
+ element: /* @__PURE__ */ jsx(CreateLinkPage, {})
126
+ }
127
+ ),
128
+ /* @__PURE__ */ jsx(
129
+ Route,
130
+ {
131
+ path: favoriteQuestionsRouteRef.path,
132
+ element: /* @__PURE__ */ jsx(FavoritePage, {})
133
+ }
134
+ ),
135
+ /* @__PURE__ */ jsx(
136
+ Route,
137
+ {
138
+ path: editQuestionRouteRef.path,
139
+ element: /* @__PURE__ */ jsx(AskPage, {})
140
+ }
141
+ ),
142
+ /* @__PURE__ */ jsx(
143
+ Route,
144
+ {
145
+ path: editArticleRouteRef.path,
146
+ element: /* @__PURE__ */ jsx(WritePage, {})
147
+ }
148
+ ),
149
+ /* @__PURE__ */ jsx(
150
+ Route,
151
+ {
152
+ path: editLinkRouteRef.path,
153
+ element: /* @__PURE__ */ jsx(CreateLinkPage, {})
154
+ }
155
+ ),
156
+ /* @__PURE__ */ jsx(
157
+ Route,
158
+ {
159
+ path: questionRouteRef.path,
160
+ element: /* @__PURE__ */ jsx(QuestionPage, {})
161
+ }
162
+ ),
163
+ /* @__PURE__ */ jsx(Route, { path: linkRouteRef.path, element: /* @__PURE__ */ jsx(LinkPage, {}) }),
164
+ /* @__PURE__ */ jsx(
165
+ Route,
166
+ {
167
+ path: articleRouteRef.path,
168
+ element: /* @__PURE__ */ jsx(ArticlePage, {})
169
+ }
170
+ ),
171
+ /* @__PURE__ */ jsx(Route, { path: tagsRouteRef.path, element: /* @__PURE__ */ jsx(TagPage, {}) }),
172
+ /* @__PURE__ */ jsx(Route, { path: tagRouteRef.path, element: /* @__PURE__ */ jsx(TagPage, {}) }),
173
+ /* @__PURE__ */ jsx(Route, { path: usersRouteRef.path, element: /* @__PURE__ */ jsx(UsersPage, {}) }),
174
+ /* @__PURE__ */ jsx(Route, { path: userRouteRef.path, element: /* @__PURE__ */ jsx(UserPage, {}) }),
175
+ /* @__PURE__ */ jsx(
176
+ Route,
177
+ {
178
+ path: statisticsRouteRef.path,
179
+ element: /* @__PURE__ */ jsx(StatisticsPage, {})
180
+ }
181
+ ),
182
+ /* @__PURE__ */ jsx(
183
+ Route,
184
+ {
185
+ path: collectionsRouteRef.path,
186
+ element: /* @__PURE__ */ jsx(CollectionsPage, {})
187
+ }
188
+ ),
189
+ /* @__PURE__ */ jsx(
190
+ Route,
191
+ {
192
+ path: collectionCreateRouteRef.path,
193
+ element: /* @__PURE__ */ jsx(CollectionCreatePage, {})
194
+ }
195
+ ),
196
+ /* @__PURE__ */ jsx(
197
+ Route,
198
+ {
199
+ path: collectionEditRouteRef.path,
200
+ element: /* @__PURE__ */ jsx(CollectionCreatePage, {})
201
+ }
202
+ ),
203
+ /* @__PURE__ */ jsx(
204
+ Route,
205
+ {
206
+ path: collectionRouteRef.path,
207
+ element: /* @__PURE__ */ jsx(CollectionPage, {})
208
+ }
209
+ ),
210
+ /* @__PURE__ */ jsx(
211
+ Route,
212
+ {
213
+ path: entitiesRouteRef.path,
214
+ element: /* @__PURE__ */ jsx(EntityPage, {})
215
+ }
216
+ ),
217
+ /* @__PURE__ */ jsx(Route, { path: entityRouteRef.path, element: /* @__PURE__ */ jsx(EntityPage, {}) }),
218
+ /* @__PURE__ */ jsx(
219
+ Route,
220
+ {
221
+ path: moderatorRouteRef.path,
222
+ element: /* @__PURE__ */ jsx(ModeratorPage, {})
223
+ }
224
+ )
225
+ ] }) }),
226
+ /* @__PURE__ */ jsx(Grid, { item: true, className: classes.rightSidebarColumn, children: /* @__PURE__ */ jsx(RightContent, { compact: rightCompact, onToggle: toggleRight }) })
227
+ ] }) })
228
+ ] })
229
+ ] }) });
202
230
  };
203
231
 
204
232
  export { QetaPage };