diff --git a/plugins/catalog/src/components/AboutCard/AboutCard.tsx b/plugins/catalog/src/components/AboutCard/AboutCard.tsx
index 8e90659520..3c2dcb1b34 100644
--- a/plugins/catalog/src/components/AboutCard/AboutCard.tsx
+++ b/plugins/catalog/src/components/AboutCard/AboutCard.tsx
@@ -16,11 +16,6 @@
import { useCallback } from 'react';
-import { makeStyles } from '@material-ui/core/styles';
-import Card from '@material-ui/core/Card';
-import CardContent from '@material-ui/core/CardContent';
-import CardHeader from '@material-ui/core/CardHeader';
-import Divider from '@material-ui/core/Divider';
import IconButton from '@material-ui/core/IconButton';
import CachedIcon from '@material-ui/icons/Cached';
import EditIcon from '@material-ui/icons/Edit';
@@ -31,9 +26,9 @@ import {
AppIcon,
HeaderIconLinkRow,
IconLinkVerticalProps,
- InfoCardVariants,
Link,
} from '@backstage/core-components';
+import { EntityInfoCard } from '@backstage/plugin-catalog-react';
import {
alertApiRef,
errorApiRef,
@@ -152,42 +147,25 @@ function DefaultAboutCardSubheader() {
return ;
}
-const useStyles = makeStyles({
- gridItemCard: {
- display: 'flex',
- flexDirection: 'column',
- height: 'calc(100% - 10px)', // for pages without content header
- marginBottom: '10px',
- },
- fullHeightCard: {
- display: 'flex',
- flexDirection: 'column',
- height: '100%',
- },
- gridItemCardContent: {
- flex: 1,
- },
- fullHeightCardContent: {
- flex: 1,
- },
-});
-
/**
* Props for {@link EntityAboutCard}.
*
* @public
*/
export type AboutCardProps = {
- variant?: InfoCardVariants;
+ // Accepted for API compatibility but not applied.
+ // The new entity page layout handles card sizing.
+ // TODO: Discuss removal in code review.
+ variant?: string;
};
export interface InternalAboutCardProps extends AboutCardProps {
- subheader?: JSX.Element;
+ /** Icon link row rendered at the top of the card body. */
+ iconLinks?: JSX.Element;
}
export function InternalAboutCard(props: InternalAboutCardProps) {
- const { variant, subheader } = props;
- const classes = useStyles();
+ const { variant: _variant, iconLinks } = props;
const { entity } = useEntity();
const catalogApi = useApi(catalogApiRef);
const alertApi = useApi(alertApiRef);
@@ -202,20 +180,6 @@ export function InternalAboutCard(props: InternalAboutCardProps) {
const entityMetadataEditUrl =
entity.metadata.annotations?.[ANNOTATION_EDIT_URL];
- let cardClass = '';
- if (variant === 'gridItem') {
- cardClass = classes.gridItemCard;
- } else if (variant === 'fullHeight') {
- cardClass = classes.fullHeightCard;
- }
-
- let cardContentClass = '';
- if (variant === 'gridItem') {
- cardContentClass = classes.gridItemCardContent;
- } else if (variant === 'fullHeight') {
- cardContentClass = classes.fullHeightCardContent;
- }
-
const entityLocation = entity.metadata.annotations?.[ANNOTATION_LOCATION];
// Limiting the ability to manually refresh to the less expensive locations
const allowRefresh =
@@ -234,50 +198,46 @@ export function InternalAboutCard(props: InternalAboutCardProps) {
}, [catalogApi, entity, alertApi, t, errorApi]);
return (
-
-
- {allowRefresh && canRefresh && (
-
-
-
- )}
+
+ {allowRefresh && canRefresh && (
+
+
+
+ )}
+
+
+
+ {sourceTemplateRef && templateRoute && (
-
+
- {sourceTemplateRef && templateRoute && (
-
-
-
- )}
- >
- }
- subheader={subheader ?? }
- />
-
-
-
-
-
+ )}
+ >
+ }
+ >
+ {iconLinks ?? }
+
+
);
}
diff --git a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx
index ba3ee9d561..67c0a2c52a 100644
--- a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx
+++ b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx
@@ -19,14 +19,10 @@ import {
RELATION_MEMBER_OF,
UserEntity,
} from '@backstage/catalog-model';
-import {
- Avatar,
- InfoCard,
- InfoCardVariants,
- Link,
-} from '@backstage/core-components';
+import { Avatar, Link } from '@backstage/core-components';
+import { EntityInfoCard } from '@backstage/plugin-catalog-react';
+import { Flex, Text } from '@backstage/ui';
import { createStyles, makeStyles } from '@material-ui/core/styles';
-import Box from '@material-ui/core/Box';
import Grid from '@material-ui/core/Grid';
import BaseButton from '@material-ui/core/ButtonBase';
import IconButton from '@material-ui/core/IconButton';
@@ -86,20 +82,23 @@ const useStyles = makeStyles(
const CardTitle = (props: { title?: string }) =>
props.title ? (
-
+
- {props.title}
-
+ {props.title}
+
) : null;
/** @public */
export const UserProfileCard = (props: {
- variant?: InfoCardVariants;
+ // Accepted for API compatibility but not applied.
+ // The new entity page layout handles card sizing.
+ // TODO: Discuss removal in code review.
+ variant?: string;
showLinks?: boolean;
maxRelations?: number;
hideIcons?: boolean;
}) => {
- const { maxRelations, hideIcons } = props;
+ const { maxRelations, hideIcons, variant: _variant } = props;
const classes = useStyles();
const { entity: user } = useEntity();
@@ -132,11 +131,9 @@ export const UserProfileCard = (props: {
});
return (
- }
- subheader={description}
- variant={props.variant}
- action={
+ headerActions={
<>
{entityMetadataEditUrl && (
}
>
+ {description && {description}}
@@ -238,6 +236,6 @@ export const UserProfileCard = (props: {
-
+
);
};