diff --git a/.changeset/stale-shirts-grow.md b/.changeset/stale-shirts-grow.md new file mode 100644 index 0000000000..93d38fed5b --- /dev/null +++ b/.changeset/stale-shirts-grow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Removed import of deprecated hook. diff --git a/.changeset/wicked-masks-own.md b/.changeset/wicked-masks-own.md new file mode 100644 index 0000000000..cdca1c10a6 --- /dev/null +++ b/.changeset/wicked-masks-own.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +Deprecated the `useOwnedEntities` hook which is replaced by the IdentityAPI. +Deprecated the `useOwnUser` hook due to low external value. diff --git a/plugins/catalog-react/api-report.md b/plugins/catalog-react/api-report.md index 0a7bbbfc9e..4efd2fd9e9 100644 --- a/plugins/catalog-react/api-report.md +++ b/plugins/catalog-react/api-report.md @@ -584,13 +584,13 @@ export function useEntityPermission(permission: Permission): { // @public export function useEntityTypeFilter(): EntityTypeReturn; -// @public +// @public @deprecated export function useOwnedEntities(allowedKinds?: string[]): { loading: boolean; ownedEntities: GetEntitiesResponse | undefined; }; -// @public +// @public @deprecated export function useOwnUser(): AsyncState; // @public (undocumented) diff --git a/plugins/catalog-react/src/hooks/useOwnUser.ts b/plugins/catalog-react/src/hooks/useOwnUser.ts index 1477de67aa..74c44bc638 100644 --- a/plugins/catalog-react/src/hooks/useOwnUser.ts +++ b/plugins/catalog-react/src/hooks/useOwnUser.ts @@ -26,6 +26,7 @@ import { identityApiRef, useApi } from '@backstage/core-plugin-api'; /** * Get the catalog User entity (if any) that matches the logged-in user. * @public + * @deprecated due to low external usage. */ export function useOwnUser(): AsyncState { const catalogApi = useApi(catalogApiRef); diff --git a/plugins/catalog-react/src/hooks/useOwnedEntities.ts b/plugins/catalog-react/src/hooks/useOwnedEntities.ts index dad73740c1..da023a543e 100644 --- a/plugins/catalog-react/src/hooks/useOwnedEntities.ts +++ b/plugins/catalog-react/src/hooks/useOwnedEntities.ts @@ -32,6 +32,7 @@ import { useMemo } from 'react'; * @public * * @param allowedKinds - Array of allowed kinds to filter the entities + * @deprecated Use `ownershipEntityRefs` from `identityApi.getBackstageIdentity()` instead. */ export function useOwnedEntities(allowedKinds?: string[]): { loading: boolean; diff --git a/plugins/techdocs/src/home/components/TechDocsCustomHome.tsx b/plugins/techdocs/src/home/components/TechDocsCustomHome.tsx index b32cadaa05..54c622fdf3 100644 --- a/plugins/techdocs/src/home/components/TechDocsCustomHome.tsx +++ b/plugins/techdocs/src/home/components/TechDocsCustomHome.tsx @@ -15,7 +15,7 @@ */ import React, { useState } from 'react'; -import useAsync from 'react-use/lib/useAsync'; +import useAsync, { AsyncState } from 'react-use/lib/useAsync'; import { makeStyles } from '@material-ui/core'; import { CSSProperties } from '@material-ui/styles'; import { @@ -23,9 +23,13 @@ import { catalogApiRef, CatalogApi, isOwnerOf, - useOwnUser, } from '@backstage/plugin-catalog-react'; -import { Entity } from '@backstage/catalog-model'; +import { + DEFAULT_NAMESPACE, + Entity, + parseEntityRef, + UserEntity, +} from '@backstage/catalog-model'; import { DocsTable } from './DocsTable'; import { DocsCardGrid } from './DocsCardGrid'; import { TechDocsPageWrapper } from './TechDocsPageWrapper'; @@ -40,7 +44,7 @@ import { ContentHeader, } from '@backstage/core-components'; -import { useApi } from '@backstage/core-plugin-api'; +import { identityApiRef, useApi } from '@backstage/core-plugin-api'; const panels = { DocsTable: DocsTable, @@ -195,3 +199,18 @@ export const TechDocsCustomHome = ({ ); }; + +function useOwnUser(): AsyncState { + const catalogApi = useApi(catalogApiRef); + const identityApi = useApi(identityApiRef); + + return useAsync(async () => { + const identity = await identityApi.getBackstageIdentity(); + return catalogApi.getEntityByName( + parseEntityRef(identity.userEntityRef, { + defaultKind: 'User', + defaultNamespace: DEFAULT_NAMESPACE, + }), + ) as Promise; + }, [catalogApi, identityApi]); +}