@drodil/backstage-plugin-qeta 3.42.0 → 3.43.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.
@@ -4,7 +4,7 @@ import { ContentHeader } from '@backstage/core-components';
4
4
  import { useParams } from 'react-router-dom';
5
5
  import { qetaTranslationRef, qetaApiRef, EntityFollowButton, ButtonContainer, AskQuestionButton, WriteArticleButton, CreateLinkButton, PostsGrid, PostsContainer, EntitiesGrid, FollowedEntitiesList, PostHighlightList, PostHighlightListContainer } from '@drodil/backstage-plugin-qeta-react';
6
6
  import Whatshot from '@material-ui/icons/Whatshot';
7
- import { useApi } from '@backstage/core-plugin-api';
7
+ import { useApi, alertApiRef } from '@backstage/core-plugin-api';
8
8
  import { EntityRefLink } from '@backstage/plugin-catalog-react';
9
9
  import { Grid, Typography, Card, CardContent } from '@material-ui/core';
10
10
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
@@ -15,6 +15,7 @@ const EntityPage = () => {
15
15
  const [resp, setResp] = useState();
16
16
  const [view, setView] = useState("list");
17
17
  const qetaApi = useApi(qetaApiRef);
18
+ const alertApi = useApi(alertApiRef);
18
19
  useEffect(() => {
19
20
  if (!entityRef) {
20
21
  setResp(void 0);
@@ -24,8 +25,14 @@ const EntityPage = () => {
24
25
  if (res) {
25
26
  setResp(res);
26
27
  }
28
+ }).catch((e) => {
29
+ alertApi.post({
30
+ message: e.message,
31
+ severity: "error",
32
+ display: "transient"
33
+ });
27
34
  });
28
- }, [qetaApi, entityRef]);
35
+ }, [qetaApi, entityRef, alertApi]);
29
36
  let shownTitle = t("entitiesPage.defaultTitle");
30
37
  let link = void 0;
31
38
  if (entityRef) {
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPage.esm.js","sources":["../../../src/components/EntityPage/EntityPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { ContentHeader } from '@backstage/core-components';\nimport { useParams } from 'react-router-dom';\nimport {\n AskQuestionButton,\n ButtonContainer,\n CreateLinkButton,\n EntitiesGrid,\n EntityFollowButton,\n FollowedEntitiesList,\n PostHighlightList,\n PostHighlightListContainer,\n PostsContainer,\n PostsGrid,\n qetaApiRef,\n qetaTranslationRef,\n ViewType,\n WriteArticleButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { EntityResponse } from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport { Card, CardContent, Grid, Typography } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const EntityPage = () => {\n const { entityRef } = useParams();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [resp, setResp] = useState<undefined | EntityResponse>();\n const [view, setView] = useState<ViewType>('list');\n\n const qetaApi = useApi(qetaApiRef);\n\n useEffect(() => {\n if (!entityRef) {\n setResp(undefined);\n return;\n }\n\n qetaApi.getEntity(entityRef).then(res => {\n if (res) {\n setResp(res);\n }\n });\n }, [qetaApi, entityRef]);\n\n let shownTitle: string = t('entitiesPage.defaultTitle');\n let link = undefined;\n if (entityRef) {\n shownTitle = '';\n link = <EntityRefLink entityRef={entityRef} />;\n }\n\n return (\n <Grid container spacing={4}>\n <Grid item md={12} lg={9} xl={10}>\n <ContentHeader\n titleComponent={\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <Typography\n variant=\"h5\"\n component=\"h2\"\n style={{ marginRight: '0.5em' }}\n >\n {shownTitle} {link}\n </Typography>\n {entityRef && <EntityFollowButton entityRef={entityRef} />}\n </span>\n }\n >\n <ButtonContainer>\n <AskQuestionButton entity={entityRef} />\n <WriteArticleButton entity={entityRef} />\n <CreateLinkButton entity={entityRef} />\n </ButtonContainer>\n </ContentHeader>\n {resp && (\n <Card variant=\"outlined\" style={{ marginBottom: '1em' }}>\n <CardContent>\n <Typography variant=\"caption\">\n {t('common.posts', {\n count: resp.postsCount,\n itemType: 'post',\n })}\n {' · '}\n {t('common.followers', { count: resp.followerCount })}\n </Typography>\n </CardContent>\n </Card>\n )}\n {entityRef &&\n (view === 'grid' ? (\n <PostsGrid\n entity={entityRef}\n filterPanelProps={{ showEntityFilter: false }}\n view={view}\n onViewChange={setView}\n />\n ) : (\n <PostsContainer\n entity={entityRef}\n filterPanelProps={{ showEntityFilter: false }}\n view={view}\n showTypeLabel\n onViewChange={setView}\n />\n ))}\n {!entityRef && <EntitiesGrid />}\n </Grid>\n <Grid item lg={3} xl={2}>\n <FollowedEntitiesList />\n {resp && (\n <>\n <PostHighlightList\n type=\"hot\"\n title={t('highlights.hotQuestions.title')}\n noQuestionsLabel={t('highlights.hotQuestions.noQuestionsLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n options={{ entities: [resp.entityRef] }}\n postType=\"question\"\n />\n <PostHighlightList\n type=\"unanswered\"\n title={t('highlights.unanswered.title')}\n noQuestionsLabel={t('highlights.unanswered.noQuestionsLabel')}\n options={{ entities: [resp.entityRef] }}\n postType=\"question\"\n />\n <PostHighlightList\n type=\"incorrect\"\n title={t('highlights.incorrect.title')}\n noQuestionsLabel={t('highlights.incorrect.noQuestionsLabel')}\n options={{ entities: [resp.entityRef] }}\n postType=\"question\"\n />\n </>\n )}\n {!resp && (\n <>\n <PostHighlightListContainer />\n </>\n )}\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityPage.esm.js","sources":["../../../src/components/EntityPage/EntityPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { ContentHeader } from '@backstage/core-components';\nimport { useParams } from 'react-router-dom';\nimport {\n AskQuestionButton,\n ButtonContainer,\n CreateLinkButton,\n EntitiesGrid,\n EntityFollowButton,\n FollowedEntitiesList,\n PostHighlightList,\n PostHighlightListContainer,\n PostsContainer,\n PostsGrid,\n qetaApiRef,\n qetaTranslationRef,\n ViewType,\n WriteArticleButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport { EntityResponse } from '@drodil/backstage-plugin-qeta-common';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport { Card, CardContent, Grid, Typography } from '@material-ui/core';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const EntityPage = () => {\n const { entityRef } = useParams();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [resp, setResp] = useState<undefined | EntityResponse>();\n const [view, setView] = useState<ViewType>('list');\n\n const qetaApi = useApi(qetaApiRef);\n const alertApi = useApi(alertApiRef);\n\n useEffect(() => {\n if (!entityRef) {\n setResp(undefined);\n return;\n }\n\n qetaApi\n .getEntity(entityRef)\n .then(res => {\n if (res) {\n setResp(res);\n }\n })\n .catch(e => {\n alertApi.post({\n message: e.message,\n severity: 'error',\n display: 'transient',\n });\n });\n }, [qetaApi, entityRef, alertApi]);\n\n let shownTitle: string = t('entitiesPage.defaultTitle');\n let link = undefined;\n if (entityRef) {\n shownTitle = '';\n link = <EntityRefLink entityRef={entityRef} />;\n }\n\n return (\n <Grid container spacing={4}>\n <Grid item md={12} lg={9} xl={10}>\n <ContentHeader\n titleComponent={\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <Typography\n variant=\"h5\"\n component=\"h2\"\n style={{ marginRight: '0.5em' }}\n >\n {shownTitle} {link}\n </Typography>\n {entityRef && <EntityFollowButton entityRef={entityRef} />}\n </span>\n }\n >\n <ButtonContainer>\n <AskQuestionButton entity={entityRef} />\n <WriteArticleButton entity={entityRef} />\n <CreateLinkButton entity={entityRef} />\n </ButtonContainer>\n </ContentHeader>\n {resp && (\n <Card variant=\"outlined\" style={{ marginBottom: '1em' }}>\n <CardContent>\n <Typography variant=\"caption\">\n {t('common.posts', {\n count: resp.postsCount,\n itemType: 'post',\n })}\n {' · '}\n {t('common.followers', { count: resp.followerCount })}\n </Typography>\n </CardContent>\n </Card>\n )}\n {entityRef &&\n (view === 'grid' ? (\n <PostsGrid\n entity={entityRef}\n filterPanelProps={{ showEntityFilter: false }}\n view={view}\n onViewChange={setView}\n />\n ) : (\n <PostsContainer\n entity={entityRef}\n filterPanelProps={{ showEntityFilter: false }}\n view={view}\n showTypeLabel\n onViewChange={setView}\n />\n ))}\n {!entityRef && <EntitiesGrid />}\n </Grid>\n <Grid item lg={3} xl={2}>\n <FollowedEntitiesList />\n {resp && (\n <>\n <PostHighlightList\n type=\"hot\"\n title={t('highlights.hotQuestions.title')}\n noQuestionsLabel={t('highlights.hotQuestions.noQuestionsLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n options={{ entities: [resp.entityRef] }}\n postType=\"question\"\n />\n <PostHighlightList\n type=\"unanswered\"\n title={t('highlights.unanswered.title')}\n noQuestionsLabel={t('highlights.unanswered.noQuestionsLabel')}\n options={{ entities: [resp.entityRef] }}\n postType=\"question\"\n />\n <PostHighlightList\n type=\"incorrect\"\n title={t('highlights.incorrect.title')}\n noQuestionsLabel={t('highlights.incorrect.noQuestionsLabel')}\n options={{ entities: [resp.entityRef] }}\n postType=\"question\"\n />\n </>\n )}\n {!resp && (\n <>\n <PostHighlightListContainer />\n </>\n )}\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { ContentHeader } from '@backstage/core-components';
4
4
  import { useParams } from 'react-router-dom';
5
5
  import { qetaTranslationRef, qetaApiRef, TagFollowButton, ButtonContainer, AskQuestionButton, WriteArticleButton, CreateLinkButton, MarkdownRenderer, PostsGrid, PostsContainer, TagsGrid, FollowedTagsList, PostHighlightList, PostHighlightListContainer } from '@drodil/backstage-plugin-qeta-react';
6
6
  import Whatshot from '@material-ui/icons/Whatshot';
7
- import { useApi } from '@backstage/core-plugin-api';
7
+ import { useApi, alertApiRef } from '@backstage/core-plugin-api';
8
8
  import { Grid, Typography, Card, CardContent } from '@material-ui/core';
9
9
  import { EntityRefLink } from '@backstage/plugin-catalog-react';
10
10
  import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
@@ -15,6 +15,7 @@ const TagPage = () => {
15
15
  const [resp, setResp] = useState();
16
16
  const [view, setView] = useState("list");
17
17
  const qetaApi = useApi(qetaApiRef);
18
+ const alertApi = useApi(alertApiRef);
18
19
  useEffect(() => {
19
20
  if (!tag) {
20
21
  setResp(void 0);
@@ -24,8 +25,14 @@ const TagPage = () => {
24
25
  if (res) {
25
26
  setResp(res);
26
27
  }
28
+ }).catch((e) => {
29
+ alertApi.post({
30
+ message: e.message,
31
+ severity: "error",
32
+ display: "transient"
33
+ });
27
34
  });
28
- }, [qetaApi, tag]);
35
+ }, [qetaApi, tag, alertApi]);
29
36
  return /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 4, children: [
30
37
  /* @__PURE__ */ jsxs(Grid, { item: true, md: 12, lg: 9, xl: 10, children: [
31
38
  tag ? /* @__PURE__ */ jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"TagPage.esm.js","sources":["../../../src/components/TagPage/TagPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { ContentHeader } from '@backstage/core-components';\nimport { useParams } from 'react-router-dom';\nimport {\n AskQuestionButton,\n ButtonContainer,\n CreateLinkButton,\n FollowedTagsList,\n MarkdownRenderer,\n PostHighlightList,\n PostHighlightListContainer,\n PostsContainer,\n PostsGrid,\n qetaApiRef,\n qetaTranslationRef,\n TagFollowButton,\n TagsGrid,\n ViewType,\n WriteArticleButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { TagResponse } from '@drodil/backstage-plugin-qeta-common';\nimport { Card, CardContent, Grid, Typography } from '@material-ui/core';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const TagPage = () => {\n const { tag } = useParams();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [resp, setResp] = useState<undefined | TagResponse>();\n const [view, setView] = useState<ViewType>('list');\n\n const qetaApi = useApi(qetaApiRef);\n\n useEffect(() => {\n if (!tag) {\n setResp(undefined);\n return;\n }\n\n qetaApi.getTag(tag).then(res => {\n if (res) {\n setResp(res);\n }\n });\n }, [qetaApi, tag]);\n\n return (\n <Grid container spacing={4}>\n <Grid item md={12} lg={9} xl={10}>\n {tag ? (\n <ContentHeader\n titleComponent={\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <Typography\n variant=\"h5\"\n component=\"h2\"\n id=\"tag-title\"\n style={{ marginRight: '0.5em' }}\n >\n #{tag}\n </Typography>\n <TagFollowButton tag={tag} />\n </span>\n }\n >\n <ButtonContainer>\n <AskQuestionButton tags={[tag]} />\n <WriteArticleButton tags={[tag]} />\n <CreateLinkButton tags={[tag]} />\n </ButtonContainer>\n </ContentHeader>\n ) : (\n <ContentHeader title={t('tagPage.defaultTitle')}>\n <ButtonContainer>\n <AskQuestionButton />\n <WriteArticleButton />\n <CreateLinkButton />\n </ButtonContainer>\n </ContentHeader>\n )}\n {resp && (\n <Card variant=\"outlined\" style={{ marginBottom: '1em' }}>\n <CardContent>\n <Typography variant=\"caption\">\n {t('common.posts', {\n count: resp.postsCount,\n itemType: 'post',\n })}\n {' · '}\n {t('common.followers', { count: resp.followerCount })}\n </Typography>\n <br />\n {resp.experts && resp.experts.length > 0 && (\n <Typography variant=\"caption\">\n {t('common.experts')}\n {': '}\n {resp.experts.map((e, i) => (\n <>\n <EntityRefLink key={e} entityRef={e} />\n {i === resp.experts!.length - 1 ? '' : ','}\n </>\n ))}\n </Typography>\n )}\n {resp.description && (\n <MarkdownRenderer content={resp.description} />\n )}\n </CardContent>\n </Card>\n )}\n {tag &&\n (view === 'grid' ? (\n <PostsGrid\n tags={[tag ?? '']}\n filterPanelProps={{ showTagFilter: false }}\n view={view}\n onViewChange={setView}\n />\n ) : (\n <PostsContainer\n tags={[tag ?? '']}\n filterPanelProps={{ showTagFilter: false }}\n view={view}\n showTypeLabel\n onViewChange={setView}\n />\n ))}\n {!tag && <TagsGrid />}\n </Grid>\n <Grid item lg={3} xl={2}>\n <FollowedTagsList />\n {resp && (\n <>\n <PostHighlightList\n type=\"hot\"\n title={t('highlights.hotQuestions.title')}\n noQuestionsLabel={t('highlights.hotQuestions.noQuestionsLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n options={{ tags: [resp.tag] }}\n postType=\"question\"\n />\n\n <PostHighlightList\n type=\"unanswered\"\n title={t('highlights.unanswered.title')}\n noQuestionsLabel={t('highlights.unanswered.noQuestionsLabel')}\n options={{ tags: [resp.tag] }}\n postType=\"question\"\n />\n <PostHighlightList\n type=\"incorrect\"\n title={t('highlights.incorrect.title')}\n noQuestionsLabel={t('highlights.incorrect.noQuestionsLabel')}\n options={{ tags: [resp.tag] }}\n postType=\"question\"\n />\n </>\n )}\n {!resp && (\n <>\n <PostHighlightListContainer />\n </>\n )}\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TagPage.esm.js","sources":["../../../src/components/TagPage/TagPage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { ContentHeader } from '@backstage/core-components';\nimport { useParams } from 'react-router-dom';\nimport {\n AskQuestionButton,\n ButtonContainer,\n CreateLinkButton,\n FollowedTagsList,\n MarkdownRenderer,\n PostHighlightList,\n PostHighlightListContainer,\n PostsContainer,\n PostsGrid,\n qetaApiRef,\n qetaTranslationRef,\n TagFollowButton,\n TagsGrid,\n ViewType,\n WriteArticleButton,\n} from '@drodil/backstage-plugin-qeta-react';\nimport Whatshot from '@material-ui/icons/Whatshot';\nimport { alertApiRef, useApi } from '@backstage/core-plugin-api';\nimport { TagResponse } from '@drodil/backstage-plugin-qeta-common';\nimport { Card, CardContent, Grid, Typography } from '@material-ui/core';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const TagPage = () => {\n const { tag } = useParams();\n const { t } = useTranslationRef(qetaTranslationRef);\n const [resp, setResp] = useState<undefined | TagResponse>();\n const [view, setView] = useState<ViewType>('list');\n\n const qetaApi = useApi(qetaApiRef);\n const alertApi = useApi(alertApiRef);\n\n useEffect(() => {\n if (!tag) {\n setResp(undefined);\n return;\n }\n\n qetaApi\n .getTag(tag)\n .then(res => {\n if (res) {\n setResp(res);\n }\n })\n .catch(e => {\n alertApi.post({\n message: e.message,\n severity: 'error',\n display: 'transient',\n });\n });\n }, [qetaApi, tag, alertApi]);\n\n return (\n <Grid container spacing={4}>\n <Grid item md={12} lg={9} xl={10}>\n {tag ? (\n <ContentHeader\n titleComponent={\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <Typography\n variant=\"h5\"\n component=\"h2\"\n id=\"tag-title\"\n style={{ marginRight: '0.5em' }}\n >\n #{tag}\n </Typography>\n <TagFollowButton tag={tag} />\n </span>\n }\n >\n <ButtonContainer>\n <AskQuestionButton tags={[tag]} />\n <WriteArticleButton tags={[tag]} />\n <CreateLinkButton tags={[tag]} />\n </ButtonContainer>\n </ContentHeader>\n ) : (\n <ContentHeader title={t('tagPage.defaultTitle')}>\n <ButtonContainer>\n <AskQuestionButton />\n <WriteArticleButton />\n <CreateLinkButton />\n </ButtonContainer>\n </ContentHeader>\n )}\n {resp && (\n <Card variant=\"outlined\" style={{ marginBottom: '1em' }}>\n <CardContent>\n <Typography variant=\"caption\">\n {t('common.posts', {\n count: resp.postsCount,\n itemType: 'post',\n })}\n {' · '}\n {t('common.followers', { count: resp.followerCount })}\n </Typography>\n <br />\n {resp.experts && resp.experts.length > 0 && (\n <Typography variant=\"caption\">\n {t('common.experts')}\n {': '}\n {resp.experts.map((e, i) => (\n <>\n <EntityRefLink key={e} entityRef={e} />\n {i === resp.experts!.length - 1 ? '' : ','}\n </>\n ))}\n </Typography>\n )}\n {resp.description && (\n <MarkdownRenderer content={resp.description} />\n )}\n </CardContent>\n </Card>\n )}\n {tag &&\n (view === 'grid' ? (\n <PostsGrid\n tags={[tag ?? '']}\n filterPanelProps={{ showTagFilter: false }}\n view={view}\n onViewChange={setView}\n />\n ) : (\n <PostsContainer\n tags={[tag ?? '']}\n filterPanelProps={{ showTagFilter: false }}\n view={view}\n showTypeLabel\n onViewChange={setView}\n />\n ))}\n {!tag && <TagsGrid />}\n </Grid>\n <Grid item lg={3} xl={2}>\n <FollowedTagsList />\n {resp && (\n <>\n <PostHighlightList\n type=\"hot\"\n title={t('highlights.hotQuestions.title')}\n noQuestionsLabel={t('highlights.hotQuestions.noQuestionsLabel')}\n icon={<Whatshot fontSize=\"small\" />}\n options={{ tags: [resp.tag] }}\n postType=\"question\"\n />\n\n <PostHighlightList\n type=\"unanswered\"\n title={t('highlights.unanswered.title')}\n noQuestionsLabel={t('highlights.unanswered.noQuestionsLabel')}\n options={{ tags: [resp.tag] }}\n postType=\"question\"\n />\n <PostHighlightList\n type=\"incorrect\"\n title={t('highlights.incorrect.title')}\n noQuestionsLabel={t('highlights.incorrect.noQuestionsLabel')}\n options={{ tags: [resp.tag] }}\n postType=\"question\"\n />\n </>\n )}\n {!resp && (\n <>\n <PostHighlightListContainer />\n </>\n )}\n </Grid>\n </Grid>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ var keywords = [
6
6
  "frontend",
7
7
  "backstage.io"
8
8
  ];
9
- var version = "3.42.0";
9
+ var version = "3.43.0";
10
10
  var main = "src/index.ts";
11
11
  var types = "src/index.ts";
12
12
  var prepublishOnly = "yarn tsc && yarn build";
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "frontend",
8
8
  "backstage.io"
9
9
  ],
10
- "version": "3.42.0",
10
+ "version": "3.43.0",
11
11
  "main": "./dist/index.esm.js",
12
12
  "types": "./dist/index.d.ts",
13
13
  "prepublishOnly": "yarn tsc && yarn build",
@@ -84,8 +84,8 @@
84
84
  "@backstage/plugin-search-react": "^1.9.5",
85
85
  "@backstage/plugin-signals-react": "^0.0.16",
86
86
  "@backstage/plugin-techdocs-react": "^1.3.4",
87
- "@drodil/backstage-plugin-qeta-common": "^3.42.0",
88
- "@drodil/backstage-plugin-qeta-react": "^3.42.0",
87
+ "@drodil/backstage-plugin-qeta-common": "^3.43.0",
88
+ "@drodil/backstage-plugin-qeta-react": "^3.43.0",
89
89
  "@material-ui/core": "^4.12.2",
90
90
  "@material-ui/icons": "^4.11.3",
91
91
  "@material-ui/lab": "4.0.0-alpha.61",