diff --git a/.changeset/rotten-beds-itch.md b/.changeset/rotten-beds-itch.md new file mode 100644 index 0000000000..c046e71572 --- /dev/null +++ b/.changeset/rotten-beds-itch.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': patch +--- + +Show a Not Found message when navigating to a nonexistent entity diff --git a/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx b/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx index 34378d5496..6f9899ff82 100644 --- a/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx +++ b/plugins/catalog/src/components/EntityPageLayout/EntityPageLayout.tsx @@ -18,7 +18,15 @@ import { ENTITY_DEFAULT_NAMESPACE, RELATION_OWNED_BY, } from '@backstage/catalog-model'; -import { Content, Header, HeaderLabel, Page, Progress } from '@backstage/core'; +import { + Content, + Header, + HeaderLabel, + Link, + Page, + Progress, + WarningPanel, +} from '@backstage/core'; import { EntityContext, EntityRefLinks, @@ -125,7 +133,11 @@ export const EntityPageLayout = ({ children }: PropsWithChildren<{}>) => { )} - {loading && } + {loading && ( + + + + )} {entity && {children}} @@ -134,6 +146,19 @@ export const EntityPageLayout = ({ children }: PropsWithChildren<{}>) => { {error.toString()} )} + + {!loading && !error && !entity && ( + + + There is no {kind} with the requested{' '} + + kind, namespace, and name + + . + + + )} + ) => { ); }; + EntityPageLayout.Content = Tabbed.Content;