import { css } from '@rocket.chat/css-in-js'; import { Box } from '@rocket.chat/fuselage'; import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; import { Meteor } from 'meteor/meteor'; import React, { memo } from 'react'; import { popover } from '../../../app/ui-utils/client'; import { UserStatus } from '../../components/UserStatus'; import UserAvatar from '../../components/avatar/UserAvatar'; import { useSetting } from '../../contexts/SettingsContext'; 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, }); } }; const UserAvatarButton = ({ 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 ( ); }; export default memo(UserAvatarButton);