import React, { useState, useRef } from "react"; import { inject, observer } from "mobx-react"; import { withRouter } from "react-router"; import { useTranslation } from "react-i18next"; import Avatar from "@appserver/components/avatar"; import Text from "@appserver/components/text"; import ContextMenuButton from "@appserver/components/context-menu-button"; import ContextMenu from "@appserver/components/context-menu"; import { isTablet } from "@appserver/components/utils/device"; import { StyledArticleProfile, StyledUserName } from "../styled-article"; const ArticleProfile = (props) => { const { user, showText, getUserRole, getActions } = props; const { t } = useTranslation("Common"); const [isOpen, setIsOpen] = useState(false); const ref = useRef(null); const menuRef = useRef(null); const tablet = isTablet(); const avatarSize = tablet ? "min" : "base"; const userRole = getUserRole(user); const toggle = (e, isOpen) => { isOpen ? menuRef.current.show(e) : menuRef.current.hide(e); setIsOpen(isOpen); }; const onAvatarClick = (e) => { if (tablet && !showText) toggle(e, !isOpen); }; const onHide = () => { setIsOpen(false); }; const model = getActions(t); const username = user.displayName.split(" "); return (
{(!tablet || showText) && ( <> {username[0]}   {username[1]} getActions(t)} isDisabled={false} usePortal={true} /> )}
); }; export default withRouter( inject(({ auth, profileActionsStore }) => { const { getActions, getUserRole } = profileActionsStore; return { user: auth.userStore.user, getUserRole, getActions, }; })(observer(ArticleProfile)) );