Merge pull request #29819 from backstage/blam/route-ref-fix

NFS: Fix issue with `UnregisterEntityDialog` not being able to access `routeRefs` in `DialogApi.show`
This commit is contained in:
Fredrik Adelöw
2025-05-06 11:27:43 +02:00
committed by GitHub
2 changed files with 24 additions and 15 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog': patch
---
Fix for missing `routeRef` when using `core-plugin-api` in a dialog context
+19 -15
View File
@@ -37,6 +37,7 @@ import {
import { rootRouteRef, unregisterRedirectRouteRef } from '../routes';
import { catalogEntityDeletePermission } from '@backstage/plugin-catalog-common/alpha';
import { useEffect } from 'react';
import { compatWrapper } from '@backstage/core-compat-api';
export const copyEntityUrlContextMenuItem = EntityContextMenuItemBlueprint.make(
{
@@ -99,6 +100,7 @@ export const unregisterEntityContextMenuItem =
const dialogApi = useApi(dialogApiRef);
const navigate = useNavigate();
const catalogRoute = useRouteRef(rootRouteRef);
const { t } = useTranslationRef(catalogTranslationRef);
const unregisterRedirectRoute = useRouteRef(unregisterRedirectRouteRef);
const unregisterPermission = useEntityPermission(
@@ -109,21 +111,23 @@ export const unregisterEntityContextMenuItem =
title: t('entityContextMenu.unregisterMenuTitle'),
disabled: !unregisterPermission.allowed,
onClick: async () => {
dialogApi.showModal(({ dialog }: { dialog: DialogApiDialog }) => (
<UnregisterEntityDialog
open
entity={entity}
onClose={() => dialog.close()}
onConfirm={() => {
dialog.close();
navigate(
unregisterRedirectRoute
? unregisterRedirectRoute()
: catalogRoute(),
);
}}
/>
));
dialogApi.showModal(({ dialog }: { dialog: DialogApiDialog }) =>
compatWrapper(
<UnregisterEntityDialog
open
entity={entity}
onClose={() => dialog.close()}
onConfirm={() => {
dialog.close();
navigate(
unregisterRedirectRoute
? unregisterRedirectRoute()
: catalogRoute(),
);
}}
/>,
),
);
},
};
},