// @flow import * as React from "react"; import styled from "styled-components"; import distanceInWordsToNow from "date-fns/distance_in_words_to_now"; import { inject, observer } from "mobx-react"; import { withRouter, type RouterHistory } from "react-router-dom"; import { EditIcon } from "outline-icons"; import Flex from "components/Flex"; import HelpText from "components/HelpText"; import Modal from "components/Modal"; import Button from "components/Button"; import Avatar from "components/Avatar"; import Badge from "components/Badge"; import PaginatedDocumentList from "components/PaginatedDocumentList"; import Subheading from "components/Subheading"; import User from "models/User"; import DocumentsStore from "stores/DocumentsStore"; import AuthStore from "stores/AuthStore"; import { settings } from "shared/utils/routeHelpers"; type Props = { user: User, auth: AuthStore, documents: DocumentsStore, history: RouterHistory, onRequestClose: () => void, }; @observer class UserProfile extends React.Component { render() { const { user, auth, documents, ...rest } = this.props; if (!user) return null; const isCurrentUser = auth.user && auth.user.id === user.id; return (  {user.name} } {...rest} > {isCurrentUser ? "You joined" : user.lastActiveAt ? "Joined" : "Invited"}{" "} {distanceInWordsToNow(new Date(user.createdAt))} ago. {user.isAdmin && ( Admin )} {user.isSuspended && Suspended} {isCurrentUser && ( )} Recently updated} empty={ {user.name} hasn’t updated any documents yet. } showCollection /> ); } } const Edit = styled.span` position: absolute; top: 46px; right: 0; `; const StyledBadge = styled(Badge)` position: relative; top: -2px; `; const Meta = styled(HelpText)` margin-top: -12px; `; export default inject("documents", "auth")(withRouter(UserProfile));