diff --git a/packages/twenty-front/src/modules/ui/layout/table/components/TableRow.tsx b/packages/twenty-front/src/modules/ui/layout/table/components/TableRow.tsx index a73b21d95..f88f2d1b3 100644 --- a/packages/twenty-front/src/modules/ui/layout/table/components/TableRow.tsx +++ b/packages/twenty-front/src/modules/ui/layout/table/components/TableRow.tsx @@ -1,6 +1,7 @@ -import { Link } from 'react-router-dom'; import isPropValid from '@emotion/is-prop-valid'; import styled from '@emotion/styled'; +import { Link } from 'react-router-dom'; +import { MOBILE_VIEWPORT } from 'twenty-ui'; const StyledTableRow = styled('div', { shouldForwardProp: (prop) => @@ -10,12 +11,19 @@ const StyledTableRow = styled('div', { onClick?: () => void; to?: string; gridAutoColumns?: string; + mobileGridAutoColumns?: string; }>` background-color: ${({ isSelected, theme }) => isSelected ? theme.accent.quaternary : 'transparent'}; border-radius: ${({ theme }) => theme.border.radius.sm}; display: grid; grid-auto-columns: ${({ gridAutoColumns }) => gridAutoColumns ?? '1fr'}; + + @media (max-width: ${MOBILE_VIEWPORT}px) { + grid-auto-columns: ${({ mobileGridAutoColumns, gridAutoColumns }) => + mobileGridAutoColumns ?? gridAutoColumns ?? '1fr'}; + } + grid-auto-flow: column; transition: background-color ${({ theme }) => theme.animation.duration.normal}s; @@ -35,6 +43,7 @@ type TableRowProps = { to?: string; className?: string; gridAutoColumns?: string; + mobileGridAutoColumns?: string; }; export const TableRow = ({ @@ -44,12 +53,14 @@ export const TableRow = ({ className, children, gridAutoColumns, + mobileGridAutoColumns, }: React.PropsWithChildren) => ( diff --git a/packages/twenty-front/src/pages/settings/SettingsWorkspaceMembers.tsx b/packages/twenty-front/src/pages/settings/SettingsWorkspaceMembers.tsx index 25176fe7c..3ba11b7f2 100644 --- a/packages/twenty-front/src/pages/settings/SettingsWorkspaceMembers.tsx +++ b/packages/twenty-front/src/pages/settings/SettingsWorkspaceMembers.tsx @@ -4,12 +4,13 @@ import { isNonEmptyArray } from '@sniptt/guards'; import { useState } from 'react'; import { useRecoilValue, useSetRecoilState } from 'recoil'; import { + AppTooltip, Avatar, H2Title, IconMail, IconReload, IconTrash, - MOBILE_VIEWPORT, + TooltipDelay, } from 'twenty-ui'; import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; @@ -52,51 +53,22 @@ const StyledTable = styled(Table)` margin-top: ${({ theme }) => theme.spacing(0.5)}; `; -const StyledTableRow = styled(TableRow)` - @media (max-width: ${MOBILE_VIEWPORT}px) { - display: grid; - grid-template-columns: 3fr; - } -`; -const StyledTableCell = styled(TableCell)` - padding: ${({ theme }) => theme.spacing(1)}; - @media (max-width: ${MOBILE_VIEWPORT}px) { - &:first-child { - max-width: 100%; - padding-top: 2px; - white-space: nowrap; - overflow: scroll; - scroll-behavior: smooth; - } - } -`; -const StyledIconWrapper = styled.div` - left: 2px; - margin-right: ${({ theme }) => theme.spacing(2)}; - position: relative; - top: 1px; -`; - -const StyledScrollableTextContainer = styled.div` - max-width: 100%; - overflow-x: auto; - white-space: pre-line; -`; - -const StyledTextContainer = styled.div` - color: ${({ theme }) => theme.font.color.secondary}; - max-width: max-content; - overflow-x: auto; - position: absolute; - @media (min-width: 360px) and (max-width: 420px) { - max-width: 150px; - margin-top: ${({ theme }) => theme.spacing(1)}; - } -`; const StyledTableHeaderRow = styled(Table)` margin-bottom: ${({ theme }) => theme.spacing(1.5)}; `; +const StyledIconWrapper = styled.div` + display: flex; + align-items: center; + margin-right: ${({ theme }) => theme.spacing(2)}; +`; + +const StyledTextContainerWithEllipsis = styled.div` + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +`; + export const SettingsWorkspaceMembers = () => { const { enqueueSnackBar } = useSnackBar(); const theme = useTheme(); @@ -194,7 +166,10 @@ export const SettingsWorkspaceMembers = () => { /> - + Name Email @@ -202,7 +177,10 @@ export const SettingsWorkspaceMembers = () => { {workspaceMembers?.map((workspaceMember) => ( - + { size="sm" /> - + {workspaceMember.name.firstName + ' ' + workspaceMember.name.lastName} - + + - + {workspaceMember.userEmail} - + {currentWorkspaceMember?.id !== workspaceMember.id && ( @@ -253,7 +241,10 @@ export const SettingsWorkspaceMembers = () => { {isNonEmptyArray(workspaceInvitations) && (
- + Email Expires in @@ -261,27 +252,28 @@ export const SettingsWorkspaceMembers = () => { {workspaceInvitations?.map((workspaceInvitation) => ( - - + - + {workspaceInvitation.email} - - - + + + - - + + { @@ -304,8 +296,8 @@ export const SettingsWorkspaceMembers = () => { Icon={IconTrash} /> - - + + ))}