import { SettingsPath } from '@/types/SettingsPath'; import { TableCell } from '@/ui/layout/table/components/TableCell'; import { TableRow } from '@/ui/layout/table/components/TableRow'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import React from 'react'; import { AppTooltip, Avatar, IconChevronRight, IconLock, TooltipDelay, useIcons, } from 'twenty-ui/display'; import { Role } from '~/generated-metadata/graphql'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; const StyledAssignedText = styled.div` color: ${({ theme }) => theme.font.color.secondary}; font-size: ${({ theme }) => theme.font.size.sm}; `; const StyledNameCell = styled.div` color: ${({ theme }) => theme.font.color.primary}; display: flex; gap: ${({ theme }) => theme.spacing(1)}; `; const StyledAvatarGroup = styled.div` display: flex; justify-content: flex-end; > * { margin-left: -5px; &:first-of-type { margin-left: 0; } } `; const StyledIconLockContainer = styled.div` align-items: center; display: flex; justify-content: flex-end; `; const StyledTableRow = styled(TableRow)` &:hover { background: ${({ theme }) => theme.background.transparent.light}; cursor: pointer; } `; type SettingsRolesTableRowProps = { role: Role; }; export const SettingsRolesTableRow = ({ role }: SettingsRolesTableRowProps) => { const theme = useTheme(); const { getIcon } = useIcons(); const Icon = getIcon(role.icon ?? 'IconUser'); return ( {role.label} {!role.isEditable && ( )} {role.workspaceMembers.slice(0, 5).map((workspaceMember) => (
))}
{role.workspaceMembers.length}
); };