From dcff1ff5e1fb93e111f542b460922b3b2ece28ac Mon Sep 17 00:00:00 2001 From: lian Date: Fri, 14 Aug 2020 14:47:42 +0800 Subject: [PATCH] update dir shared item api (#4648) * update dir shared item api return contact_email and avatar_url field * [share dialog] share to user: show avatar & user details popover for shared user Co-authored-by: lian Co-authored-by: llj --- .../src/components/dialog/share-to-user.js | 41 +++++++++++++++++-- frontend/src/css/share-to-user.css | 15 +++++++ seahub/api2/endpoints/dir_shared_items.py | 10 ++++- 3 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 frontend/src/css/share-to-user.css diff --git a/frontend/src/components/dialog/share-to-user.js b/frontend/src/components/dialog/share-to-user.js index 8fab58a362..626b939b6c 100644 --- a/frontend/src/components/dialog/share-to-user.js +++ b/frontend/src/components/dialog/share-to-user.js @@ -9,12 +9,15 @@ import UserSelect from '../user-select'; import SharePermissionEditor from '../select-editor/share-permission-editor'; import '../../css/invitations.css'; +import '../../css/share-to-user.css'; + class UserItem extends React.Component { constructor(props) { super(props); this.state = { - isOperationShow: false + isOperationShow: false, + isUserDetailsPopoverOpen: false }; } @@ -26,11 +29,19 @@ class UserItem extends React.Component { this.setState({isOperationShow: false}); } + userAvatarOnMouseEnter = () => { + this.setState({isUserDetailsPopoverOpen: true}); + } + + userAvatarOnMouseLeave = () => { + this.setState({isUserDetailsPopoverOpen: false}); + } + deleteShareItem = () => { let item = this.props.item; this.props.deleteShareItem(item.user_info.name); } - + onChangeUserPermission = (permission) => { let item = this.props.item; this.props.onChangeUserPermission(item, permission); @@ -39,9 +50,33 @@ class UserItem extends React.Component { render() { let item = this.props.item; let currentPermission = item.is_admin ? 'admin' : item.permission; + const { isUserDetailsPopoverOpen } = this.state; return ( - {item.user_info.nickname} + +
+ {item.user_info.nickname} + {item.user_info.nickname} + {isUserDetailsPopoverOpen && ( +
+
+ {item.user_info.nickname} + {item.user_info.nickname} +
+
+
{gettext('Email')}
+
{item.user_info.contact_email}
+
+
+ )} +
+