@drodil/backstage-plugin-qeta-react 3.52.1 → 3.52.2

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.
@@ -36,6 +36,7 @@ import 'react-use/lib/useDebounce';
36
36
  import 'file-type';
37
37
  import '../SearchBar/SearchBar.esm.js';
38
38
  import '@material-ui/icons/FilterList';
39
+ import '../PostsGrid/PostsGridItem.esm.js';
39
40
 
40
41
  const PostsCard = (props) => {
41
42
  const { value: response } = useQetaApi(
@@ -1 +1 @@
1
- {"version":3,"file":"PostsCard.esm.js","sources":["../../../src/components/HomePageCards/PostsCard.tsx"],"sourcesContent":["import { PostsQuery, PostType } from '@drodil/backstage-plugin-qeta-common';\nimport { PostListItem } from '../PostsContainer';\nimport { useQetaApi } from '../../hooks';\nimport { Card, CardHeader, Divider, Grid } from '@material-ui/core';\n\nexport const PostsCard = (props: {\n title: string;\n options?: PostsQuery;\n postType?: PostType;\n}) => {\n const { value: response } = useQetaApi(\n api =>\n api.getPosts({\n limit: 3,\n type: props.postType,\n includeAttachments: false,\n includeExperts: false,\n includeAnswers: false,\n includeComments: false,\n includeVotes: false,\n includeTrend: false,\n ...props.options,\n }),\n [],\n );\n\n const posts = response?.posts ?? [];\n if (posts.length === 0) {\n return null;\n }\n\n return (\n <Card>\n <CardHeader style={{ paddingBottom: '8px' }} title={props.title} />\n <Grid container spacing={2}>\n {posts.map(question => {\n return (\n <Grid item xs={12} key={question.id}>\n <PostListItem post={question} type={props.postType} />\n <Divider />\n </Grid>\n );\n })}\n </Grid>\n </Card>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKa,MAAA,SAAA,GAAY,CAAC,KAIpB,KAAA;AACJ,EAAM,MAAA,EAAE,KAAO,EAAA,QAAA,EAAa,GAAA,UAAA;AAAA,IAC1B,CAAA,GAAA,KACE,IAAI,QAAS,CAAA;AAAA,MACX,KAAO,EAAA,CAAA;AAAA,MACP,MAAM,KAAM,CAAA,QAAA;AAAA,MACZ,kBAAoB,EAAA,KAAA;AAAA,MACpB,cAAgB,EAAA,KAAA;AAAA,MAChB,cAAgB,EAAA,KAAA;AAAA,MAChB,eAAiB,EAAA,KAAA;AAAA,MACjB,YAAc,EAAA,KAAA;AAAA,MACd,YAAc,EAAA,KAAA;AAAA,MACd,GAAG,KAAM,CAAA;AAAA,KACV,CAAA;AAAA,IACH;AAAC,GACH;AAEA,EAAM,MAAA,KAAA,GAAQ,QAAU,EAAA,KAAA,IAAS,EAAC;AAClC,EAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,4BACG,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,UAAA,EAAA,EAAW,OAAO,EAAE,aAAA,EAAe,OAAS,EAAA,KAAA,EAAO,MAAM,KAAO,EAAA,CAAA;AAAA,oBACjE,GAAA,CAAC,QAAK,SAAS,EAAA,IAAA,EAAC,SAAS,CACtB,EAAA,QAAA,EAAA,KAAA,CAAM,IAAI,CAAY,QAAA,KAAA;AACrB,MAAA,uBACG,IAAA,CAAA,IAAA,EAAA,EAAK,IAAI,EAAA,IAAA,EAAC,IAAI,EACb,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,MAAM,QAAU,EAAA,CAAA;AAAA,4BACnD,OAAQ,EAAA,EAAA;AAAA,OAAA,EAAA,EAFa,SAAS,EAGjC,CAAA;AAAA,KAEH,CACH,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"PostsCard.esm.js","sources":["../../../src/components/HomePageCards/PostsCard.tsx"],"sourcesContent":["import { PostsQuery, PostType } from '@drodil/backstage-plugin-qeta-common';\nimport { PostListItem } from '../PostsContainer';\nimport { useQetaApi } from '../../hooks';\nimport { Card, CardHeader, Divider, Grid } from '@material-ui/core';\n\nexport const PostsCard = (props: {\n title: string;\n options?: PostsQuery;\n postType?: PostType;\n}) => {\n const { value: response } = useQetaApi(\n api =>\n api.getPosts({\n limit: 3,\n type: props.postType,\n includeAttachments: false,\n includeExperts: false,\n includeAnswers: false,\n includeComments: false,\n includeVotes: false,\n includeTrend: false,\n ...props.options,\n }),\n [],\n );\n\n const posts = response?.posts ?? [];\n if (posts.length === 0) {\n return null;\n }\n\n return (\n <Card>\n <CardHeader style={{ paddingBottom: '8px' }} title={props.title} />\n <Grid container spacing={2}>\n {posts.map(question => {\n return (\n <Grid item xs={12} key={question.id}>\n <PostListItem post={question} type={props.postType} />\n <Divider />\n </Grid>\n );\n })}\n </Grid>\n </Card>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKa,MAAA,SAAA,GAAY,CAAC,KAIpB,KAAA;AACJ,EAAM,MAAA,EAAE,KAAO,EAAA,QAAA,EAAa,GAAA,UAAA;AAAA,IAC1B,CAAA,GAAA,KACE,IAAI,QAAS,CAAA;AAAA,MACX,KAAO,EAAA,CAAA;AAAA,MACP,MAAM,KAAM,CAAA,QAAA;AAAA,MACZ,kBAAoB,EAAA,KAAA;AAAA,MACpB,cAAgB,EAAA,KAAA;AAAA,MAChB,cAAgB,EAAA,KAAA;AAAA,MAChB,eAAiB,EAAA,KAAA;AAAA,MACjB,YAAc,EAAA,KAAA;AAAA,MACd,YAAc,EAAA,KAAA;AAAA,MACd,GAAG,KAAM,CAAA;AAAA,KACV,CAAA;AAAA,IACH;AAAC,GACH;AAEA,EAAM,MAAA,KAAA,GAAQ,QAAU,EAAA,KAAA,IAAS,EAAC;AAClC,EAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,4BACG,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,UAAA,EAAA,EAAW,OAAO,EAAE,aAAA,EAAe,OAAS,EAAA,KAAA,EAAO,MAAM,KAAO,EAAA,CAAA;AAAA,oBACjE,GAAA,CAAC,QAAK,SAAS,EAAA,IAAA,EAAC,SAAS,CACtB,EAAA,QAAA,EAAA,KAAA,CAAM,IAAI,CAAY,QAAA,KAAA;AACrB,MAAA,uBACG,IAAA,CAAA,IAAA,EAAA,EAAK,IAAI,EAAA,IAAA,EAAC,IAAI,EACb,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,MAAM,QAAU,EAAA,CAAA;AAAA,4BACnD,OAAQ,EAAA,EAAA;AAAA,OAAA,EAAA,EAFa,SAAS,EAGjC,CAAA;AAAA,KAEH,CACH,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -34,6 +34,7 @@ import { capitalize } from 'lodash';
34
34
  import { usePaginatedPosts } from '../../hooks/usePaginatedPosts.esm.js';
35
35
  import { SearchBar } from '../SearchBar/SearchBar.esm.js';
36
36
  import FilterList from '@material-ui/icons/FilterList';
37
+ import { PostsGridContent } from '../PostsGrid/PostsGridContent.esm.js';
37
38
 
38
39
  const PostsContainer = (props) => {
39
40
  const {
@@ -178,7 +179,7 @@ const PostsContainer = (props) => {
178
179
  ...props.filterPanelProps
179
180
  }
180
181
  ) }),
181
- /* @__PURE__ */ jsx(
182
+ view === "list" && /* @__PURE__ */ jsx(
182
183
  PostList,
183
184
  {
184
185
  loading,
@@ -193,6 +194,21 @@ const PostsContainer = (props) => {
193
194
  hasMore,
194
195
  loadNextPage
195
196
  }
197
+ ),
198
+ view === "grid" && /* @__PURE__ */ jsx(
199
+ PostsGridContent,
200
+ {
201
+ loading,
202
+ error,
203
+ response: combinedResponse,
204
+ entity: entity ?? filters.entity,
205
+ showNoQuestionsBtn,
206
+ entityPage: entity !== void 0,
207
+ tags: tags ?? filters.tags,
208
+ type,
209
+ hasMore,
210
+ loadNextPage
211
+ }
196
212
  )
197
213
  ] });
198
214
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PostsContainer.esm.js","sources":["../../../src/components/PostsContainer/PostsContainer.tsx"],"sourcesContent":["import {\n CommonFilterPanelProps,\n FilterPanel,\n PostFilters,\n} from '../FilterPanel/FilterPanel';\nimport { PostList } from './PostList';\nimport { AskQuestionButton } from '../Buttons/AskQuestionButton';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport { TagFollowButton } from '../Buttons/TagFollowButton';\nimport { EntityFollowButton } from '../Buttons/EntityFollowButton';\nimport { CreateLinkButton, WriteArticleButton } from '../Buttons';\nimport { ViewToggle, ViewType } from '../ViewToggle/ViewToggle';\nimport { capitalize } from 'lodash';\nimport {\n PaginatedPostsProps,\n usePaginatedPosts,\n} from '../../hooks/usePaginatedPosts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\nimport { SearchBar } from '../SearchBar/SearchBar';\nimport { Box, Button, Collapse, Grid, Typography } from '@material-ui/core';\nimport FilterList from '@material-ui/icons/FilterList';\n\nexport type PostsContainerProps = PaginatedPostsProps & {\n entity?: string;\n filterPanelProps?: CommonFilterPanelProps;\n showTypeLabel?: boolean;\n view?: ViewType;\n onViewChange?: (view: ViewType) => void;\n};\n\nexport const PostsContainer = (props: PostsContainerProps) => {\n const {\n type,\n tags,\n author,\n entity,\n showFilters,\n showTitle,\n title,\n favorite,\n showAskButton,\n showWriteButton,\n showLinkButton,\n showNoQuestionsBtn,\n showTypeLabel,\n view,\n onViewChange,\n } = props;\n const {\n onSearchQueryChange,\n filters,\n response,\n loading,\n error,\n setShowFilterPanel,\n showFilterPanel,\n onFilterChange,\n posts,\n hasMore,\n loadNextPage,\n } = usePaginatedPosts(props);\n const combinedResponse = response ? { ...response, posts } : response;\n const { t } = useTranslationRef(qetaTranslationRef);\n\n const itemType = capitalize(t(`common.${type ?? 'post'}`, {}));\n let shownTitle = title;\n let link = undefined;\n let btn = undefined;\n if (author) {\n shownTitle = t(`postsContainer.title.by`, { itemType });\n link = <EntityRefLink entityRef={author} hideIcon defaultKind=\"user\" />;\n } else if (entity) {\n shownTitle = t(`postsContainer.title.about`, { itemType });\n link = <EntityRefLink entityRef={entity} />;\n btn = <EntityFollowButton entityRef={entity} />;\n } else if (tags) {\n shownTitle = `#${tags.join(', #')}`;\n if (tags.length === 1) {\n btn = <TagFollowButton tag={tags[0]} />;\n }\n } else if (favorite) {\n shownTitle = t('postsContainer.title.favorite', {\n itemType: itemType.toLowerCase(),\n });\n }\n\n return (\n <Box className=\"qetaPostsContainer\">\n {(showTitle || showAskButton || showWriteButton || showLinkButton) && (\n <Box mb={3}>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\">\n <Grid item>\n {showTitle && (\n <Typography\n variant=\"h5\"\n className=\"qetaPostsContainerTitle\"\n style={{ fontWeight: 500, paddingBottom: 2 }}\n >\n {shownTitle} {link} {btn}\n </Typography>\n )}\n </Grid>\n <Grid item>\n {showAskButton && (\n <AskQuestionButton\n entity={entity ?? filters.entity}\n entityPage={entity !== undefined}\n tags={tags}\n />\n )}\n {showWriteButton && (\n <WriteArticleButton\n entity={entity ?? filters.entity}\n entityPage={entity !== undefined}\n tags={tags}\n />\n )}\n {showLinkButton && (\n <CreateLinkButton\n entity={entity ?? filters.entity}\n entityPage={entity !== undefined}\n tags={tags}\n />\n )}\n </Grid>\n </Grid>\n </Box>\n )}\n <Grid container alignItems=\"flex-end\" justifyContent=\"space-between\">\n <Grid item xs={12} md={4}>\n <SearchBar\n onSearch={onSearchQueryChange}\n label={t('postsContainer.search.label', {\n itemType: itemType.toLowerCase(),\n })}\n loading={loading}\n />\n </Grid>\n </Grid>\n {response && (\n <Box mt={2} mb={2}>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\">\n <Grid item>\n <Typography\n variant=\"h6\"\n className=\"qetaPostsContainerQuestionCount\"\n style={{ fontWeight: 500, paddingBottom: 2 }}\n >\n {t('common.posts', { count: response?.total ?? 0, itemType })}\n </Typography>\n </Grid>\n <Grid item>\n <Grid container spacing={1} alignItems=\"center\">\n {view && onViewChange && (\n <Grid item>\n <ViewToggle view={view} onChange={onViewChange} />\n </Grid>\n )}\n {(showFilters ?? true) && (\n <Grid item>\n <Button\n onClick={() => {\n setShowFilterPanel(!showFilterPanel);\n }}\n className=\"qetaPostsContainerFilterPanelBtn\"\n startIcon={<FilterList />}\n >\n {t('filterPanel.filterButton')}\n </Button>\n </Grid>\n )}\n </Grid>\n </Grid>\n </Grid>\n </Box>\n )}\n {(showFilters ?? true) && (\n <Collapse in={showFilterPanel}>\n <FilterPanel<PostFilters>\n onChange={onFilterChange}\n filters={filters}\n type={type}\n showEntityFilter={entity === undefined}\n {...props.filterPanelProps}\n />\n </Collapse>\n )}\n <PostList\n loading={loading}\n error={error}\n response={combinedResponse}\n entity={entity ?? filters.entity}\n showNoQuestionsBtn={showNoQuestionsBtn}\n entityPage={entity !== undefined}\n tags={tags ?? filters.tags}\n type={type}\n showTypeLabel={showTypeLabel}\n hasMore={hasMore}\n loadNextPage={loadNextPage}\n />\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostsContainer.esm.js","sources":["../../../src/components/PostsContainer/PostsContainer.tsx"],"sourcesContent":["import {\n CommonFilterPanelProps,\n FilterPanel,\n PostFilters,\n} from '../FilterPanel/FilterPanel';\nimport { PostList } from './PostList';\nimport { AskQuestionButton } from '../Buttons/AskQuestionButton';\nimport { EntityRefLink } from '@backstage/plugin-catalog-react';\nimport { TagFollowButton } from '../Buttons/TagFollowButton';\nimport { EntityFollowButton } from '../Buttons/EntityFollowButton';\nimport { CreateLinkButton, WriteArticleButton } from '../Buttons';\nimport { ViewToggle, ViewType } from '../ViewToggle/ViewToggle';\nimport { capitalize } from 'lodash';\nimport {\n PaginatedPostsProps,\n usePaginatedPosts,\n} from '../../hooks/usePaginatedPosts';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport { qetaTranslationRef } from '../../translation.ts';\nimport { SearchBar } from '../SearchBar/SearchBar';\nimport { Box, Button, Collapse, Grid, Typography } from '@material-ui/core';\nimport FilterList from '@material-ui/icons/FilterList';\nimport { PostsGridContent } from '../PostsGrid/PostsGridContent';\n\nexport type PostsContainerProps = PaginatedPostsProps & {\n entity?: string;\n filterPanelProps?: CommonFilterPanelProps;\n showTypeLabel?: boolean;\n view?: ViewType;\n onViewChange?: (view: ViewType) => void;\n};\n\nexport const PostsContainer = (props: PostsContainerProps) => {\n const {\n type,\n tags,\n author,\n entity,\n showFilters,\n showTitle,\n title,\n favorite,\n showAskButton,\n showWriteButton,\n showLinkButton,\n showNoQuestionsBtn,\n showTypeLabel,\n view,\n onViewChange,\n } = props;\n const {\n onSearchQueryChange,\n filters,\n response,\n loading,\n error,\n setShowFilterPanel,\n showFilterPanel,\n onFilterChange,\n posts,\n hasMore,\n loadNextPage,\n } = usePaginatedPosts(props);\n const combinedResponse = response ? { ...response, posts } : response;\n const { t } = useTranslationRef(qetaTranslationRef);\n\n const itemType = capitalize(t(`common.${type ?? 'post'}`, {}));\n let shownTitle = title;\n let link = undefined;\n let btn = undefined;\n if (author) {\n shownTitle = t(`postsContainer.title.by`, { itemType });\n link = <EntityRefLink entityRef={author} hideIcon defaultKind=\"user\" />;\n } else if (entity) {\n shownTitle = t(`postsContainer.title.about`, { itemType });\n link = <EntityRefLink entityRef={entity} />;\n btn = <EntityFollowButton entityRef={entity} />;\n } else if (tags) {\n shownTitle = `#${tags.join(', #')}`;\n if (tags.length === 1) {\n btn = <TagFollowButton tag={tags[0]} />;\n }\n } else if (favorite) {\n shownTitle = t('postsContainer.title.favorite', {\n itemType: itemType.toLowerCase(),\n });\n }\n\n return (\n <Box className=\"qetaPostsContainer\">\n {(showTitle || showAskButton || showWriteButton || showLinkButton) && (\n <Box mb={3}>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\">\n <Grid item>\n {showTitle && (\n <Typography\n variant=\"h5\"\n className=\"qetaPostsContainerTitle\"\n style={{ fontWeight: 500, paddingBottom: 2 }}\n >\n {shownTitle} {link} {btn}\n </Typography>\n )}\n </Grid>\n <Grid item>\n {showAskButton && (\n <AskQuestionButton\n entity={entity ?? filters.entity}\n entityPage={entity !== undefined}\n tags={tags}\n />\n )}\n {showWriteButton && (\n <WriteArticleButton\n entity={entity ?? filters.entity}\n entityPage={entity !== undefined}\n tags={tags}\n />\n )}\n {showLinkButton && (\n <CreateLinkButton\n entity={entity ?? filters.entity}\n entityPage={entity !== undefined}\n tags={tags}\n />\n )}\n </Grid>\n </Grid>\n </Box>\n )}\n <Grid container alignItems=\"flex-end\" justifyContent=\"space-between\">\n <Grid item xs={12} md={4}>\n <SearchBar\n onSearch={onSearchQueryChange}\n label={t('postsContainer.search.label', {\n itemType: itemType.toLowerCase(),\n })}\n loading={loading}\n />\n </Grid>\n </Grid>\n {response && (\n <Box mt={2} mb={2}>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\">\n <Grid item>\n <Typography\n variant=\"h6\"\n className=\"qetaPostsContainerQuestionCount\"\n style={{ fontWeight: 500, paddingBottom: 2 }}\n >\n {t('common.posts', { count: response?.total ?? 0, itemType })}\n </Typography>\n </Grid>\n <Grid item>\n <Grid container spacing={1} alignItems=\"center\">\n {view && onViewChange && (\n <Grid item>\n <ViewToggle view={view} onChange={onViewChange} />\n </Grid>\n )}\n {(showFilters ?? true) && (\n <Grid item>\n <Button\n onClick={() => {\n setShowFilterPanel(!showFilterPanel);\n }}\n className=\"qetaPostsContainerFilterPanelBtn\"\n startIcon={<FilterList />}\n >\n {t('filterPanel.filterButton')}\n </Button>\n </Grid>\n )}\n </Grid>\n </Grid>\n </Grid>\n </Box>\n )}\n {(showFilters ?? true) && (\n <Collapse in={showFilterPanel}>\n <FilterPanel<PostFilters>\n onChange={onFilterChange}\n filters={filters}\n type={type}\n showEntityFilter={entity === undefined}\n {...props.filterPanelProps}\n />\n </Collapse>\n )}\n {view === 'list' && (\n <PostList\n loading={loading}\n error={error}\n response={combinedResponse}\n entity={entity ?? filters.entity}\n showNoQuestionsBtn={showNoQuestionsBtn}\n entityPage={entity !== undefined}\n tags={tags ?? filters.tags}\n type={type}\n showTypeLabel={showTypeLabel}\n hasMore={hasMore}\n loadNextPage={loadNextPage}\n />\n )}\n {view === 'grid' && (\n <PostsGridContent\n loading={loading}\n error={error}\n response={combinedResponse}\n entity={entity ?? filters.entity}\n showNoQuestionsBtn={showNoQuestionsBtn}\n entityPage={entity !== undefined}\n tags={tags ?? filters.tags}\n type={type}\n hasMore={hasMore}\n loadNextPage={loadNextPage}\n />\n )}\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ const RelativeTimeWithTooltip = (props) => {
16
16
  if (typeof date === "string" || date instanceof String) {
17
17
  date = new Date(date);
18
18
  }
19
- return /* @__PURE__ */ jsx(Tooltip, { title: date.toLocaleString(navigator.languages), children: /* @__PURE__ */ jsx("div", { style: { display: "inline" }, children: /* @__PURE__ */ jsx(RelativeTime, { value: date }) }) });
19
+ return /* @__PURE__ */ jsx(Tooltip, { title: date.toLocaleString(navigator.languages), children: /* @__PURE__ */ jsx(RelativeTime, { value: date }) });
20
20
  };
21
21
 
22
22
  export { RelativeTimeWithTooltip };
@@ -1 +1 @@
1
- {"version":3,"file":"RelativeTimeWithTooltip.esm.js","sources":["../../../src/components/RelativeTimeWithTooltip/RelativeTimeWithTooltip.tsx"],"sourcesContent":["import { useState, useEffect } from 'react';\n// @ts-ignore\nimport RelativeTime from 'react-relative-time';\nimport { Tooltip } from '@material-ui/core';\n\nexport const RelativeTimeWithTooltip = (props: { value: Date | string }) => {\n const { value } = props;\n let date = value;\n const [updates, setUpdates] = useState(1);\n\n useEffect(() => {\n const interval = setInterval(() => {\n setUpdates(updates === 1 ? 0 : 1);\n }, 30000);\n return () => clearInterval(interval);\n }, [updates, setUpdates]);\n\n if (typeof date === 'string' || date instanceof String) {\n date = new Date(date);\n }\n\n return (\n <Tooltip title={date.toLocaleString(navigator.languages)}>\n <div style={{ display: 'inline' }}>\n <RelativeTime value={date} />\n </div>\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;AAKa,MAAA,uBAAA,GAA0B,CAAC,KAAoC,KAAA;AAC1E,EAAM,MAAA,EAAE,OAAU,GAAA,KAAA;AAClB,EAAA,IAAI,IAAO,GAAA,KAAA;AACX,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,CAAC,CAAA;AAExC,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,QAAA,GAAW,YAAY,MAAM;AACjC,MAAW,UAAA,CAAA,OAAA,KAAY,CAAI,GAAA,CAAA,GAAI,CAAC,CAAA;AAAA,OAC/B,GAAK,CAAA;AACR,IAAO,OAAA,MAAM,cAAc,QAAQ,CAAA;AAAA,GAClC,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA;AAExB,EAAA,IAAI,OAAO,IAAA,KAAS,QAAY,IAAA,IAAA,YAAgB,MAAQ,EAAA;AACtD,IAAO,IAAA,GAAA,IAAI,KAAK,IAAI,CAAA;AAAA;AAGtB,EACE,uBAAA,GAAA,CAAC,WAAQ,KAAO,EAAA,IAAA,CAAK,eAAe,SAAU,CAAA,SAAS,GACrD,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,UACrB,EAAA,QAAA,kBAAA,GAAA,CAAC,gBAAa,KAAO,EAAA,IAAA,EAAM,GAC7B,CACF,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"RelativeTimeWithTooltip.esm.js","sources":["../../../src/components/RelativeTimeWithTooltip/RelativeTimeWithTooltip.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n// @ts-ignore\nimport RelativeTime from 'react-relative-time';\nimport { Tooltip } from '@material-ui/core';\n\nexport const RelativeTimeWithTooltip = (props: { value: Date | string }) => {\n const { value } = props;\n let date = value;\n const [updates, setUpdates] = useState(1);\n\n useEffect(() => {\n const interval = setInterval(() => {\n setUpdates(updates === 1 ? 0 : 1);\n }, 30000);\n return () => clearInterval(interval);\n }, [updates, setUpdates]);\n\n if (typeof date === 'string' || date instanceof String) {\n date = new Date(date);\n }\n\n return (\n <Tooltip title={date.toLocaleString(navigator.languages)}>\n <RelativeTime value={date} />\n </Tooltip>\n );\n};\n"],"names":[],"mappings":";;;;;AAKa,MAAA,uBAAA,GAA0B,CAAC,KAAoC,KAAA;AAC1E,EAAM,MAAA,EAAE,OAAU,GAAA,KAAA;AAClB,EAAA,IAAI,IAAO,GAAA,KAAA;AACX,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,CAAC,CAAA;AAExC,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,QAAA,GAAW,YAAY,MAAM;AACjC,MAAW,UAAA,CAAA,OAAA,KAAY,CAAI,GAAA,CAAA,GAAI,CAAC,CAAA;AAAA,OAC/B,GAAK,CAAA;AACR,IAAO,OAAA,MAAM,cAAc,QAAQ,CAAA;AAAA,GAClC,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA;AAExB,EAAA,IAAI,OAAO,IAAA,KAAS,QAAY,IAAA,IAAA,YAAgB,MAAQ,EAAA;AACtD,IAAO,IAAA,GAAA,IAAI,KAAK,IAAI,CAAA;AAAA;AAGtB,EAAA,uBACG,GAAA,CAAA,OAAA,EAAA,EAAQ,KAAO,EAAA,IAAA,CAAK,cAAe,CAAA,SAAA,CAAU,SAAS,CAAA,EACrD,QAAC,kBAAA,GAAA,CAAA,YAAA,EAAA,EAAa,KAAO,EAAA,IAAA,EAAM,CAC7B,EAAA,CAAA;AAEJ;;;;"}
package/dist/index.d.ts CHANGED
@@ -1272,13 +1272,13 @@ declare const qetaTranslationRef: _backstage_frontend_plugin_api.TranslationRef<
1272
1272
  readonly "contentHealth.reviewHistory": "Review History";
1273
1273
  readonly "reviewPage.title": "Review";
1274
1274
  readonly "reviewPage.description": "Review posts that are possibly outdated.";
1275
+ readonly "reviewPage.errorLoading": "Could not load posts for review";
1275
1276
  readonly "reviewPage.table.author": "Author";
1276
1277
  readonly "reviewPage.table.score": "Health Score";
1277
1278
  readonly "reviewPage.table.created": "Created";
1278
1279
  readonly "reviewPage.table.title": "Title";
1279
1280
  readonly "reviewPage.table.healthScore": "Health";
1280
1281
  readonly "reviewPage.table.actions": "Actions";
1281
- readonly "reviewPage.errorLoading": "Could not load posts for review";
1282
1282
  readonly "reviewPage.actions.markValid": "Mark Valid";
1283
1283
  readonly "reviewPage.actions.markObsolete": "Mark Obsolete";
1284
1284
  readonly "reviewPage.dialog.title": "Mark Post as Obsolete";
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "frontend",
8
8
  "backstage.io"
9
9
  ],
10
- "version": "3.52.1",
10
+ "version": "3.52.2",
11
11
  "main": "dist/index.esm.js",
12
12
  "types": "dist/index.d.ts",
13
13
  "prepublishOnly": "yarn tsc && yarn build",
@@ -57,7 +57,7 @@
57
57
  "@backstage/plugin-permission-common": "^0.9.3",
58
58
  "@backstage/plugin-permission-react": "^0.4.39",
59
59
  "@backstage/plugin-signals-react": "^0.0.18",
60
- "@drodil/backstage-plugin-qeta-common": "^3.52.1",
60
+ "@drodil/backstage-plugin-qeta-common": "^3.52.2",
61
61
  "@jsdevtools/rehype-toc": "^3.0.2",
62
62
  "@material-ui/core": "^4.12.2",
63
63
  "@material-ui/icons": "^4.11.3",