diff --git a/.changeset/nine-trees-thank.md b/.changeset/nine-trees-thank.md
new file mode 100644
index 0000000000..08847093e9
--- /dev/null
+++ b/.changeset/nine-trees-thank.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-org': patch
+---
+
+Visual updates to User and Group pages
diff --git a/plugins/org/src/components/Cards/Group/GroupProfile/GroupProfileCard.tsx b/plugins/org/src/components/Cards/Group/GroupProfile/GroupProfileCard.tsx
index 2f0f1e2e16..9a72606c16 100644
--- a/plugins/org/src/components/Cards/Group/GroupProfile/GroupProfileCard.tsx
+++ b/plugins/org/src/components/Cards/Group/GroupProfile/GroupProfileCard.tsx
@@ -21,8 +21,21 @@ import {
RELATION_PARENT_OF,
} from '@backstage/catalog-model';
import { Avatar, InfoCard } from '@backstage/core';
-import { useEntity, entityRouteParams } from '@backstage/plugin-catalog-react';
-import { Box, Grid, Link, Tooltip, Typography } from '@material-ui/core';
+import {
+ getEntityRelations,
+ entityRouteParams,
+ useEntity,
+} from '@backstage/plugin-catalog-react';
+import {
+ Box,
+ Grid,
+ Link,
+ List,
+ ListItem,
+ ListItemIcon,
+ ListItemText,
+ Tooltip,
+} from '@material-ui/core';
import AccountTreeIcon from '@material-ui/icons/AccountTree';
import EmailIcon from '@material-ui/icons/Email';
import GroupIcon from '@material-ui/icons/Group';
@@ -80,9 +93,9 @@ export const GroupProfileCard = ({
?.map(groupItem => groupItem.target.name)
.toString();
- const childrens = group?.relations
- ?.filter(r => r.type === RELATION_PARENT_OF)
- ?.map(groupItem => groupItem.target.name);
+ const childRelations = getEntityRelations(group, RELATION_PARENT_OF, {
+ kind: 'group',
+ });
const displayName = profile?.displayName ?? name;
@@ -96,61 +109,51 @@ export const GroupProfileCard = ({
>
-
-
-
+
- {profile?.email && (
-
-
-
-
-
-
-
- {profile.email}
-
-
-
- )}
- {parent ? (
-
-
-
-
-
-
+
+ {profile?.email && (
+
+
+
+
+
+
+ {profile.email}
+
+ )}
+ {parent ? (
+
+
+
+
+
+
+
-
-
-
- ) : null}
- {childrens?.length ? (
-
-
-
-
-
-
- {childrens.map((children, index) => (
+
+
+ ) : null}
+ {childRelations?.length ? (
+
+
+
+
+
+
+
+ {childRelations.map((children, index) => (
))}
-
-
-
- ) : null}
+
+
+ ) : null}
+
diff --git a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx
index 1cf7c968b3..a4969f615b 100644
--- a/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx
+++ b/plugins/org/src/components/Cards/User/UserProfileCard/UserProfileCard.tsx
@@ -19,8 +19,17 @@ import {
UserEntity,
} from '@backstage/catalog-model';
import { Avatar, InfoCard } from '@backstage/core';
-import { useEntity, entityRouteParams } from '@backstage/plugin-catalog-react';
-import { Box, Grid, Link, Tooltip, Typography } from '@material-ui/core';
+import { entityRouteParams, useEntity } from '@backstage/plugin-catalog-react';
+import {
+ Box,
+ Grid,
+ Link,
+ List,
+ ListItem,
+ ListItemIcon,
+ ListItemText,
+ Tooltip,
+} from '@material-ui/core';
import EmailIcon from '@material-ui/icons/Email';
import GroupIcon from '@material-ui/icons/Group';
import PersonIcon from '@material-ui/icons/Person';
@@ -81,40 +90,35 @@ export const UserProfileCard = ({
return User not found;
}
+ const emailHref = profile?.email ? `mailto:${profile.email}` : '';
+
return (
} variant={variant}>
-
-
-
-
-
+
+
+
-
- {profile?.email && (
-
-
-
-
-
-
- {profile.email}
-
-
-
- )}
-
-
-
-
-
-
+
+
+ {profile?.email && (
+
+
+
+
+
+ {profile.email}
+
+
+ )}
+
+
+
+
+
+
+
+
{groupNames.map((groupName, index) => (
))}
-
-
-
+
+
+