Skip to content

Commit 62f5016

Browse files
authored
Merge pull request #977 from ParthS007/button-disable
Disable web buttons in forms after onClick
2 parents e4671a1 + 9978578 commit 62f5016

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

CHANGELOG.rst

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,11 @@ Changelog
33

44
in development
55
--------------
6-
* Create a changelog and required machinery
6+
7+
Added
8+
~~~~~
9+
10+
* Added feature for disabling button for synchronous responses
11+
- Button gets disabled onClick on `Connect` and `Submit` in st2-login and st2-history module respectively
12+
13+
Contributed by @ParthS007

apps/st2-history/history-popup.component.js

+3
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export default class HistoryPopup extends React.Component {
3939

4040
state = {
4141
preview: false,
42+
disabled: false,
4243
}
4344

4445
static getDerivedStateFromProps(props, state) {
@@ -89,6 +90,7 @@ export default class HistoryPopup extends React.Component {
8990
delete this.state.payload[payLoadKey];
9091
}
9192
this.props.onSubmit(this.state.payload);
93+
this.setState({ disabled: true });
9294
}
9395

9496
render() {
@@ -136,6 +138,7 @@ export default class HistoryPopup extends React.Component {
136138
submit
137139
className="st2-details__toolbar-button"
138140
value="Submit"
141+
disabled={this.state.disabled}
139142
onClick={(e) => this.handleSubmit(e)}
140143
data-test="rerun_submit"
141144
/>

modules/st2-login/login.component.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ export default class Login extends React.Component {
157157
username: '',
158158
password: '',
159159
remember: true,
160+
disabled: false,
160161

161162
server,
162163
servers,
@@ -168,13 +169,13 @@ export default class Login extends React.Component {
168169

169170
connect(e) {
170171
e.preventDefault();
171-
172+
this.setState({ disabled: true });
172173
this.setState({ error: null });
173174

174175
const { server, username, password, remember } = this.state;
175176
return api.connect(server, username, password, remember)
176177
.then(() => this.props.onConnect())
177-
.catch((err) => this.setState({ error: err.message }))
178+
.catch((err) => this.setState({ error: err.message, disabled: false }))
178179
;
179180
}
180181

@@ -240,6 +241,7 @@ export default class Login extends React.Component {
240241
className={cx('st2-forms__button', style.button)}
241242
type="submit"
242243
value="Connect"
244+
disabled={this.state.disabled}
243245
/>
244246

245247
<label className={style.checkboxWrapper}>

0 commit comments

Comments
 (0)