From a69bc27c77b078fc39a19fe669cb1aaa66a443d7 Mon Sep 17 00:00:00 2001 From: Michael An <2331806369@qq.com> Date: Mon, 4 Aug 2025 14:52:46 +0800 Subject: [PATCH] refactor manage group member dialog (#8104) --- .../dialog/manage-members-dialog.js | 39 ------ ...up-members.js => manage-members-dialog.js} | 132 +++++++++--------- frontend/src/pages/groups/group-op-menu.js | 2 +- 3 files changed, 67 insertions(+), 106 deletions(-) delete mode 100644 frontend/src/components/dialog/manage-members-dialog.js rename frontend/src/components/{list-and-add-group-members.js => manage-members-dialog.js} (61%) diff --git a/frontend/src/components/dialog/manage-members-dialog.js b/frontend/src/components/dialog/manage-members-dialog.js deleted file mode 100644 index 8b3b4c7dbc..0000000000 --- a/frontend/src/components/dialog/manage-members-dialog.js +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { Modal, ModalBody } from 'reactstrap'; -import { gettext } from '../../utils/constants'; -import ListAndAddGroupMembers from '../list-and-add-group-members'; -import SeahubModalHeader from '@/components/common/seahub-modal-header'; - -import '../../css/manage-members-dialog.css'; - -const propTypes = { - groupID: PropTypes.number.isRequired, - isOwner: PropTypes.bool.isRequired, - toggleManageMembersDialog: PropTypes.func, - toggleDepartmentDetailDialog: PropTypes.func, -}; - -class ManageMembersDialog extends React.Component { - - render() { - const { groupID, isOwner } = this.props; - return ( - - {gettext('Manage group members')} - - - - - ); - } -} - -ManageMembersDialog.propTypes = propTypes; - -export default ManageMembersDialog; diff --git a/frontend/src/components/list-and-add-group-members.js b/frontend/src/components/manage-members-dialog.js similarity index 61% rename from frontend/src/components/list-and-add-group-members.js rename to frontend/src/components/manage-members-dialog.js index 871bd05df5..d1b5bc4d04 100644 --- a/frontend/src/components/list-and-add-group-members.js +++ b/frontend/src/components/manage-members-dialog.js @@ -1,6 +1,7 @@ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; -import { Button, InputGroup, InputGroupText, Input } from 'reactstrap'; +import { Button, InputGroup, InputGroupText, Input, Modal, ModalBody } from 'reactstrap'; +import SeahubModalHeader from '@/components/common/seahub-modal-header'; import { Utils } from '../utils/utils'; import { gettext } from '../utils/constants'; import { seafileAPI } from '../utils/seafile-api'; @@ -11,6 +12,8 @@ import GroupMembers from './group-members'; import SelectUsersIcon from './select-members-to-share-with'; import { eventBus } from './common/event-bus'; +import '../css/manage-members-dialog.css'; + const propTypes = { toggleManageMembersDialog: PropTypes.func, toggleDepartmentDetailDialog: PropTypes.func, @@ -166,75 +169,72 @@ class ManageMembersDialog extends React.Component { render() { const { isLoading, hasNextPage, groupMembers, - keyword, membersFound, - searchActive + keyword, membersFound, errMessage, searchActive } = this.state; return ( - -

{gettext('Add group member')}

-
-
- - -
- {this.state.selectedUsers.length > 0 ? - : - - } -
- { - this.state.errMessage.length > 0 && - this.state.errMessage.map((item, index = 0) => { - return ( -
{item.error_msg}
- ); - }) - } - {groupMembers.length > 10 && - - - - - - {keyword && ( - - - - )} - - } -
{} : this.handleScroll}> - {isLoading ? : ( - - + {gettext('Manage group members')} + +

{gettext('Add group member')}

+
+
+ - {(!keyword.trim() && hasNextPage) && } - - )} -
- + +
+ {this.state.selectedUsers.length > 0 ? + : + + } +
+ {errMessage.length > 0 && + errMessage.map((item, index = 0) =>
{item.error_msg}
) + } + {groupMembers.length > 10 && + + + + + + {keyword && ( + + + + )} + + } +
{} : this.handleScroll}> + {isLoading ? : ( + + + {(!keyword.trim() && hasNextPage) && } + + )} +
+ + ); } } diff --git a/frontend/src/pages/groups/group-op-menu.js b/frontend/src/pages/groups/group-op-menu.js index bb3fbb03ca..98e5d56a64 100644 --- a/frontend/src/pages/groups/group-op-menu.js +++ b/frontend/src/pages/groups/group-op-menu.js @@ -11,7 +11,7 @@ import DismissGroupDialog from '../../components/dialog/dismiss-group-dialog'; import RenameGroupDialog from '../../components/dialog/rename-group-dialog'; import TransferGroupDialog from '../../components/dialog/transfer-group-dialog'; import ImportMembersDialog from '../../components/dialog/import-members-dialog'; -import ManageMembersDialog from '../../components/dialog/manage-members-dialog'; +import ManageMembersDialog from '../../components/manage-members-dialog'; import DepartmentDetailDialog from '../../components/dialog/department-detail-dialog'; import LeaveGroupDialog from '../../components/dialog/leave-group-dialog'; import SingleDropdownToolbar from '../../components/toolbar/single-dropdown-toolbar';