diff --git a/frontend/src/component/personalDashboard/RoleAndOwnerInfo.tsx b/frontend/src/component/personalDashboard/RoleAndOwnerInfo.tsx
index f0b62053e6..3cf1f93e18 100644
--- a/frontend/src/component/personalDashboard/RoleAndOwnerInfo.tsx
+++ b/frontend/src/component/personalDashboard/RoleAndOwnerInfo.tsx
@@ -9,6 +9,8 @@ type Props = {
owners: ProjectSchemaOwners;
};
+const avatarHeight = 3.5;
+
const Wrapper = styled('div')(({ theme }) => ({
width: '100%',
display: 'flex',
@@ -21,6 +23,7 @@ const InfoSection = styled('div')(({ theme }) => ({
display: 'flex',
gap: theme.spacing(1),
alignItems: 'center',
+ minHeight: theme.spacing(avatarHeight),
}));
const Roles = styled('ul')(({ theme }) => ({
@@ -43,13 +46,17 @@ const RoleBadge = styled(Badge)({
whitespace: 'nowrap',
});
-const StyledAvatarGroup = styled(AvatarGroupFromOwners)({
+const StyledAvatarGroup = styled(AvatarGroupFromOwners)(({ theme }) => ({
width: 'max-content',
-});
+ height: theme.spacing(avatarHeight),
+}));
export const RoleAndOwnerInfo = ({ roles, owners }: Props) => {
const firstRoles = roles.slice(0, 3);
const extraRoles = roles.slice(3);
+ const ownersWithoutSystem = owners.filter(
+ (owner) => owner.ownerType !== 'system',
+ );
return (
@@ -104,16 +111,24 @@ export const RoleAndOwnerInfo = ({ roles, owners }: Props) => {
)}
-
- Project owner{owners.length > 1 ? 's' : ''}
-
-
+ {ownersWithoutSystem.length > 0 ? (
+ <>
+
+ Project owner
+ {ownersWithoutSystem.length > 1 ? 's' : ''}
+
+
+ >
+ ) : null}
);
diff --git a/frontend/src/component/project/ProjectCard/ProjectCardFooter/ProjectCardFooter.tsx b/frontend/src/component/project/ProjectCard/ProjectCardFooter/ProjectCardFooter.tsx
index 43051b731c..4a0d32c922 100644
--- a/frontend/src/component/project/ProjectCard/ProjectCardFooter/ProjectCardFooter.tsx
+++ b/frontend/src/component/project/ProjectCard/ProjectCardFooter/ProjectCardFooter.tsx
@@ -5,6 +5,7 @@ import {
ProjectOwners,
type IProjectOwnersProps,
} from './ProjectOwners/ProjectOwners';
+import type { ProjectSchemaOwners } from 'openapi';
interface IProjectCardFooterProps {
id?: string;
@@ -24,6 +25,8 @@ const StyledFooter = styled(Box)<{ disabled: boolean }>(
alignItems: 'center',
justifyContent: 'space-between',
borderTop: `1px solid ${theme.palette.divider}`,
+ paddingInline: theme.spacing(2),
+ paddingBlock: theme.spacing(1.5),
}),
);
@@ -32,9 +35,16 @@ export const ProjectCardFooter: FC = ({
owners,
disabled = false,
}) => {
+ const ownersWithoutSystem = owners?.filter(
+ (owner) => owner.ownerType !== 'system',
+ );
return (
- {owners ? : null}
+ {ownersWithoutSystem ? (
+
+ ) : null}
{children}
);
diff --git a/frontend/src/component/project/ProjectCard/ProjectCardFooter/ProjectOwners/ProjectOwners.tsx b/frontend/src/component/project/ProjectCard/ProjectCardFooter/ProjectOwners/ProjectOwners.tsx
index ba1405348c..35798de4f5 100644
--- a/frontend/src/component/project/ProjectCard/ProjectCardFooter/ProjectOwners/ProjectOwners.tsx
+++ b/frontend/src/component/project/ProjectCard/ProjectCardFooter/ProjectOwners/ProjectOwners.tsx
@@ -45,14 +45,16 @@ const StyledHeader = styled('span')(({ theme }) => ({
marginRight: 'auto',
}));
+const AvatarHeight = 3.5;
const StyledWrapper = styled('div')(({ theme }) => ({
- padding: theme.spacing(1.5, 0, 1.5, 2),
display: 'flex',
alignItems: 'center',
+ minHeight: theme.spacing(AvatarHeight),
}));
const StyledAvatarComponent = styled(AvatarComponent)(({ theme }) => ({
cursor: 'default',
+ height: theme.spacing(AvatarHeight),
}));
const getOwnerName = (owner?: ProjectSchemaOwners[number]) => {