@drodil/backstage-plugin-qeta 3.39.0 → 3.39.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.
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { useState, useEffect } from 'react';
|
|
4
2
|
import { useParams } from 'react-router-dom';
|
|
3
|
+
import { useState, useEffect } from 'react';
|
|
5
4
|
import { useSignal } from '@backstage/plugin-signals-react';
|
|
6
5
|
import { WarningPanel, ContentHeader } from '@backstage/core-components';
|
|
7
6
|
import { qetaApiRef, qetaTranslationRef, useQetaApi, FaviconItem, ButtonContainer, CreateLinkButton, AddToCollectionButton, DraftBanner, DeletedBanner, LinkCard, RelativeTimeWithTooltip, UpdatedByLink } from '@drodil/backstage-plugin-qeta-react';
|
|
8
7
|
import { Skeleton } from '@material-ui/lab';
|
|
9
8
|
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
10
|
-
import { makeStyles, Box } from '@material-ui/core';
|
|
9
|
+
import { makeStyles, Box, Typography } from '@material-ui/core';
|
|
11
10
|
import { useApi } from '@backstage/core-plugin-api';
|
|
12
11
|
|
|
13
12
|
const useDescriptionStyles = makeStyles(
|
|
@@ -58,7 +57,7 @@ const LinkPage = () => {
|
|
|
58
57
|
/* @__PURE__ */ jsx(RelativeTimeWithTooltip, { value: q.created }),
|
|
59
58
|
" \xB7 "
|
|
60
59
|
] }),
|
|
61
|
-
q.updated && /* @__PURE__ */
|
|
60
|
+
q.updated && /* @__PURE__ */ jsxs(Box, { fontWeight: "fontWeightMedium", className: dStyles.box, children: [
|
|
62
61
|
t("authorBox.updatedAtTime"),
|
|
63
62
|
" ",
|
|
64
63
|
/* @__PURE__ */ jsx(RelativeTimeWithTooltip, { value: q.updated }),
|
|
@@ -67,7 +66,7 @@ const LinkPage = () => {
|
|
|
67
66
|
" ",
|
|
68
67
|
/* @__PURE__ */ jsx(UpdatedByLink, { entity: q }),
|
|
69
68
|
" \xB7 "
|
|
70
|
-
] })
|
|
69
|
+
] }),
|
|
71
70
|
/* @__PURE__ */ jsx(Box, { fontWeight: "fontWeightMedium", className: dStyles.box, children: t("common.clicksCount", { count: score }) })
|
|
72
71
|
] });
|
|
73
72
|
};
|
|
@@ -75,9 +74,10 @@ const LinkPage = () => {
|
|
|
75
74
|
/* @__PURE__ */ jsx(
|
|
76
75
|
ContentHeader,
|
|
77
76
|
{
|
|
78
|
-
title: post.
|
|
77
|
+
title: post.title,
|
|
78
|
+
titleComponent: post.url ? /* @__PURE__ */ jsxs(Box, { display: "flex", alignItems: "center", children: [
|
|
79
79
|
/* @__PURE__ */ jsx(FaviconItem, { entity: post }),
|
|
80
|
-
/* @__PURE__ */ jsx(
|
|
80
|
+
/* @__PURE__ */ jsx(Typography, { variant: "h3", children: /* @__PURE__ */ jsx(
|
|
81
81
|
"a",
|
|
82
82
|
{
|
|
83
83
|
href: post.url,
|
|
@@ -91,7 +91,7 @@ const LinkPage = () => {
|
|
|
91
91
|
},
|
|
92
92
|
children: post.title
|
|
93
93
|
}
|
|
94
|
-
)
|
|
94
|
+
) })
|
|
95
95
|
] }) : post.title,
|
|
96
96
|
description: getDescription(post),
|
|
97
97
|
children: /* @__PURE__ */ jsxs(ButtonContainer, { children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkPage.esm.js","sources":["../../../src/components/LinkPage/LinkPage.tsx"],"sourcesContent":["import
|
|
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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"}
|
package/dist/package.json.esm.js
CHANGED
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"frontend",
|
|
8
8
|
"backstage.io"
|
|
9
9
|
],
|
|
10
|
-
"version": "3.39.
|
|
10
|
+
"version": "3.39.1",
|
|
11
11
|
"main": "./dist/index.esm.js",
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
13
13
|
"prepublishOnly": "yarn tsc && yarn build",
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"@backstage/plugin-search-common": "^1.2.19",
|
|
84
84
|
"@backstage/plugin-search-react": "^1.9.4",
|
|
85
85
|
"@backstage/plugin-signals-react": "^0.0.15",
|
|
86
|
-
"@drodil/backstage-plugin-qeta-common": "^3.39.
|
|
87
|
-
"@drodil/backstage-plugin-qeta-react": "^3.39.
|
|
86
|
+
"@drodil/backstage-plugin-qeta-common": "^3.39.1",
|
|
87
|
+
"@drodil/backstage-plugin-qeta-react": "^3.39.1",
|
|
88
88
|
"@material-ui/core": "^4.12.2",
|
|
89
89
|
"@material-ui/icons": "^4.11.3",
|
|
90
90
|
"@material-ui/lab": "4.0.0-alpha.61",
|