import React from 'react'; import { Meteor } from 'meteor/meteor'; import { Box } from '@rocket.chat/fuselage'; import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import { css } from '@rocket.chat/css-in-js'; import { popover } from '../../../app/ui-utils'; import { useSetting } from '../../contexts/SettingsContext'; import { UserStatus } from '../../components/UserStatus'; import { createTemplateForComponent } from '../../reactAdapters'; import UserAvatar from '../../components/avatar/UserAvatar'; const UserDropdown = createTemplateForComponent('UserDropdown', () => import('./UserDropdown')); const openDropdown = (e, user, onClose, allowAnonymousRead) => { if (!(Meteor.userId() == null && allowAnonymousRead)) { popover.open({ template: UserDropdown, currentTarget: e.currentTarget, data: { user, onClose, }, offsetVertical: e.currentTarget.clientHeight + 10, }); } }; export default React.memo(({ user = {} }) => { const { _id: uid, status = !uid && 'online', username = 'Anonymous', avatarETag, } = user; const allowAnonymousRead = useSetting('Accounts_AllowAnonymousRead'); const onClose = useMutableCallback(() => popover.close()); const handleClick = useMutableCallback((e) => uid && openDropdown(e, user, onClose, allowAnonymousRead)); return ; });