From 8db0983eb75dd13d07a7c3aca5a392147aa9ce88 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 12 May 2022 13:16:26 +0200 Subject: [PATCH] chore: reworking some of the table to provider better links Signed-off-by: blam --- .../ListTasksPage/ListTasksPage.tsx | 6 ++++- .../columns/OwnerEntityColumn.tsx | 26 +++++++++---------- .../columns/TemplateTitleColumn.tsx | 8 ++++-- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx b/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx index 7866375fb1..8d51c9c403 100644 --- a/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx +++ b/plugins/scaffolder/src/components/ListTasksPage/ListTasksPage.tsx @@ -24,7 +24,10 @@ import { Progress, } from '@backstage/core-components'; import { useApi, useRouteRef } from '@backstage/core-plugin-api'; -import { CatalogFilterLayout } from '@backstage/plugin-catalog-react'; +import { + CatalogFilterLayout, + EntityRefLink, +} from '@backstage/plugin-catalog-react'; import useAsync from 'react-use/lib/useAsync'; import MaterialTable from '@material-table/core'; import React, { useState } from 'react'; @@ -38,6 +41,7 @@ import { TaskStatusColumn, TemplateTitleColumn, } from './columns'; +import { parseEntityRef } from '@backstage/catalog-model'; export interface MyTaskPageProps { initiallySelectedFilter?: TasksOwnerFilterKind; diff --git a/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx b/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx index 49c00316c7..0c83c7cbc2 100644 --- a/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx +++ b/plugins/scaffolder/src/components/ListTasksPage/columns/OwnerEntityColumn.tsx @@ -13,37 +13,37 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Link } from '@backstage/core-components'; -import { useApi, useRouteRef } from '@backstage/core-plugin-api'; +import { useApi } from '@backstage/core-plugin-api'; import React from 'react'; import useAsync from 'react-use/lib/useAsync'; -import { ListItemText } from '@material-ui/core'; -import { catalogApiRef, entityRouteRef } from '@backstage/plugin-catalog-react'; +import { catalogApiRef, EntityRefLink } from '@backstage/plugin-catalog-react'; import { parseEntityRef, UserEntity } from '@backstage/catalog-model'; export const OwnerEntityColumn = ({ entityRef }: { entityRef?: string }) => { const catalogApi = useApi(catalogApiRef); - const catalogEntityRoute = useRouteRef(entityRouteRef); const { value, loading, error } = useAsync( () => catalogApi.getEntityByRef(entityRef || ''), [catalogApi, entityRef], ); + if (!entityRef) { + return

Unknown

; + } + if (loading || error) { return null; } return ( - - - + ); }; diff --git a/plugins/scaffolder/src/components/ListTasksPage/columns/TemplateTitleColumn.tsx b/plugins/scaffolder/src/components/ListTasksPage/columns/TemplateTitleColumn.tsx index 8f86734809..0561b40392 100644 --- a/plugins/scaffolder/src/components/ListTasksPage/columns/TemplateTitleColumn.tsx +++ b/plugins/scaffolder/src/components/ListTasksPage/columns/TemplateTitleColumn.tsx @@ -17,6 +17,8 @@ import { useApi } from '@backstage/core-plugin-api'; import React from 'react'; import { scaffolderApiRef } from '../../../api'; import useAsync from 'react-use/lib/useAsync'; +import { parseEntityRef } from '@backstage/catalog-model'; +import { EntityRefLink } from '@backstage/plugin-catalog-react'; export const TemplateTitleColumn = ({ entityRef }: { entityRef?: string }) => { const scaffolder = useApi(scaffolderApiRef); @@ -25,9 +27,11 @@ export const TemplateTitleColumn = ({ entityRef }: { entityRef?: string }) => { [scaffolder, entityRef], ); - if (loading || error) { + if (loading || error || !entityRef) { return null; } - return

{value?.title}

; + return ( + + ); };