diff --git a/packages/client/src/components/dialogs/ChangeUserStatusDialog/index.js b/packages/client/src/components/dialogs/ChangeUserStatusDialog/index.js index dbc07fa74e..8318f605c8 100644 --- a/packages/client/src/components/dialogs/ChangeUserStatusDialog/index.js +++ b/packages/client/src/components/dialogs/ChangeUserStatusDialog/index.js @@ -5,12 +5,7 @@ import PropTypes from "prop-types"; import ModalDialog from "@docspace/components/modal-dialog"; import Button from "@docspace/components/button"; import Text from "@docspace/components/text"; -import ToggleContent from "@docspace/components/toggle-content"; -import Checkbox from "@docspace/components/checkbox"; -import CustomScrollbarsVirtualList from "@docspace/components/scrollbar/custom-scrollbars-virtual-list"; -import { FixedSizeList as List, areEqual } from "react-window"; -import AutoSizer from "react-virtualized-auto-sizer"; import { withTranslation } from "react-i18next"; import toastr from "@docspace/components/toast/toastr"; import { EmployeeStatus } from "@docspace/common/constants"; @@ -21,45 +16,64 @@ class ChangeUserStatusDialogComponent extends React.Component { constructor(props) { super(props); - const { userIds } = props; - - this.state = { isRequestRunning: false, userIds }; + this.state = { isRequestRunning: false }; } onChangeUserStatus = () => { const { updateUserStatus, - userStatus, + status, t, setSelected, onClose, + userIDs, + getPeopleListItem, + setSelection, + infoPanelVisible, } = this.props; - const { userIds } = this.state; + + let usersCount = 0; + this.setState({ isRequestRunning: true }, () => { - updateUserStatus(userStatus, userIds) - .then(() => - toastr.success(t("PeopleTranslations:SuccessChangeUserStatus")) - ) + updateUserStatus(status, userIDs) + .then((users) => { + if (users.length === 1 && infoPanelVisible) { + const user = getPeopleListItem(users[0]); + + setSelection(user); + } + + usersCount = users.length; + }) .catch((error) => toastr.error(error)) .finally(() => { this.setState({ isRequestRunning: false }, () => { - setSelected("close"); + toastr.success(t("PeopleTranslations:SuccessChangeUserStatus")); + (!infoPanelVisible || usersCount !== 1) && setSelected("close"); onClose(); }); }); }); }; + onCloseAction = () => { + const { onClose } = this.props; + const { isRequestRunning } = this.state; + + !isRequestRunning && onClose(); + }; + render() { - const { t, tReady, onClose, visible, userStatus } = this.props; - const { isRequestRunning, userIds } = this.state; + const { t, tReady, visible, status, userIDs } = this.props; + const { isRequestRunning } = this.state; const statusTranslation = - userStatus === EmployeeStatus.Active + status === EmployeeStatus.Active ? t("ChangeUsersActiveStatus") : t("ChangeUsersDisableStatus"); + const userStatusTranslation = - userStatus === EmployeeStatus.Active + status === EmployeeStatus.Active ? t("PeopleTranslations:DisabledEmployeeStatus") : t("Common:Active"); @@ -67,7 +81,7 @@ class ChangeUserStatusDialogComponent extends React.Component { @@ -90,13 +104,13 @@ class ChangeUserStatusDialogComponent extends React.Component { scale onClick={this.onChangeUserStatus} isLoading={isRequestRunning} - isDisabled={userIds.length === 0} + isDisabled={userIDs.length === 0} />