From 2143a0ee8549140808205e507a06b6c334b3135b Mon Sep 17 00:00:00 2001 From: aarish mansur Date: Fri, 10 Apr 2026 16:04:14 +0530 Subject: [PATCH] feat(api-docs): use catalog presentation for API titles Signed-off-by: aarish mansur --- .../ApiDefinitionCard/ApiDefinitionCard.tsx | 11 +++++++---- .../ApiDefinitionDialog/ApiDefinitionDialog.tsx | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx b/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx index 96419fa6e7..acc15dccca 100644 --- a/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx +++ b/plugins/api-docs/src/components/ApiDefinitionCard/ApiDefinitionCard.tsx @@ -15,7 +15,10 @@ */ import { ApiEntity } from '@backstage/catalog-model'; -import { useEntity } from '@backstage/plugin-catalog-react'; +import { + useEntity, + useEntityPresentation, +} from '@backstage/plugin-catalog-react'; import { CardTab, TabbedCard } from '@backstage/core-components'; import { useApi } from '@backstage/core-plugin-api'; import { useTranslationRef } from '@backstage/frontend-plugin-api'; @@ -30,17 +33,17 @@ export const ApiDefinitionCard = () => { const config = useApi(apiDocsConfigRef); const { getApiDefinitionWidget } = config; const { t } = useTranslationRef(apiDocsTranslationRef); + const { primaryTitle } = useEntityPresentation(entity); if (!entity) { return {t('apiDefinitionCard.error.title')}; } const definitionWidget = getApiDefinitionWidget(entity); - const entityTitle = entity.metadata.title ?? entity.metadata.name; if (definitionWidget) { return ( - + {definitionWidget.component(entity.spec.definition)} @@ -56,7 +59,7 @@ export const ApiDefinitionCard = () => { return ( diff --git a/plugins/api-docs/src/components/ApiDefinitionDialog/ApiDefinitionDialog.tsx b/plugins/api-docs/src/components/ApiDefinitionDialog/ApiDefinitionDialog.tsx index 84c50acda8..835b97aabf 100644 --- a/plugins/api-docs/src/components/ApiDefinitionDialog/ApiDefinitionDialog.tsx +++ b/plugins/api-docs/src/components/ApiDefinitionDialog/ApiDefinitionDialog.tsx @@ -16,6 +16,7 @@ import { ApiEntity } from '@backstage/catalog-model'; import { useApi } from '@backstage/core-plugin-api'; +import { EntityDisplayName } from '@backstage/plugin-catalog-react'; import Box from '@material-ui/core/Box'; import Button from '@material-ui/core/Button'; import Dialog from '@material-ui/core/Dialog'; @@ -137,7 +138,7 @@ export function ApiDefinitionDialog(props: { {definitionWidget?.title ?? t('apiDefinitionDialog.rawButtonTitle')} - {entity.metadata.title ?? entity.metadata.name} +