// SPDX-License-Identifier: AGPL-3.0-or-later import {useContextMenuHoverState} from '@app/features/app/hooks/useContextMenuHoverState'; import {PreloadableUserPopout} from '@app/features/channel/components/PreloadableUserPopout'; import type {Guild} from '@app/features/guild/models/Guild'; import GuildMembers from '@app/features/member/state/GuildMembers'; import type {Message} from '@app/features/messaging/models/MessagingMessage'; import styles from '@app/features/theme/styles/Message.module.css'; import type {User} from '@app/features/user/models/User'; import * as NicknameUtils from '@app/features/user/utils/NicknameUtils'; import {clsx} from 'clsx'; import React, {useRef} from 'react'; export const SystemMessageUsername = React.forwardRef< HTMLElement, { author: User; guild?: Guild; message: Message; } >(({author, guild, message}, ref) => { const usernameRef = useRef(null); const contextMenuOpen = useContextMenuHoverState(usernameRef); const member = GuildMembers.getMember(guild?.id ?? '', author.id); return ( {NicknameUtils.getNickname(author, guild?.id)} ); });