import { formatExpiration, isExpired, } from '@/settings/developers/utils/formatExpiration'; import { TableCell } from '@/ui/layout/table/components/TableCell'; import { TableRow } from '@/ui/layout/table/components/TableRow'; import { IconChevronRight } from 'twenty-ui/display'; import { styled } from '@linaria/react'; import { useContext } from 'react'; import { ThemeContext } from 'twenty-ui/theme-constants'; import { type ApiKey } from '~/generated-metadata/graphql'; const StyledEllipsisLabel = styled.div` white-space: nowrap; text-overflow: ellipsis; overflow: hidden; `; type ApiKeyType = Pick & { role?: { id: string; label: string; icon?: string | null } | null; }; type SettingsApiKeysFieldItemTableRowProps = { apiKey: ApiKeyType; to: string; }; export const SettingsApiKeysFieldItemTableRow = ({ apiKey, to, }: SettingsApiKeysFieldItemTableRowProps) => { const { theme } = useContext(ThemeContext); const formattedExpiration = formatExpiration(apiKey.expiresAt || null); const gridColumns = '5fr 2fr 3fr 1fr'; return ( {apiKey.name} {apiKey.role?.label || '-'} {formattedExpiration} ); };