aboutsummaryrefslogtreecommitdiffstats
path: root/src/features/workspaces/components/EditWorkspaceForm.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/features/workspaces/components/EditWorkspaceForm.js')
-rw-r--r--src/features/workspaces/components/EditWorkspaceForm.js59
1 files changed, 24 insertions, 35 deletions
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js
index 48090f608..a9fd4d21c 100644
--- a/src/features/workspaces/components/EditWorkspaceForm.js
+++ b/src/features/workspaces/components/EditWorkspaceForm.js
@@ -11,6 +11,7 @@ import Service from '../../../models/Service';
11import Form from '../../../lib/Form'; 11import Form from '../../../lib/Form';
12import { required } from '../../../helpers/validation-helpers'; 12import { required } from '../../../helpers/validation-helpers';
13import ServiceListItem from './ServiceListItem'; 13import ServiceListItem from './ServiceListItem';
14import Request from '../../../stores/lib/Request';
14 15
15const messages = defineMessages({ 16const messages = defineMessages({
16 buttonDelete: { 17 buttonDelete: {
@@ -52,12 +53,12 @@ class EditWorkspaceForm extends Component {
52 53
53 static propTypes = { 54 static propTypes = {
54 classes: PropTypes.object.isRequired, 55 classes: PropTypes.object.isRequired,
55 isDeleting: PropTypes.bool.isRequired,
56 isSaving: PropTypes.bool.isRequired,
57 onDelete: PropTypes.func.isRequired, 56 onDelete: PropTypes.func.isRequired,
58 onSave: PropTypes.func.isRequired, 57 onSave: PropTypes.func.isRequired,
59 services: PropTypes.arrayOf(PropTypes.instanceOf(Service)).isRequired, 58 services: PropTypes.arrayOf(PropTypes.instanceOf(Service)).isRequired,
60 workspace: PropTypes.instanceOf(Workspace).isRequired, 59 workspace: PropTypes.instanceOf(Workspace).isRequired,
60 updateWorkspaceRequest: PropTypes.instanceOf(Request).isRequired,
61 deleteWorkspaceRequest: PropTypes.instanceOf(Request).isRequired,
61 }; 62 };
62 63
63 form = this.prepareWorkspaceForm(this.props.workspace); 64 form = this.prepareWorkspaceForm(this.props.workspace);
@@ -112,14 +113,16 @@ class EditWorkspaceForm extends Component {
112 const { intl } = this.context; 113 const { intl } = this.context;
113 const { 114 const {
114 classes, 115 classes,
115 isDeleting,
116 isSaving,
117 onDelete, 116 onDelete,
118 workspace, 117 workspace,
119 services, 118 services,
119 deleteWorkspaceRequest,
120 updateWorkspaceRequest,
120 } = this.props; 121 } = this.props;
121 const { form } = this; 122 const { form } = this;
122 const workspaceServices = form.$('services').value; 123 const workspaceServices = form.$('services').value;
124 const isDeleting = deleteWorkspaceRequest.isExecuting;
125 const isSaving = updateWorkspaceRequest.isExecuting;
123 return ( 126 return (
124 <div className="settings__main"> 127 <div className="settings__main">
125 <div className="settings__header"> 128 <div className="settings__header">
@@ -151,38 +154,24 @@ class EditWorkspaceForm extends Component {
151 </div> 154 </div>
152 <div className="settings__controls"> 155 <div className="settings__controls">
153 {/* ===== Delete Button ===== */} 156 {/* ===== Delete Button ===== */}
154 {isDeleting ? ( 157 <Button
155 <Button 158 label={intl.formatMessage(messages.buttonDelete)}
156 label={intl.formatMessage(messages.buttonDelete)} 159 loaded={false}
157 loaded={false} 160 busy={isDeleting}
158 buttonType="secondary" 161 buttonType={isDeleting ? 'secondary' : 'danger'}
159 className="settings__delete-button" 162 className="settings__delete-button"
160 disabled 163 disabled={isDeleting}
161 /> 164 onClick={onDelete}
162 ) : ( 165 />
163 <Button
164 buttonType="danger"
165 label={intl.formatMessage(messages.buttonDelete)}
166 className="settings__delete-button"
167 onClick={onDelete}
168 />
169 )}
170 {/* ===== Save Button ===== */} 166 {/* ===== Save Button ===== */}
171 {isSaving ? ( 167 <Button
172 <Button 168 type="submit"
173 type="submit" 169 label={intl.formatMessage(messages.buttonSave)}
174 label={intl.formatMessage(messages.buttonSave)} 170 busy={isSaving}
175 loaded={!isSaving} 171 buttonType={isSaving ? 'secondary' : 'primary'}
176 buttonType="secondary" 172 onClick={this.submitForm.bind(this, form)}
177 disabled 173 disabled={isSaving}
178 /> 174 />
179 ) : (
180 <Button
181 type="submit"
182 label={intl.formatMessage(messages.buttonSave)}
183 onClick={this.submitForm.bind(this, form)}
184 />
185 )}
186 </div> 175 </div>
187 </div> 176 </div>
188 ); 177 );