itizawa 6 lat temu
rodzic
commit
6162f04c98

+ 85 - 59
src/client/js/components/Admin/Users/UserInviteModal.jsx

@@ -38,6 +38,87 @@ class UserInviteModal extends React.Component {
     toastSuccess('Copied Mail and Password');
   }
 
+  renderModalBody() {
+    const { t } = this.props;
+
+    return (
+      <>
+        <label> { t('user_management.emails') }</label>
+        <textarea
+          className="form-control"
+          placeholder="e.g. user@growi.org"
+          style={{ height: '200px' }}
+          value={this.state.emailInputValue}
+          onChange={this.handleInput}
+        />
+        {!this.validEmail() && <p className="m-2 text-danger">{ t('user_management.valid_email') }</p>}
+      </>
+    );
+  }
+
+  renderCreatedModalBody() {
+    const { t } = this.props;
+    const { invitedEmailList } = this.state;
+
+    return (
+      <>
+        <p>{t('user_management.temporary_password')}</p>
+        <p>{t('user_management.send_new_password')}</p>
+        {invitedEmailList.createdUserList.length > 0 && this.renderCreatedEmail(invitedEmailList.createdUserList)}
+        {invitedEmailList.existingEmailList.length > 0 && this.renderExistingEmail(invitedEmailList.existingEmailList)}
+      </>
+    );
+  }
+
+  renderModalFooter() {
+    const { t } = this.props;
+
+    return (
+      <>
+        <label className="mr-3 text-left" style={{ flex: 1 }}>
+          <input
+            type="checkbox"
+            defaultChecked={this.state.sendEmail}
+            onChange={this.handleCheckBox}
+          />
+          <span className="ml-2">{ t('user_management.invite_thru_email') }</span>
+        </label>
+        <div>
+          <Button bsStyle="danger" className="fcbtn btn btn-xs btn-danger btn-outline btn-rounded" onClick={this.onToggleModal}>
+          Cancel
+          </Button>
+          <Button
+            bsStyle="primary"
+            className="fcbtn btn btn-primary btn-outline btn-rounded btn-1b"
+            onClick={this.handleSubmit}
+            disabled={!this.validEmail()}
+          >
+          Done
+          </Button>
+        </div>
+      </>
+    );
+  }
+
+  renderCreatedModalFooter() {
+    const { t } = this.props;
+
+    return (
+      <>
+        <label className="mr-3 text-left text-danger" style={{ flex: 1 }}>
+          {t('user_management.send_temporary_password')}
+        </label>
+        <Button
+          bsStyle="primary"
+          className="fcbtn btn btn-primary btn-outline btn-rounded"
+          onClick={this.onToggleModal}
+        >
+          Close
+        </Button>
+      </>
+    );
+  }
+
   renderCreatedEmail(userList) {
     return (
       <ul>
@@ -115,67 +196,12 @@ class UserInviteModal extends React.Component {
           </Modal.Title>
         </Modal.Header>
         <Modal.Body>
-          {invitedEmailList == null ? (
-            <>
-              <label> { t('user_management.emails') }</label>
-              <textarea
-                className="form-control"
-                placeholder="e.g. user@growi.org"
-                style={{ height: '200px' }}
-                value={this.state.emailInputValue}
-                onChange={this.handleInput}
-              />
-              {!this.validEmail() && <p className="m-2 text-danger">{ t('user_management.valid_email') }</p>}
-            </>
-            ) : (
-              <>
-                <p>{t('user_management.temporary_password')}</p>
-                <p>{t('user_management.send_new_password')}</p>
-                {invitedEmailList.createdUserList.length > 0 && this.renderCreatedEmail(invitedEmailList.createdUserList)}
-                {invitedEmailList.existingEmailList.length > 0 && this.renderExistingEmail(invitedEmailList.existingEmailList)}
-              </>
-            )
-          }
+          {invitedEmailList == null ? this.renderModalBody()
+           : this.renderCreatedModalBody()}
         </Modal.Body>
         <Modal.Footer className="d-flex">
-          {invitedEmailList == null ? (
-            <>
-              <label className="mr-3 text-left" style={{ flex: 1 }}>
-                <input
-                  type="checkbox"
-                  defaultChecked={this.state.sendEmail}
-                  onChange={this.handleCheckBox}
-                />
-                <span className="ml-2">{ t('user_management.invite_thru_email') }</span>
-              </label>
-              <div>
-                <Button bsStyle="danger" className="fcbtn btn btn-xs btn-danger btn-outline btn-rounded" onClick={this.onToggleModal}>
-                  Cancel
-                </Button>
-                <Button
-                  bsStyle="primary"
-                  className="fcbtn btn btn-primary btn-outline btn-rounded btn-1b"
-                  onClick={this.handleSubmit}
-                  disabled={!this.validEmail()}
-                >
-                  Done
-                </Button>
-              </div>
-            </>
-          ) : (
-            <>
-              <label className="mr-3 text-left text-danger" style={{ flex: 1 }}>
-                {t('user_management.send_temporary_password')}
-              </label>
-              <Button
-                bsStyle="primary"
-                className="fcbtn btn btn-primary btn-outline btn-rounded"
-                onClick={this.onToggleModal}
-              >
-                Close
-              </Button>
-            </>
-          )}
+          {invitedEmailList == null ? this.renderModalFooter()
+           : this.renderCreatedModalFooter()}
         </Modal.Footer>
       </Modal>
     );