Skip to content

Commit f89741d

Browse files
authored
refactor: Moves getUserDisplayName outside from meteor app (#35031)
1 parent a9956c0 commit f89741d

File tree

35 files changed

+170
-101
lines changed

35 files changed

+170
-101
lines changed

apps/meteor/app/lib/server/functions/attachMessage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import { getUserDisplayName } from '@rocket.chat/core-typings';
12
import type { IMessage, IRoom, MessageAttachment } from '@rocket.chat/core-typings';
23

3-
import { getUserDisplayName } from '../../../../lib/getUserDisplayName';
44
import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator';
55
import { settings } from '../../../settings/server/cached';
66
import { getUserAvatarURL } from '../../../utils/server/getUserAvatarURL';

apps/meteor/app/lib/server/startup/mentionUserNotInChannel.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import { api } from '@rocket.chat/core-services';
22
import type { IMessage } from '@rocket.chat/core-typings';
3-
import { isDirectMessageRoom, isEditedMessage, isOmnichannelRoom, isRoomFederated } from '@rocket.chat/core-typings';
3+
import { isDirectMessageRoom, isEditedMessage, isOmnichannelRoom, isRoomFederated, getUserDisplayName } from '@rocket.chat/core-typings';
44
import { Subscriptions, Users } from '@rocket.chat/models';
55
import type { ActionsBlock } from '@rocket.chat/ui-kit';
66
import moment from 'moment';
77

88
import { callbacks } from '../../../../lib/callbacks';
9-
import { getUserDisplayName } from '../../../../lib/getUserDisplayName';
109
import { isTruthy } from '../../../../lib/isTruthy';
1110
import { i18n } from '../../../../server/lib/i18n';
1211
import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission';

apps/meteor/client/NavBarV2/NavBarSettingsToolbar/UserMenu/UserMenuHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import type { IUser } from '@rocket.chat/core-typings';
22
import { Box, Margins } from '@rocket.chat/fuselage';
33
import { UserAvatar } from '@rocket.chat/ui-avatar';
4+
import { useUserDisplayName } from '@rocket.chat/ui-client';
45
import { useSetting } from '@rocket.chat/ui-contexts';
56
import { useTranslation } from 'react-i18next';
67

78
import MarkdownText from '../../../components/MarkdownText';
89
import { UserStatus } from '../../../components/UserStatus';
9-
import { useUserDisplayName } from '../../../hooks/useUserDisplayName';
1010

1111
type UserMenuHeaderProps = { user: IUser };
1212

apps/meteor/client/components/UserInfo/UserInfo.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import type { IUser, Serialized } from '@rocket.chat/core-typings';
22
import { Box, Margins, Tag } from '@rocket.chat/fuselage';
3+
import { useUserDisplayName } from '@rocket.chat/ui-client';
34
import type { TranslationKey } from '@rocket.chat/ui-contexts';
45
import type { ReactElement, ReactNode } from 'react';
56
import { memo } from 'react';
67
import { useTranslation } from 'react-i18next';
78

89
import { useTimeAgo } from '../../hooks/useTimeAgo';
910
import { useUserCustomFields } from '../../hooks/useUserCustomFields';
10-
import { useUserDisplayName } from '../../hooks/useUserDisplayName';
1111
import { ContextualbarScrollableContent } from '../Contextualbar';
1212
import {
1313
InfoPanel,

apps/meteor/client/components/message/MessageHeader.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import {
77
MessageStatusPrivateIndicator,
88
MessageNameContainer,
99
} from '@rocket.chat/fuselage';
10+
import { useUserDisplayName } from '@rocket.chat/ui-client';
1011
import type { KeyboardEvent, ReactElement } from 'react';
1112
import { memo } from 'react';
1213
import { useTranslation } from 'react-i18next';
1314

1415
import StatusIndicators from './StatusIndicators';
1516
import MessageRoles from './header/MessageRoles';
1617
import { useMessageListShowUsername, useMessageListShowRealName, useMessageListShowRoles } from './list/MessageListContext';
17-
import { getUserDisplayName } from '../../../lib/getUserDisplayName';
1818
import { useFormatDateAndTime } from '../../hooks/useFormatDateAndTime';
1919
import { useFormatTime } from '../../hooks/useFormatTime';
2020
import { useUserData } from '../../hooks/useUserData';
@@ -37,6 +37,7 @@ const MessageHeader = ({ message }: MessageHeaderProps): ReactElement => {
3737
const user: UserPresence = { ...message.u, roles: [], ...useUserData(message.u._id) };
3838
const usernameAndRealNameAreSame = !user.name || user.username === user.name;
3939
const showUsername = useMessageListShowUsername() && showRealName && !usernameAndRealNameAreSame;
40+
const displayName = useUserDisplayName(user);
4041

4142
const showRoles = useMessageListShowRoles();
4243
const roles = useMessageRoles(message.u._id, message.rid, showRoles);
@@ -48,7 +49,7 @@ const MessageHeader = ({ message }: MessageHeaderProps): ReactElement => {
4849
tabIndex={0}
4950
role='button'
5051
id={`${message._id}-displayName`}
51-
aria-label={getUserDisplayName(user.name, user.username, showRealName)}
52+
aria-label={displayName}
5253
onClick={(e) => openUserCard(e, message.u.username)}
5354
onKeyDown={(e: KeyboardEvent<HTMLSpanElement>) => {
5455
(e.code === 'Enter' || e.code === 'Space') && openUserCard(e, message.u.username);
@@ -61,7 +62,7 @@ const MessageHeader = ({ message }: MessageHeaderProps): ReactElement => {
6162
title={!showUsername && !usernameAndRealNameAreSame ? `@${user.username}` : undefined}
6263
data-username={user.username}
6364
>
64-
{message.alias || getUserDisplayName(user.name, user.username, showRealName)}
65+
{message.alias || displayName}
6566
</MessageName>
6667
{showUsername && (
6768
<>

apps/meteor/client/components/message/variants/SystemMessage.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ import {
1212
MessageNameContainer,
1313
} from '@rocket.chat/fuselage';
1414
import { UserAvatar } from '@rocket.chat/ui-avatar';
15+
import { useUserDisplayName } from '@rocket.chat/ui-client';
1516
import type { TranslationKey } from '@rocket.chat/ui-contexts';
1617
import type { ComponentProps, ReactElement, KeyboardEvent } from 'react';
1718
import { memo } from 'react';
1819
import { useTranslation } from 'react-i18next';
1920

2021
import { MessageTypes } from '../../../../app/ui-utils/client';
21-
import { getUserDisplayName } from '../../../../lib/getUserDisplayName';
2222
import { useFormatDateAndTime } from '../../../hooks/useFormatDateAndTime';
2323
import { useFormatTime } from '../../../hooks/useFormatTime';
2424
import { useUserData } from '../../../hooks/useUserData';
@@ -49,6 +49,7 @@ const SystemMessage = ({ message, showUserAvatar, ...props }: SystemMessageProps
4949
const user: UserPresence = { ...message.u, roles: [], ...useUserData(message.u._id) };
5050
const usernameAndRealNameAreSame = !user.name || user.username === user.name;
5151
const showUsername = useMessageListShowUsername() && showRealName && !usernameAndRealNameAreSame;
52+
const displayName = useUserDisplayName(user);
5253

5354
const messageType = MessageTypes.getType(message);
5455

@@ -85,7 +86,7 @@ const SystemMessage = ({ message, showUserAvatar, ...props }: SystemMessageProps
8586
style={{ cursor: 'pointer' }}
8687
{...triggerProps}
8788
>
88-
<MessageSystemName>{getUserDisplayName(user.name, user.username, showRealName)}</MessageSystemName>
89+
<MessageSystemName>{displayName}</MessageSystemName>
8990
{showUsername && (
9091
<>
9192
{' '}

apps/meteor/client/hooks/useRoomName.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import type { IRoom } from '@rocket.chat/core-typings';
22
import { isDirectMessageRoom } from '@rocket.chat/core-typings';
3+
import { useUserDisplayName } from '@rocket.chat/ui-client';
34
import { useUserSubscription } from '@rocket.chat/ui-contexts';
45

5-
import { useUserDisplayName } from './useUserDisplayName';
6-
76
/**
87
*
98
* Hook to get the name of the room
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { getUserDisplayName } from '@rocket.chat/core-typings';
2+
3+
const fakeUser = {
4+
name: 'John Doe',
5+
username: 'john.doe',
6+
};
7+
8+
it('should return username if UI_Use_Real_Name setting is false', () => {
9+
const result = getUserDisplayName(fakeUser.name, fakeUser.username, false);
10+
expect(result).toBe(fakeUser.username);
11+
});
12+
13+
it('should return name if UI_Use_Real_Name setting is true', () => {
14+
const result = getUserDisplayName(fakeUser.name, fakeUser.username, true);
15+
expect(result).toBe(fakeUser.name);
16+
});

apps/meteor/client/sidebar/header/UserMenuHeader.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import type { IUser } from '@rocket.chat/core-typings';
22
import { Box, Margins } from '@rocket.chat/fuselage';
33
import { UserAvatar } from '@rocket.chat/ui-avatar';
4+
import { useUserDisplayName } from '@rocket.chat/ui-client';
45
import { useSetting } from '@rocket.chat/ui-contexts';
56
import { useTranslation } from 'react-i18next';
67

78
import MarkdownText from '../../components/MarkdownText';
89
import { UserStatus } from '../../components/UserStatus';
9-
import { useUserDisplayName } from '../../hooks/useUserDisplayName';
1010

1111
const UserMenuHeader = ({ user }: { user: IUser }) => {
1212
const { t } = useTranslation();

apps/meteor/client/views/admin/moderation/helpers/ContextMessage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { IMessage, MessageReport, MessageAttachment } from '@rocket.chat/co
22
import { isE2EEMessage, isQuoteAttachment } from '@rocket.chat/core-typings';
33
import { Message, MessageName, MessageToolbarItem, MessageToolbarWrapper, MessageUsername } from '@rocket.chat/fuselage';
44
import { UserAvatar } from '@rocket.chat/ui-avatar';
5+
import { useUserDisplayName } from '@rocket.chat/ui-client';
56
import { useSetting } from '@rocket.chat/ui-contexts';
67
import { useTranslation } from 'react-i18next';
78

@@ -12,7 +13,6 @@ import UiKitMessageBlock from '../../../../components/message/uikit/UiKitMessage
1213
import { useFormatDate } from '../../../../hooks/useFormatDate';
1314
import { useFormatDateAndTime } from '../../../../hooks/useFormatDateAndTime';
1415
import { useFormatTime } from '../../../../hooks/useFormatTime';
15-
import { useUserDisplayName } from '../../../../hooks/useUserDisplayName';
1616
import MessageReportInfo from '../MessageReportInfo';
1717
import useDeleteMessage from '../hooks/useDeleteMessage';
1818
import { useDismissMessageAction } from '../hooks/useDismissMessageAction';

0 commit comments

Comments
 (0)