Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX] Misaligned username on Room Info card for omnichannel chats #25331

Merged
merged 9 commits into from
Jun 30, 2022
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Box } from '@rocket.chat/fuselage';
import React, { ReactElement, ReactNode, ComponentProps } from 'react';

import * as UserStatus from '../../../components/UserStatus';

type AgentInfoDetailsProps = ComponentProps<typeof Box> & {
name: string;
status: ReactNode;
shortName?: string;
};

const AgentInfoDetails = ({ name, shortName, status = <UserStatus.Offline />, ...props }: AgentInfoDetailsProps): ReactElement => (
<Box
display='flex'
title={name}
flexGrow={0}
flexShrink={1}
flexBasis={0}
alignItems='center'
fontScale='h4'
color='default'
withTruncatedText
{...props}
>
{status}{' '}
<Box mis='x8' flexGrow={1} withTruncatedText>
{name}
</Box>
{shortName && (
<Box display='flex' mis='x7' mb='x9' justifyContent='center' fontScale='c1'>
({shortName})
</Box>
)}
</Box>
);

export default AgentInfoDetails;
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import { useTranslation } from '@rocket.chat/ui-contexts';
import moment from 'moment';
import React, { ReactElement, useMemo } from 'react';

import UserCard from '../../../../../components/UserCard';
import { UserStatus } from '../../../../../components/UserStatus';
import VerticalBar from '../../../../../components/VerticalBar';
import UserAvatar from '../../../../../components/avatar/UserAvatar';
import InfoPanel from '../../../../InfoPanel';
import AgentInfoDetails from '../../../components/AgentInfoDetails';
import AgentField from '../../chats/contextualBar/AgentField';
import { InfoField } from './InfoField';

Expand Down Expand Up @@ -54,7 +54,7 @@ export const VoipInfo = ({ room, onClickClose /* , onClickReport, onClickCall */
<InfoPanel.Label>{t('Contact')}</InfoPanel.Label>
<Box display='flex'>
<UserAvatar size='x28' username={_name} />
<UserCard.Username mis='x8' title={_name} name={_name} status={<UserStatus status={v?.status} />} />
<AgentInfoDetails mis='x8' name={_name} status={<UserStatus status={v?.status} />} />
</Box>
</InfoPanel.Field>
)}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import { Box } from '@rocket.chat/fuselage';
import { useTranslation } from '@rocket.chat/ui-contexts';
import React, { useMemo } from 'react';

import UserCard from '../../../../../components/UserCard';
import { UserStatus } from '../../../../../components/UserStatus';
import UserAvatar from '../../../../../components/avatar/UserAvatar';
import { AsyncStatePhase } from '../../../../../hooks/useAsyncState';
import { useEndpointData } from '../../../../../hooks/useEndpointData';
import AgentInfoDetails from '../../../components/AgentInfoDetails';
import Field from '../../../components/Field';
import Info from '../../../components/Info';
import Label from '../../../components/Label';
Expand Down Expand Up @@ -35,12 +34,7 @@ const AgentField = ({ agent, isSmall = false }) => {
<Label>{t('Agent')}</Label>
<Info style={{ display: 'flex' }}>
<UserAvatar size={isSmall ? 'x28' : 'x40'} title={username} username={username} />
<UserCard.Username mis={isSmall ? 'x8' : 'x10'} name={displayName} status={<UserStatus status={status} />} />
{username && name && (
<Box display='flex' mis='x7' mb='x9' align='center' justifyContent='center'>
({username})
</Box>
)}
<AgentInfoDetails mis={isSmall ? 'x8' : 'x10'} name={displayName} shortName={username} status={<UserStatus status={status} />} />
</Info>
</Field>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import { Avatar, Box } from '@rocket.chat/fuselage';
import { useTranslation } from '@rocket.chat/ui-contexts';
import React, { useMemo } from 'react';

import UserCard from '../../../../../components/UserCard';
import { UserStatus } from '../../../../../components/UserStatus';
import { useEndpointData } from '../../../../../hooks/useEndpointData';
import { AsyncStatePhase } from '../../../../../lib/asyncState';
import { roomCoordinator } from '../../../../../lib/rooms/roomCoordinator';
import AgentInfoDetails from '../../../components/AgentInfoDetails';
import Field from '../../../components/Field';
import Info from '../../../components/Info';
import Label from '../../../components/Label';
Expand Down Expand Up @@ -46,12 +46,7 @@ const ContactField = ({ contact, room }) => {
<Label>{t('Contact')}</Label>
<Info style={{ display: 'flex' }}>
<Avatar size='x40' title={fname} url={avatarUrl} />
<UserCard.Username mis='x10' name={displayName} status={<UserStatus status={status} />} />
{username && name && (
<Box display='flex' mis='x7' mb='x9' align='center' justifyContent='center'>
({username})
</Box>
)}
<AgentInfoDetails mis='x10' name={displayName} shortName={username} status={<UserStatus status={status} />} />
</Info>
</Field>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ import React, { useEffect, useMemo, useState } from 'react';

import { hasPermission } from '../../../../../../app/authorization/client';
import ContactManagerInfo from '../../../../../../ee/client/omnichannel/ContactManagerInfo';
import UserCard from '../../../../../components/UserCard/UserCard';
import { UserStatus } from '../../../../../components/UserStatus';
import VerticalBar from '../../../../../components/VerticalBar';
import UserAvatar from '../../../../../components/avatar/UserAvatar';
import { AsyncStatePhase } from '../../../../../hooks/useAsyncState';
import { useEndpointData } from '../../../../../hooks/useEndpointData';
import { useFormatDate } from '../../../../../hooks/useFormatDate';
import AgentInfoDetails from '../../../components/AgentInfoDetails';
import CustomField from '../../../components/CustomField';
import Field from '../../../components/Field';
import Info from '../../../components/Info';
Expand Down Expand Up @@ -113,12 +113,7 @@ const ContactInfo = ({ id, rid, route }) => {
<Label>{`${t('Name')} / ${t('Username')}`}</Label>
<Info style={{ display: 'flex' }}>
<UserAvatar size='x40' title={username} username={username} />
<UserCard.Username mis='x10' name={displayName} status={<UserStatus status={status} />} />
{username && name && (
<Box display='flex' mis='x7' mb='x9' align='center' justifyContent='center'>
({username})
</Box>
)}
<AgentInfoDetails mis='x10' name={displayName} shortName={username} status={<UserStatus status={status} />} />
</Info>
</Field>
)}
Expand Down
13 changes: 5 additions & 8 deletions apps/meteor/ee/client/omnichannel/ContactManagerInfo.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { css } from '@rocket.chat/css-in-js';
import { Box } from '@rocket.chat/fuselage';
import React, { useMemo } from 'react';

import UserCard from '../../../client/components/UserCard';
import { UserStatus } from '../../../client/components/UserStatus';
import UserAvatar from '../../../client/components/avatar/UserAvatar';
import { AsyncStatePhase } from '../../../client/hooks/useAsyncState';
import { useEndpointData } from '../../../client/hooks/useEndpointData';
import AgentInfoDetails from '../../../client/views/omnichannel/components/AgentInfoDetails';
import Info from '../../../client/views/omnichannel/components/Info';

const wordBreak = css`
word-break: break-word;
Expand All @@ -27,13 +27,10 @@ function ContactManagerInfo({ username }) {

return (
<>
<UserCard.Info className={wordBreak} flexShrink={0} style={{ display: 'flex' }}>
<Info className={wordBreak} style={{ display: 'flex' }}>
<UserAvatar title={username} username={username} />
<UserCard.Username mis='x10' name={username} status={<UserStatus status={status} />} />
<Box display='flex' mis='x7' mb='x9' align='center' justifyContent='center'>
({name})
</Box>
</UserCard.Info>
<AgentInfoDetails mis='x10' name={name} shortName={username} status={<UserStatus status={status} />} />
</Info>
</>
);
}
Expand Down