From 084181ae9687adaec4ffb33ac7358846c39eb300 Mon Sep 17 00:00:00 2001 From: Rodri Sanchez Date: Thu, 25 Jul 2024 16:03:51 -0300 Subject: [PATCH] Show loading state on Dialog accept button and avoid close it on saving --- .../CommunicatorDialogBoardItem.component.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/Communicator/CommunicatorDialog/CommunicatorDialogBoardItem.component.js b/src/components/Communicator/CommunicatorDialog/CommunicatorDialogBoardItem.component.js index 43b5f6df3..d6642dbe2 100644 --- a/src/components/Communicator/CommunicatorDialog/CommunicatorDialogBoardItem.component.js +++ b/src/components/Communicator/CommunicatorDialog/CommunicatorDialogBoardItem.component.js @@ -30,6 +30,7 @@ import TextField from '@material-ui/core/TextField'; import CircularProgress from '@material-ui/core/CircularProgress'; import Slide from '@material-ui/core/Slide'; import DialogContentText from '@material-ui/core/DialogContentText'; +import LoadingIcon from '../../UI/LoadingIcon'; import IconButton from '../../UI/IconButton'; import { TAB_INDEXES } from './CommunicatorDialog.constants'; @@ -73,6 +74,8 @@ class CommunicatorDialogBoardItem extends React.Component { ? props.board.description : '' }; + + this.handleDialogClose = this.handleDialogClose.bind(this); } openMenu(e) { @@ -149,7 +152,6 @@ class CommunicatorDialogBoardItem extends React.Component { async handleBoardCopy(board) { this.setState({ - openCopyBoard: false, loading: true }); try { @@ -157,6 +159,7 @@ class CommunicatorDialogBoardItem extends React.Component { } catch (err) { } finally { this.setState({ + openCopyBoard: false, loading: false }); } @@ -839,7 +842,9 @@ class CommunicatorDialogBoardItem extends React.Component { { + if (!this.state.loading) this.handleDialogClose(); + }} aria-labelledby="board-copy-dialog" open={this.state.openCopyBoard} > @@ -858,6 +863,7 @@ class CommunicatorDialogBoardItem extends React.Component { @@ -868,8 +874,13 @@ class CommunicatorDialogBoardItem extends React.Component { }} variant="contained" color="primary" + disabled={this.state.loading} > - {intl.formatMessage(messages.accept)} + {this.state.loading ? ( + + ) : ( + intl.formatMessage(messages.accept) + )}