Vulcan/packages/vulcan-admin/lib/components/users/columns/AdminUsersName.jsx

38 lines
No EOL
1.2 KiB
JavaScript

import React from 'react';
import Users from 'meteor/vulcan:users';
import { Components, withMessages } from 'meteor/vulcan:core';
import { intlShape } from 'meteor/vulcan:i18n';
const Username = ({ user }) =>
<div>
<Components.Avatar user={user} link={false}/>
<span>{Users.getDisplayName(user)}</span>
</div>
const EditForm = ({ user, closeModal, flash, intl }) =>
<Components.SmartForm
collection={Users}
documentId={user._id}
successCallback={user => {
closeModal();
flash(intl.formatMessage({ id: 'users.edit_success' }, {name: Users.getDisplayName(user)}), 'success')
}}
showRemove={true}
/>
const AdminUsersName = ({ user, flash }, context) =>
<div>
<Components.ModalTrigger title={`${context.intl.formatMessage({ id: 'users.edit_account'})}: ${Users.getDisplayName(user)}`} component={<div><Username user={user} /></div>}>
<EditForm user={user} flash={flash} intl={context.intl} />
</Components.ModalTrigger>
{_.rest(Users.getGroups(user)).map(group => <code key={group}>{group}</code>)}
</div>
AdminUsersName.contextTypes = {
intl: intlShape
};
export default withMessages(AdminUsersName);