Hex Artifact Content
Not logged in

Artifact d04eace0e4c47e0ed282cfa6630267299640ec54:


0000: 69 6d 70 6f 72 74 20 52 65 61 63 74 2c 20 7b 20  import React, { 
0010: 43 6f 6d 70 6f 6e 65 6e 74 2c 20 50 72 6f 70 54  Component, PropT
0020: 79 70 65 73 20 7d 20 66 72 6f 6d 20 27 72 65 61  ypes } from 'rea
0030: 63 74 27 3b 0a 69 6d 70 6f 72 74 20 24 20 66 72  ct';.import $ fr
0040: 6f 6d 20 27 6a 71 75 65 72 79 27 3b 0a 69 6d 70  om 'jquery';.imp
0050: 6f 72 74 20 63 6c 61 73 73 4e 61 6d 65 20 66 72  ort className fr
0060: 6f 6d 20 27 63 6c 61 73 73 6e 61 6d 65 73 27 3b  om 'classnames';
0070: 0a 69 6d 70 6f 72 74 20 7a 78 63 76 62 6e 20 66  .import zxcvbn f
0080: 72 6f 6d 20 27 7a 78 63 76 62 6e 27 3b 0a 0a 65  rom 'zxcvbn';..e
0090: 78 70 6f 72 74 20 64 65 66 61 75 6c 74 20 63 6c  xport default cl
00a0: 61 73 73 20 52 65 67 69 73 74 65 72 41 63 63 53  ass RegisterAccS
00b0: 65 63 72 65 74 46 6f 72 6d 20 65 78 74 65 6e 64  ecretForm extend
00c0: 73 20 43 6f 6d 70 6f 6e 65 6e 74 20 7b 0a 20 20  s Component {.  
00d0: 73 74 61 74 69 63 20 70 72 6f 70 54 79 70 65 73  static propTypes
00e0: 20 3d 20 7b 0a 20 20 20 20 75 73 65 72 3a 20 50   = {.    user: P
00f0: 72 6f 70 54 79 70 65 73 2e 6f 62 6a 65 63 74 2e  ropTypes.object.
0100: 69 73 52 65 71 75 69 72 65 64 2c 0a 20 20 20 20  isRequired,.    
0110: 65 72 72 6f 72 3a 20 50 72 6f 70 54 79 70 65 73  error: PropTypes
0120: 2e 6f 62 6a 65 63 74 2e 69 73 52 65 71 75 69 72  .object.isRequir
0130: 65 64 2c 0a 20 20 20 20 65 72 72 6f 72 4d 73 67  ed,.    errorMsg
0140: 3a 20 50 72 6f 70 54 79 70 65 73 2e 73 74 72 69  : PropTypes.stri
0150: 6e 67 2c 0a 20 20 20 20 73 68 6f 77 54 6f 61 73  ng,.    showToas
0160: 74 65 72 3a 20 50 72 6f 70 54 79 70 65 73 2e 66  ter: PropTypes.f
0170: 75 6e 63 2e 69 73 52 65 71 75 69 72 65 64 2c 0a  unc.isRequired,.
0180: 20 20 20 20 73 74 61 74 65 43 6f 6e 74 69 6e 75      stateContinu
0190: 65 3a 20 50 72 6f 70 54 79 70 65 73 2e 66 75 6e  e: PropTypes.fun
01a0: 63 2e 69 73 52 65 71 75 69 72 65 64 2c 0a 20 20  c.isRequired,.  
01b0: 20 20 73 74 61 74 65 42 61 63 6b 3a 20 50 72 6f    stateBack: Pro
01c0: 70 54 79 70 65 73 2e 66 75 6e 63 2e 69 73 52 65  pTypes.func.isRe
01d0: 71 75 69 72 65 64 2c 0a 20 20 20 20 73 65 74 45  quired,.    setE
01e0: 72 72 6f 72 4d 65 73 73 61 67 65 3a 20 50 72 6f  rrorMessage: Pro
01f0: 70 54 79 70 65 73 2e 66 75 6e 63 2c 0a 20 20 20  pTypes.func,.   
0200: 20 63 6c 65 61 72 45 72 72 6f 72 4d 65 73 73 61   clearErrorMessa
0210: 67 65 3a 20 50 72 6f 70 54 79 70 65 73 2e 66 75  ge: PropTypes.fu
0220: 6e 63 0a 20 20 7d 3b 0a 0a 20 20 63 6f 6e 73 74  nc.  };..  const
0230: 72 75 63 74 6f 72 28 29 20 7b 0a 20 20 20 20 73  ructor() {.    s
0240: 75 70 65 72 28 29 3b 0a 20 20 20 20 74 68 69 73  uper();.    this
0250: 2e 68 61 6e 64 6c 65 41 63 63 53 65 63 72 65 74  .handleAccSecret
0260: 46 6f 72 6d 20 3d 20 74 68 69 73 2e 68 61 6e 64  Form = this.hand
0270: 6c 65 41 63 63 53 65 63 72 65 74 46 6f 72 6d 2e  leAccSecretForm.
0280: 62 69 6e 64 28 74 68 69 73 29 3b 0a 20 20 20 20  bind(this);.    
0290: 74 68 69 73 2e 68 61 6e 64 6c 65 49 6e 70 75 74  this.handleInput
02a0: 43 68 61 6e 67 65 20 3d 20 74 68 69 73 2e 68 61  Change = this.ha
02b0: 6e 64 6c 65 49 6e 70 75 74 43 68 61 6e 67 65 2e  ndleInputChange.
02c0: 62 69 6e 64 28 74 68 69 73 29 3b 0a 20 20 20 20  bind(this);.    
02d0: 74 68 69 73 2e 73 68 6f 77 50 61 73 73 77 6f 72  this.showPasswor
02e0: 64 20 3d 20 74 68 69 73 2e 73 68 6f 77 50 61 73  d = this.showPas
02f0: 73 77 6f 72 64 2e 62 69 6e 64 28 74 68 69 73 29  sword.bind(this)
0300: 3b 0a 20 20 20 20 74 68 69 73 2e 70 61 73 73 77  ;.    this.passw
0310: 6f 72 64 53 74 72 65 6e 67 74 68 56 61 6c 69 64  ordStrengthValid
0320: 20 3d 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 0a 20   = false;.  }.. 
0330: 20 63 6f 6d 70 6f 6e 65 6e 74 57 69 6c 6c 4d 6f   componentWillMo
0340: 75 6e 74 28 29 20 7b 0a 20 20 20 20 63 6f 6e 73  unt() {.    cons
0350: 74 20 7b 20 65 72 72 6f 72 2c 20 73 68 6f 77 54  t { error, showT
0360: 6f 61 73 74 65 72 2c 20 73 65 74 45 72 72 6f 72  oaster, setError
0370: 4d 65 73 73 61 67 65 20 7d 20 3d 20 74 68 69 73  Message } = this
0380: 2e 70 72 6f 70 73 3b 0a 20 20 20 20 6c 65 74 20  .props;.    let 
0390: 65 72 72 4d 73 67 20 3d 20 6e 75 6c 6c 3b 0a 20  errMsg = null;. 
03a0: 20 20 20 69 66 20 28 4f 62 6a 65 63 74 2e 6b 65     if (Object.ke
03b0: 79 73 28 65 72 72 6f 72 29 2e 6c 65 6e 67 74 68  ys(error).length
03c0: 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 65 72   > 0) {.      er
03d0: 72 4d 73 67 20 3d 20 77 69 6e 64 6f 77 2e 6d 73  rMsg = window.ms
03e0: 6c 2e 65 72 72 6f 72 43 6f 64 65 4c 6f 6f 6b 75  l.errorCodeLooku
03f0: 70 28 65 72 72 6f 72 2e 65 72 72 6f 72 43 6f 64  p(error.errorCod
0400: 65 20 7c 7c 20 30 29 3b 0a 20 20 20 20 20 20 73  e || 0);.      s
0410: 77 69 74 63 68 20 28 65 72 72 4d 73 67 29 20 7b  witch (errMsg) {
0420: 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 27 43  .        case 'C
0430: 6f 72 65 45 72 72 6f 72 3a 3a 52 65 71 75 65 73  oreError::Reques
0440: 74 54 69 6d 65 6f 75 74 27 3a 0a 20 20 20 20 20  tTimeout':.     
0450: 20 20 20 20 20 65 72 72 4d 73 67 20 3d 20 27 52       errMsg = 'R
0460: 65 71 75 65 73 74 20 74 69 6d 65 64 20 6f 75 74  equest timed out
0470: 27 3b 0a 20 20 20 20 20 20 20 20 20 20 62 72 65  ';.          bre
0480: 61 6b 3b 0a 20 20 20 20 20 20 20 20 63 61 73 65  ak;.        case
0490: 20 27 43 6f 72 65 45 72 72 6f 72 3a 3a 4d 75 74   'CoreError::Mut
04a0: 61 74 69 6f 6e 46 61 69 6c 75 72 65 3a 3a 4d 75  ationFailure::Mu
04b0: 74 61 74 69 6f 6e 45 72 72 6f 72 3a 3a 41 63 63  tationError::Acc
04c0: 6f 75 6e 74 45 78 69 73 74 73 27 3a 0a 20 20 20  ountExists':.   
04d0: 20 20 20 20 20 63 61 73 65 20 27 43 6f 72 65 45       case 'CoreE
04e0: 72 72 6f 72 3a 3a 4d 75 74 61 74 69 6f 6e 46 61  rror::MutationFa
04f0: 69 6c 75 72 65 3a 3a 4d 75 74 61 74 69 6f 6e 45  ilure::MutationE
0500: 72 72 6f 72 3a 3a 44 61 74 61 45 78 69 73 74 73  rror::DataExists
0510: 27 3a 0a 20 20 20 20 20 20 20 20 20 20 65 72 72  ':.          err
0520: 4d 73 67 20 3d 20 27 54 68 69 73 20 61 63 63 6f  Msg = 'This acco
0530: 75 6e 74 20 69 73 20 61 6c 72 65 61 64 79 20 74  unt is already t
0540: 61 6b 65 6e 2e 27 3b 0a 20 20 20 20 20 20 20 20  aken.';.        
0550: 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20    break;.       
0560: 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20   default:.      
0570: 20 20 20 20 65 72 72 4d 73 67 20 3d 20 65 72 72      errMsg = err
0580: 4d 73 67 2e 72 65 70 6c 61 63 65 28 27 43 6f 72  Msg.replace('Cor
0590: 65 45 72 72 6f 72 3a 3a 27 2c 20 27 27 29 3b 0a  eError::', '');.
05a0: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 73 65        }.      se
05b0: 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 65 72  tErrorMessage(er
05c0: 72 4d 73 67 29 3b 0a 20 20 20 20 20 20 73 68 6f  rMsg);.      sho
05d0: 77 54 6f 61 73 74 65 72 28 65 72 72 4d 73 67 2c  wToaster(errMsg,
05e0: 20 7b 20 61 75 74 6f 48 69 64 65 3a 20 74 72 75   { autoHide: tru
05f0: 65 2c 20 65 72 72 6f 72 3a 20 74 72 75 65 20 7d  e, error: true }
0600: 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20  );.    }.  }..  
0610: 63 6f 6d 70 6f 6e 65 6e 74 44 69 64 4d 6f 75 6e  componentDidMoun
0620: 74 28 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20  t() {.    const 
0630: 75 73 65 72 20 3d 20 28 4f 62 6a 65 63 74 2e 6b  user = (Object.k
0640: 65 79 73 28 74 68 69 73 2e 70 72 6f 70 73 2e 75  eys(this.props.u
0650: 73 65 72 29 2e 6c 65 6e 67 74 68 20 3e 20 30 29  ser).length > 0)
0660: 20 3f 20 74 68 69 73 2e 70 72 6f 70 73 2e 75 73   ? this.props.us
0670: 65 72 2e 61 63 63 6f 75 6e 74 53 65 63 72 65 74  er.accountSecret
0680: 20 3a 20 27 27 3b 0a 20 20 20 20 74 68 69 73 2e   : '';.    this.
0690: 61 63 63 6f 75 6e 74 53 65 63 72 65 74 2e 76 61  accountSecret.va
06a0: 6c 75 65 20 3d 20 75 73 65 72 3b 0a 20 20 20 20  lue = user;.    
06b0: 74 68 69 73 2e 63 6f 6e 66 69 72 6d 41 63 63 6f  this.confirmAcco
06c0: 75 6e 74 53 65 63 72 65 74 2e 76 61 6c 75 65 20  untSecret.value 
06d0: 3d 20 75 73 65 72 3b 0a 20 20 20 20 74 68 69 73  = user;.    this
06e0: 2e 61 63 63 6f 75 6e 74 53 65 63 72 65 74 2e 64  .accountSecret.d
06f0: 69 73 70 61 74 63 68 45 76 65 6e 74 28 6e 65 77  ispatchEvent(new
0700: 20 45 76 65 6e 74 28 27 6b 65 79 75 70 27 2c 20   Event('keyup', 
0710: 7b 20 62 75 62 62 6c 65 73 3a 20 74 72 75 65 20  { bubbles: true 
0720: 7d 29 29 3b 0a 20 20 7d 0a 0a 20 20 68 61 6e 64  }));.  }..  hand
0730: 6c 65 41 63 63 53 65 63 72 65 74 46 6f 72 6d 28  leAccSecretForm(
0740: 65 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 61  e) {.    const a
0750: 63 63 6f 75 6e 74 53 65 63 72 65 74 56 61 6c 20  ccountSecretVal 
0760: 3d 20 74 68 69 73 2e 61 63 63 6f 75 6e 74 53 65  = this.accountSe
0770: 63 72 65 74 2e 76 61 6c 75 65 2e 74 72 69 6d 28  cret.value.trim(
0780: 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 6f 6e  );.    const con
0790: 66 69 72 6d 41 63 63 6f 75 6e 74 53 65 63 72 65  firmAccountSecre
07a0: 74 56 61 6c 20 3d 20 74 68 69 73 2e 63 6f 6e 66  tVal = this.conf
07b0: 69 72 6d 41 63 63 6f 75 6e 74 53 65 63 72 65 74  irmAccountSecret
07c0: 2e 76 61 6c 75 65 2e 74 72 69 6d 28 29 3b 0a 20  .value.trim();. 
07d0: 20 20 20 63 6f 6e 73 74 20 61 63 63 6f 75 6e 74     const account
07e0: 53 65 63 72 65 74 4d 73 67 45 6c 65 20 3d 20 24  SecretMsgEle = $
07f0: 28 74 68 69 73 2e 61 63 63 6f 75 6e 74 53 65 63  (this.accountSec
0800: 72 65 74 29 2e 73 69 62 6c 69 6e 67 73 28 27 2e  ret).siblings('.
0810: 6d 73 67 27 29 3b 0a 20 20 20 20 63 6f 6e 73 74  msg');.    const
0820: 20 70 61 72 65 6e 74 45 6c 65 20 3d 20 61 63 63   parentEle = acc
0830: 6f 75 6e 74 53 65 63 72 65 74 4d 73 67 45 6c 65  ountSecretMsgEle
0840: 2e 70 61 72 65 6e 74 28 29 3b 0a 20 20 20 20 63  .parent();.    c
0850: 6f 6e 73 74 20 63 6f 6e 66 69 72 6d 41 63 63 6f  onst confirmAcco
0860: 75 6e 74 53 65 63 72 65 74 4d 73 67 45 6c 65 20  untSecretMsgEle 
0870: 3d 20 24 28 74 68 69 73 2e 63 6f 6e 66 69 72 6d  = $(this.confirm
0880: 41 63 63 6f 75 6e 74 53 65 63 72 65 74 29 2e 73  AccountSecret).s
0890: 69 62 6c 69 6e 67 73 28 27 2e 6d 73 67 27 29 3b  iblings('.msg');
08a0: 0a 20 20 20 20 63 6f 6e 73 74 20 72 65 73 65 74  .    const reset
08b0: 20 3d 20 28 29 20 3d 3e 20 7b 0a 20 20 20 20 20   = () => {.     
08c0: 20 61 63 63 6f 75 6e 74 53 65 63 72 65 74 4d 73   accountSecretMs
08d0: 67 45 6c 65 2e 74 65 78 74 28 27 27 29 3b 0a 20  gEle.text('');. 
08e0: 20 20 20 20 20 63 6f 6e 66 69 72 6d 41 63 63 6f       confirmAcco
08f0: 75 6e 74 53 65 63 72 65 74 4d 73 67 45 6c 65 2e  untSecretMsgEle.
0900: 74 65 78 74 28 27 27 29 3b 0a 20 20 20 20 7d 3b  text('');.    };
0910: 0a 0a 20 20 20 20 72 65 73 65 74 28 29 3b 0a 20  ..    reset();. 
0920: 20 20 20 69 66 20 28 21 61 63 63 6f 75 6e 74 53     if (!accountS
0930: 65 63 72 65 74 56 61 6c 20 7c 7c 20 21 63 6f 6e  ecretVal || !con
0940: 66 69 72 6d 41 63 63 6f 75 6e 74 53 65 63 72 65  firmAccountSecre
0950: 74 56 61 6c 29 20 7b 0a 20 20 20 20 20 20 72 65  tVal) {.      re
0960: 74 75 72 6e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20  turn;.    }..   
0970: 20 65 2e 70 72 65 76 65 6e 74 44 65 66 61 75 6c   e.preventDefaul
0980: 74 28 29 3b 0a 0a 20 20 20 20 69 66 20 28 21 74  t();..    if (!t
0990: 68 69 73 2e 70 61 73 73 77 6f 72 64 53 74 72 65  his.passwordStre
09a0: 6e 67 74 68 56 61 6c 69 64 29 20 7b 0a 20 20 20  ngthValid) {.   
09b0: 20 20 20 70 61 72 65 6e 74 45 6c 65 2e 61 64 64     parentEle.add
09c0: 43 6c 61 73 73 28 27 65 72 72 6f 72 27 29 3b 0a  Class('error');.
09d0: 20 20 20 20 20 20 61 63 63 6f 75 6e 74 53 65 63        accountSec
09e0: 72 65 74 4d 73 67 45 6c 65 2e 74 65 78 74 28 27  retMsgEle.text('
09f0: 41 63 63 6f 75 6e 74 20 73 65 63 72 65 74 20 6e  Account secret n
0a00: 65 65 64 73 20 74 6f 20 62 65 20 73 74 72 6f 6e  eeds to be stron
0a10: 67 65 72 2e 27 29 3b 0a 20 20 20 20 20 20 72 65  ger.');.      re
0a20: 74 75 72 6e 3b 0a 20 20 20 20 7d 0a 0a 20 20 20  turn;.    }..   
0a30: 20 69 66 20 28 61 63 63 6f 75 6e 74 53 65 63 72   if (accountSecr
0a40: 65 74 56 61 6c 20 21 3d 3d 20 63 6f 6e 66 69 72  etVal !== confir
0a50: 6d 41 63 63 6f 75 6e 74 53 65 63 72 65 74 56 61  mAccountSecretVa
0a60: 6c 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72  l) {.      retur
0a70: 6e 20 63 6f 6e 66 69 72 6d 41 63 63 6f 75 6e 74  n confirmAccount
0a80: 53 65 63 72 65 74 4d 73 67 45 6c 65 2e 74 65 78  SecretMsgEle.tex
0a90: 74 28 27 45 6e 74 72 69 65 73 20 64 6f 6e 5c 27  t('Entries don\'
0aa0: 74 20 6d 61 74 63 68 2e 27 29 3b 0a 20 20 20 20  t match.');.    
0ab0: 7d 0a 0a 20 20 20 20 74 68 69 73 2e 70 72 6f 70  }..    this.prop
0ac0: 73 2e 73 74 61 74 65 43 6f 6e 74 69 6e 75 65 28  s.stateContinue(
0ad0: 7b 0a 20 20 20 20 20 20 61 63 63 6f 75 6e 74 53  {.      accountS
0ae0: 65 63 72 65 74 3a 20 61 63 63 6f 75 6e 74 53 65  ecret: accountSe
0af0: 63 72 65 74 56 61 6c 0a 20 20 20 20 7d 29 3b 0a  cretVal.    });.
0b00: 20 20 7d 0a 0a 20 20 72 65 73 65 74 49 6e 70 75    }..  resetInpu
0b10: 74 28 65 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74  t(e) {.    const
0b20: 20 65 6c 65 20 3d 20 24 28 65 2e 63 75 72 72 65   ele = $(e.curre
0b30: 6e 74 54 61 72 67 65 74 29 3b 0a 20 20 20 20 63  ntTarget);.    c
0b40: 6f 6e 73 74 20 6d 73 67 45 6c 65 20 3d 20 65 6c  onst msgEle = el
0b50: 65 2e 73 69 62 6c 69 6e 67 73 28 27 2e 6d 73 67  e.siblings('.msg
0b60: 27 29 3b 0a 20 20 20 20 6d 73 67 45 6c 65 2e 74  ');.    msgEle.t
0b70: 65 78 74 28 27 27 29 3b 0a 20 20 20 20 63 6f 6e  ext('');.    con
0b80: 73 74 20 70 61 72 65 6e 74 45 6c 65 20 3d 20 24  st parentEle = $
0b90: 28 27 23 41 63 63 6f 75 6e 74 53 65 63 72 65 74  ('#AccountSecret
0ba0: 27 29 3b 0a 20 20 20 20 69 66 20 28 70 61 72 65  ');.    if (pare
0bb0: 6e 74 45 6c 65 2e 68 61 73 43 6c 61 73 73 28 27  ntEle.hasClass('
0bc0: 65 72 72 6f 72 27 29 29 20 7b 0a 20 20 20 20 20  error')) {.     
0bd0: 20 70 61 72 65 6e 74 45 6c 65 2e 72 65 6d 6f 76   parentEle.remov
0be0: 65 43 6c 61 73 73 28 27 65 72 72 6f 72 27 29 3b  eClass('error');
0bf0: 0a 20 20 20 20 20 20 70 61 72 65 6e 74 45 6c 65  .      parentEle
0c00: 2e 63 68 69 6c 64 72 65 6e 28 27 2e 6d 73 67 27  .children('.msg'
0c10: 29 2e 74 65 78 74 28 27 27 29 3b 0a 20 20 20 20  ).text('');.    
0c20: 7d 0a 20 20 7d 0a 0a 20 20 68 61 6e 64 6c 65 49  }.  }..  handleI
0c30: 6e 70 75 74 43 68 61 6e 67 65 28 65 29 20 7b 0a  nputChange(e) {.
0c40: 20 20 20 20 69 66 20 28 65 2e 6b 65 79 43 6f 64      if (e.keyCod
0c50: 65 20 3d 3d 3d 20 31 33 29 20 7b 0a 20 20 20 20  e === 13) {.    
0c60: 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 7d 0a    return;.    }.
0c70: 20 20 20 20 69 66 20 28 74 68 69 73 2e 70 72 6f      if (this.pro
0c80: 70 73 2e 65 72 72 6f 72 4d 73 67 29 20 7b 0a 20  ps.errorMsg) {. 
0c90: 20 20 20 20 20 74 68 69 73 2e 70 72 6f 70 73 2e       this.props.
0ca0: 63 6c 65 61 72 45 72 72 6f 72 4d 65 73 73 61 67  clearErrorMessag
0cb0: 65 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 63  e();.    }.    c
0cc0: 6f 6e 73 74 20 4d 53 47 20 3d 20 7b 0a 20 20 20  onst MSG = {.   
0cd0: 20 20 20 50 41 53 53 5f 56 45 52 59 5f 57 45 45     PASS_VERY_WEE
0ce0: 4b 3a 20 27 56 65 72 79 20 77 65 61 6b 27 2c 0a  K: 'Very weak',.
0cf0: 20 20 20 20 20 20 50 41 53 53 5f 57 45 45 4b 3a        PASS_WEEK:
0d00: 20 27 57 65 61 6b 27 2c 0a 20 20 20 20 20 20 50   'Weak',.      P
0d10: 41 53 53 5f 53 4f 4d 45 57 48 41 54 5f 53 45 43  ASS_SOMEWHAT_SEC
0d20: 55 52 45 3a 20 27 53 6f 6d 65 77 68 61 74 20 73  URE: 'Somewhat s
0d30: 65 63 75 72 65 27 2c 0a 20 20 20 20 20 20 50 41  ecure',.      PA
0d40: 53 53 5f 53 45 43 55 52 45 3a 20 27 53 65 63 75  SS_SECURE: 'Secu
0d50: 72 65 27 0a 20 20 20 20 7d 3b 0a 20 20 20 20 63  re'.    };.    c
0d60: 6f 6e 73 74 20 65 6c 65 20 3d 20 24 28 65 2e 63  onst ele = $(e.c
0d70: 75 72 72 65 6e 74 54 61 72 67 65 74 29 3b 0a 20  urrentTarget);. 
0d80: 20 20 20 63 6f 6e 73 74 20 70 61 72 65 6e 74 45     const parentE
0d90: 6c 65 20 3d 20 65 6c 65 2e 70 61 72 65 6e 74 28  le = ele.parent(
0da0: 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 73 74 61  );.    const sta
0db0: 74 75 73 45 6c 65 20 3d 20 65 6c 65 2e 73 69 62  tusEle = ele.sib
0dc0: 6c 69 6e 67 73 28 27 2e 73 74 61 74 75 73 27 29  lings('.status')
0dd0: 3b 0a 20 20 20 20 63 6f 6e 73 74 20 73 74 72 65  ;.    const stre
0de0: 6e 67 74 68 45 6c 65 20 3d 20 65 6c 65 2e 73 69  ngthEle = ele.si
0df0: 62 6c 69 6e 67 73 28 27 2e 73 74 72 65 6e 67 74  blings('.strengt
0e00: 68 27 29 3b 0a 20 20 20 20 63 6f 6e 73 74 20 6d  h');.    const m
0e10: 73 67 45 6c 65 20 3d 20 65 6c 65 2e 73 69 62 6c  sgEle = ele.sibl
0e20: 69 6e 67 73 28 27 2e 6d 73 67 27 29 3b 0a 20 20  ings('.msg');.  
0e30: 20 20 63 6f 6e 73 74 20 76 61 6c 75 65 20 3d 20    const value = 
0e40: 65 6c 65 2e 76 61 6c 28 29 3b 0a 20 20 20 20 63  ele.val();.    c
0e50: 6f 6e 73 74 20 6c 6f 67 31 30 20 3d 20 7a 78 63  onst log10 = zxc
0e60: 76 62 6e 28 76 61 6c 75 65 29 2e 67 75 65 73 73  vbn(value).guess
0e70: 65 73 5f 6c 6f 67 31 30 3b 0a 20 20 20 20 63 6f  es_log10;.    co
0e80: 6e 73 74 20 72 65 73 65 74 46 69 65 6c 64 20 3d  nst resetField =
0e90: 20 28 29 20 3d 3e 20 7b 0a 20 20 20 20 20 20 73   () => {.      s
0ea0: 74 72 65 6e 67 74 68 45 6c 65 2e 77 69 64 74 68  trengthEle.width
0eb0: 28 27 30 27 29 3b 0a 20 20 20 20 20 20 73 74 61  ('0');.      sta
0ec0: 74 75 73 45 6c 65 2e 72 65 6d 6f 76 65 43 6c 61  tusEle.removeCla
0ed0: 73 73 28 27 69 63 6e 27 29 3b 0a 20 20 20 20 20  ss('icn');.     
0ee0: 20 70 61 72 65 6e 74 45 6c 65 2e 72 65 6d 6f 76   parentEle.remov
0ef0: 65 43 6c 61 73 73 28 27 65 72 72 6f 72 27 29 3b  eClass('error');
0f00: 0a 20 20 20 20 20 20 6d 73 67 45 6c 65 2e 74 65  .      msgEle.te
0f10: 78 74 28 27 27 29 3b 0a 20 20 20 20 20 20 74 68  xt('');.      th
0f20: 69 73 2e 70 61 73 73 77 6f 72 64 53 74 72 65 6e  is.passwordStren
0f30: 67 74 68 56 61 6c 69 64 20 3d 20 66 61 6c 73 65  gthValid = false
0f40: 3b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a  ;.      return;.
0f50: 20 20 20 20 7d 3b 0a 0a 20 20 20 20 72 65 73 65      };..    rese
0f60: 74 46 69 65 6c 64 28 29 3b 0a 20 20 20 20 69 66  tField();.    if
0f70: 20 28 21 76 61 6c 75 65 29 20 7b 0a 20 20 20 20   (!value) {.    
0f80: 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 7d 0a    return;.    }.
0f90: 20 20 20 20 73 77 69 74 63 68 20 28 74 72 75 65      switch (true
0fa0: 29 20 7b 0a 20 20 20 20 20 20 63 61 73 65 20 28  ) {.      case (
0fb0: 6c 6f 67 31 30 20 3c 20 34 29 3a 0a 20 20 20 20  log10 < 4):.    
0fc0: 20 20 20 20 6d 73 67 45 6c 65 2e 74 65 78 74 28      msgEle.text(
0fd0: 4d 53 47 2e 50 41 53 53 5f 56 45 52 59 5f 57 45  MSG.PASS_VERY_WE
0fe0: 45 4b 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69  EK);.        thi
0ff0: 73 2e 70 61 73 73 77 6f 72 64 53 74 72 65 6e 67  s.passwordStreng
1000: 74 68 56 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b  thValid = false;
1010: 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a  .        break;.
1020: 20 20 20 20 20 20 63 61 73 65 20 28 6c 6f 67 31        case (log1
1030: 30 20 3c 20 38 29 3a 0a 20 20 20 20 20 20 20 20  0 < 8):.        
1040: 6d 73 67 45 6c 65 2e 74 65 78 74 28 4d 53 47 2e  msgEle.text(MSG.
1050: 50 41 53 53 5f 57 45 45 4b 29 3b 0a 20 20 20 20  PASS_WEEK);.    
1060: 20 20 20 20 74 68 69 73 2e 70 61 73 73 77 6f 72      this.passwor
1070: 64 53 74 72 65 6e 67 74 68 56 61 6c 69 64 20 3d  dStrengthValid =
1080: 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20   false;.        
1090: 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 73  break;.      cas
10a0: 65 20 28 6c 6f 67 31 30 20 3c 20 31 30 29 3a 0a  e (log10 < 10):.
10b0: 20 20 20 20 20 20 20 20 73 74 61 74 75 73 45 6c          statusEl
10c0: 65 2e 61 64 64 43 6c 61 73 73 28 27 69 63 6e 27  e.addClass('icn'
10d0: 29 3b 0a 20 20 20 20 20 20 20 20 6d 73 67 45 6c  );.        msgEl
10e0: 65 2e 74 65 78 74 28 4d 53 47 2e 50 41 53 53 5f  e.text(MSG.PASS_
10f0: 53 4f 4d 45 57 48 41 54 5f 53 45 43 55 52 45 29  SOMEWHAT_SECURE)
1100: 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 70  ;.        this.p
1110: 61 73 73 77 6f 72 64 53 74 72 65 6e 67 74 68 56  asswordStrengthV
1120: 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 20 20 20  alid = true;.   
1130: 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20       break;.    
1140: 20 20 63 61 73 65 20 28 6c 6f 67 31 30 20 3e 3d    case (log10 >=
1150: 20 31 30 29 3a 0a 20 20 20 20 20 20 20 20 73 74   10):.        st
1160: 61 74 75 73 45 6c 65 2e 61 64 64 43 6c 61 73 73  atusEle.addClass
1170: 28 27 69 63 6e 27 29 3b 0a 20 20 20 20 20 20 20  ('icn');.       
1180: 20 6d 73 67 45 6c 65 2e 74 65 78 74 28 4d 53 47   msgEle.text(MSG
1190: 2e 50 41 53 53 5f 53 45 43 55 52 45 29 3b 0a 20  .PASS_SECURE);. 
11a0: 20 20 20 20 20 20 20 74 68 69 73 2e 70 61 73 73         this.pass
11b0: 77 6f 72 64 53 74 72 65 6e 67 74 68 56 61 6c 69  wordStrengthVali
11c0: 64 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20  d = true;.      
11d0: 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 64    break;.      d
11e0: 65 66 61 75 6c 74 3a 0a 20 20 20 20 7d 0a 0a 20  efault:.    }.. 
11f0: 20 20 20 73 74 72 65 6e 67 74 68 45 6c 65 2e 77     strengthEle.w
1200: 69 64 74 68 28 60 24 7b 4d 61 74 68 2e 6d 69 6e  idth(`${Math.min
1210: 28 28 6c 6f 67 31 30 20 2f 20 31 36 29 20 2a 20  ((log10 / 16) * 
1220: 31 30 30 2c 20 31 30 30 29 7d 25 60 29 3b 0a 20  100, 100)}%`);. 
1230: 20 7d 0a 0a 20 20 73 68 6f 77 50 61 73 73 77 6f   }..  showPasswo
1240: 72 64 28 65 29 20 7b 0a 20 20 20 20 63 6f 6e 73  rd(e) {.    cons
1250: 74 20 63 75 72 72 65 6e 74 54 61 72 67 65 74 20  t currentTarget 
1260: 3d 20 65 2e 63 75 72 72 65 6e 74 54 61 72 67 65  = e.currentTarge
1270: 74 3b 0a 20 20 20 20 69 66 20 28 63 75 72 72 65  t;.    if (curre
1280: 6e 74 54 61 72 67 65 74 2e 63 6c 61 73 73 4c 69  ntTarget.classLi
1290: 73 74 2e 63 6f 6e 74 61 69 6e 73 28 27 61 63 74  st.contains('act
12a0: 69 76 65 27 29 29 20 7b 0a 20 20 20 20 20 20 63  ive')) {.      c
12b0: 75 72 72 65 6e 74 54 61 72 67 65 74 2e 63 6c 61  urrentTarget.cla
12c0: 73 73 4c 69 73 74 2e 72 65 6d 6f 76 65 28 27 61  ssList.remove('a
12d0: 63 74 69 76 65 27 29 3b 0a 20 20 20 20 7d 20 65  ctive');.    } e
12e0: 6c 73 65 20 7b 0a 20 20 20 20 20 20 63 75 72 72  lse {.      curr
12f0: 65 6e 74 54 61 72 67 65 74 2e 63 6c 61 73 73 4c  entTarget.classL
1300: 69 73 74 2e 61 64 64 28 27 61 63 74 69 76 65 27  ist.add('active'
1310: 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 63 6f 6e  );.    }.    con
1320: 73 74 20 74 61 72 67 65 74 45 6c 65 20 3d 20 74  st targetEle = t
1330: 68 69 73 5b 63 75 72 72 65 6e 74 54 61 72 67 65  his[currentTarge
1340: 74 2e 64 61 74 61 73 65 74 2e 74 61 72 67 65 74  t.dataset.target
1350: 5d 3b 0a 20 20 20 20 69 66 20 28 74 61 72 67 65  ];.    if (targe
1360: 74 45 6c 65 2e 67 65 74 41 74 74 72 69 62 75 74  tEle.getAttribut
1370: 65 28 27 74 79 70 65 27 29 20 3d 3d 3d 20 27 74  e('type') === 't
1380: 65 78 74 27 29 20 7b 0a 20 20 20 20 20 20 72 65  ext') {.      re
1390: 74 75 72 6e 20 74 61 72 67 65 74 45 6c 65 2e 73  turn targetEle.s
13a0: 65 74 41 74 74 72 69 62 75 74 65 28 27 74 79 70  etAttribute('typ
13b0: 65 27 2c 20 27 70 61 73 73 77 6f 72 64 27 29 3b  e', 'password');
13c0: 0a 20 20 20 20 7d 0a 20 20 20 20 74 61 72 67 65  .    }.    targe
13d0: 74 45 6c 65 2e 73 65 74 41 74 74 72 69 62 75 74  tEle.setAttribut
13e0: 65 28 27 74 79 70 65 27 2c 20 27 74 65 78 74 27  e('type', 'text'
13f0: 29 3b 0a 20 20 7d 0a 0a 20 20 72 65 6e 64 65 72  );.  }..  render
1400: 28 29 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 7b  () {.    const {
1410: 20 65 72 72 6f 72 4d 73 67 20 7d 20 3d 20 74 68   errorMsg } = th
1420: 69 73 2e 70 72 6f 70 73 3b 0a 0a 20 20 20 20 63  is.props;..    c
1430: 6f 6e 73 74 20 69 6e 70 75 74 47 72 70 43 6c 61  onst inputGrpCla
1440: 73 73 4e 61 6d 65 73 20 3d 20 63 6c 61 73 73 4e  ssNames = classN
1450: 61 6d 65 28 0a 20 20 20 20 20 20 27 69 6e 70 2d  ame(.      'inp-
1460: 67 72 70 27 2c 0a 20 20 20 20 20 20 27 76 61 6c  grp',.      'val
1470: 69 64 61 74 65 2d 66 69 65 6c 64 27 2c 0a 20 20  idate-field',.  
1480: 20 20 20 20 27 6c 69 67 68 74 2d 74 68 65 6d 65      'light-theme
1490: 27 2c 0a 20 20 20 20 20 20 7b 20 65 72 72 6f 72  ',.      { error
14a0: 3a 20 65 72 72 6f 72 4d 73 67 20 7d 0a 20 20 20  : errorMsg }.   
14b0: 20 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20   );..    return 
14c0: 28 0a 20 20 20 20 20 20 3c 64 69 76 20 63 6c 61  (.      <div cla
14d0: 73 73 4e 61 6d 65 3d 22 61 75 74 68 2d 69 6e 74  ssName="auth-int
14e0: 72 6f 2d 63 6e 74 22 3e 0a 20 20 20 20 20 20 20  ro-cnt">.       
14f0: 20 3c 68 33 20 63 6c 61 73 73 4e 61 6d 65 3d 22   <h3 className="
1500: 74 69 74 6c 65 22 3e 41 63 63 6f 75 6e 74 20 53  title">Account S
1510: 65 63 72 65 74 3c 2f 68 33 3e 0a 20 20 20 20 20  ecret</h3>.     
1520: 20 20 20 3c 64 69 76 20 63 6c 61 73 73 4e 61 6d     <div classNam
1530: 65 3d 22 64 65 73 63 22 3e 0a 20 20 20 20 20 20  e="desc">.      
1540: 20 20 20 20 59 6f 75 72 20 27 61 63 63 6f 75 6e      Your 'accoun
1550: 74 20 73 65 63 72 65 74 27 20 69 73 20 70 72 69  t secret' is pri
1560: 76 61 74 65 20 61 6e 64 20 3c 62 3e 73 68 6f 75  vate and <b>shou
1570: 6c 64 20 6e 6f 74 20 62 65 20 73 68 61 72 65 64  ld not be shared
1580: 3c 2f 62 3e 20 77 69 74 68 20 61 6e 79 6f 6e 65  </b> with anyone
1590: 2e 0a 20 20 20 20 20 20 20 20 3c 2f 64 69 76 3e  ..        </div>
15a0: 0a 20 20 20 20 20 20 20 20 3c 64 69 76 20 63 6c  .        <div cl
15b0: 61 73 73 4e 61 6d 65 3d 22 66 6f 72 6d 2d 62 22  assName="form-b"
15c0: 3e 0a 20 20 20 20 20 20 20 20 20 20 3c 66 6f 72  >.          <for
15d0: 6d 20 69 64 3d 22 61 63 63 6f 75 6e 74 53 65 63  m id="accountSec
15e0: 72 65 74 46 6f 72 6d 22 20 63 6c 61 73 73 4e 61  retForm" classNa
15f0: 6d 65 3d 22 66 6f 72 6d 22 20 6e 61 6d 65 3d 22  me="form" name="
1600: 61 63 63 6f 75 6e 74 53 65 63 72 65 74 46 6f 72  accountSecretFor
1610: 6d 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20  m">.            
1620: 3c 64 69 76 20 69 64 3d 22 41 63 63 6f 75 6e 74  <div id="Account
1630: 53 65 63 72 65 74 22 20 63 6c 61 73 73 4e 61 6d  Secret" classNam
1640: 65 3d 7b 69 6e 70 75 74 47 72 70 43 6c 61 73 73  e={inputGrpClass
1650: 4e 61 6d 65 73 7d 3e 0a 20 20 20 20 20 20 20 20  Names}>.        
1660: 20 20 20 20 20 20 3c 69 6e 70 75 74 0a 20 20 20        <input.   
1670: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 64 3d               id=
1680: 22 61 63 63 6f 75 6e 74 53 65 63 72 65 74 22 0a  "accountSecret".
1690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a0: 74 79 70 65 3d 22 70 61 73 73 77 6f 72 64 22 0a  type="password".
16b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c0: 72 65 66 3d 7b 63 20 3d 3e 20 7b 20 74 68 69 73  ref={c => { this
16d0: 2e 61 63 63 6f 75 6e 74 53 65 63 72 65 74 20 3d  .accountSecret =
16e0: 20 63 3b 20 7d 7d 0a 20 20 20 20 20 20 20 20 20   c; }}.         
16f0: 20 20 20 20 20 20 20 72 65 71 75 69 72 65 64 3d         required=
1700: 22 74 72 75 65 22 0a 20 20 20 20 20 20 20 20 20  "true".         
1710: 20 20 20 20 20 20 20 6f 6e 4b 65 79 55 70 3d 7b         onKeyUp={
1720: 74 68 69 73 2e 68 61 6e 64 6c 65 49 6e 70 75 74  this.handleInput
1730: 43 68 61 6e 67 65 7d 0a 20 20 20 20 20 20 20 20  Change}.        
1740: 20 20 20 20 20 20 20 20 61 75 74 6f 46 6f 63 75          autoFocu
1750: 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  s.              
1760: 2f 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  />.             
1770: 20 3c 6c 61 62 65 6c 20 68 74 6d 6c 46 6f 72 3d   <label htmlFor=
1780: 22 61 63 63 6f 75 6e 74 53 65 63 72 65 74 22 3e  "accountSecret">
1790: 41 63 63 6f 75 6e 74 20 53 65 63 72 65 74 3c 2f  Account Secret</
17a0: 6c 61 62 65 6c 3e 0a 20 20 20 20 20 20 20 20 20  label>.         
17b0: 20 20 20 20 20 3c 64 69 76 20 63 6c 61 73 73 4e       <div classN
17c0: 61 6d 65 3d 22 6d 73 67 22 3e 7b 65 72 72 6f 72  ame="msg">{error
17d0: 4d 73 67 7d 3c 2f 64 69 76 3e 0a 20 20 20 20 20  Msg}</div>.     
17e0: 20 20 20 20 20 20 20 20 20 3c 64 69 76 20 63 6c           <div cl
17f0: 61 73 73 4e 61 6d 65 3d 22 6f 70 74 22 3e 0a 20  assName="opt">. 
1800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c                 <
1810: 64 69 76 20 63 6c 61 73 73 4e 61 6d 65 3d 22 6f  div className="o
1820: 70 74 2d 69 22 3e 0a 20 20 20 20 20 20 20 20 20  pt-i">.         
1830: 20 20 20 20 20 20 20 20 20 3c 73 70 61 6e 0a 20           <span. 
1840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1850: 20 20 20 63 6c 61 73 73 4e 61 6d 65 3d 22 65 79     className="ey
1860: 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  e".             
1870: 20 20 20 20 20 20 20 64 61 74 61 2d 74 61 72 67         data-targ
1880: 65 74 3d 22 61 63 63 6f 75 6e 74 53 65 63 72 65  et="accountSecre
1890: 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  t".             
18a0: 20 20 20 20 20 20 20 6f 6e 43 6c 69 63 6b 3d 7b         onClick={
18b0: 74 68 69 73 2e 73 68 6f 77 50 61 73 73 77 6f 72  this.showPasswor
18c0: 64 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  d}.             
18d0: 20 20 20 20 20 3e 7b 27 20 27 7d 3c 2f 73 70 61       >{' '}</spa
18e0: 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  n>.             
18f0: 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20     </div>.      
1900: 20 20 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20          </div>. 
1910: 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 73 70               <sp
1920: 61 6e 20 63 6c 61 73 73 4e 61 6d 65 3d 22 73 74  an className="st
1930: 72 65 6e 67 74 68 22 3e 7b 27 20 27 7d 3c 2f 73  rength">{' '}</s
1940: 70 61 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 20  pan>.           
1950: 20 20 20 3c 73 70 61 6e 20 63 6c 61 73 73 4e 61     <span classNa
1960: 6d 65 3d 22 73 74 61 74 75 73 22 20 64 61 74 61  me="status" data
1970: 2d 76 61 6c 3d 22 6d 69 6e 22 3e 7b 27 20 27 7d  -val="min">{' '}
1980: 3c 2f 73 70 61 6e 3e 0a 20 20 20 20 20 20 20 20  </span>.        
1990: 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20      </div>.     
19a0: 20 20 20 20 20 20 20 3c 64 69 76 20 69 64 3d 22         <div id="
19b0: 41 63 63 6f 75 6e 74 53 65 63 72 65 74 43 6f 6e  AccountSecretCon
19c0: 66 69 72 6d 22 20 63 6c 61 73 73 4e 61 6d 65 3d  firm" className=
19d0: 22 69 6e 70 2d 67 72 70 20 6c 69 67 68 74 2d 74  "inp-grp light-t
19e0: 68 65 6d 65 22 3e 0a 20 20 20 20 20 20 20 20 20  heme">.         
19f0: 20 20 20 20 20 3c 69 6e 70 75 74 0a 20 20 20 20       <input.    
1a00: 20 20 20 20 20 20 20 20 20 20 20 20 69 64 3d 22              id="
1a10: 63 6f 6e 66 69 72 6d 41 63 63 6f 75 6e 74 53 65  confirmAccountSe
1a20: 63 72 65 74 22 0a 20 20 20 20 20 20 20 20 20 20  cret".          
1a30: 20 20 20 20 20 20 74 79 70 65 3d 22 70 61 73 73        type="pass
1a40: 77 6f 72 64 22 0a 20 20 20 20 20 20 20 20 20 20  word".          
1a50: 20 20 20 20 20 20 72 65 66 3d 7b 63 20 3d 3e 20        ref={c => 
1a60: 7b 20 74 68 69 73 2e 63 6f 6e 66 69 72 6d 41 63  { this.confirmAc
1a70: 63 6f 75 6e 74 53 65 63 72 65 74 20 3d 20 63 3b  countSecret = c;
1a80: 20 7d 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20   }}.            
1a90: 20 20 20 20 72 65 71 75 69 72 65 64 3d 22 74 72      required="tr
1aa0: 75 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20  ue".            
1ab0: 20 20 20 20 6f 6e 43 68 61 6e 67 65 3d 7b 74 68      onChange={th
1ac0: 69 73 2e 72 65 73 65 74 49 6e 70 75 74 7d 0a 20  is.resetInput}. 
1ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 3e 0a               />.
1ae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 6c                <l
1af0: 61 62 65 6c 20 68 74 6d 6c 46 6f 72 3d 22 63 6f  abel htmlFor="co
1b00: 6e 66 69 72 6d 41 63 63 6f 75 6e 74 53 65 63 72  nfirmAccountSecr
1b10: 65 74 22 3e 43 6f 6e 66 69 72 6d 20 41 63 63 6f  et">Confirm Acco
1b20: 75 6e 74 20 53 65 63 72 65 74 3c 2f 6c 61 62 65  unt Secret</labe
1b30: 6c 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  l>.             
1b40: 20 3c 64 69 76 20 63 6c 61 73 73 4e 61 6d 65 3d   <div className=
1b50: 22 6d 73 67 22 3e 7b 27 20 27 7d 3c 2f 64 69 76  "msg">{' '}</div
1b60: 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  >.              
1b70: 3c 64 69 76 20 63 6c 61 73 73 4e 61 6d 65 3d 22  <div className="
1b80: 6f 70 74 22 3e 0a 20 20 20 20 20 20 20 20 20 20  opt">.          
1b90: 20 20 20 20 20 20 3c 64 69 76 20 63 6c 61 73 73        <div class
1ba0: 4e 61 6d 65 3d 22 6f 70 74 2d 69 22 3e 0a 20 20  Name="opt-i">.  
1bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc0: 3c 73 70 61 6e 0a 20 20 20 20 20 20 20 20 20 20  <span.          
1bd0: 20 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 4e            classN
1be0: 61 6d 65 3d 22 65 79 65 22 0a 20 20 20 20 20 20  ame="eye".      
1bf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61                da
1c00: 74 61 2d 74 61 72 67 65 74 3d 22 63 6f 6e 66 69  ta-target="confi
1c10: 72 6d 41 63 63 6f 75 6e 74 53 65 63 72 65 74 22  rmAccountSecret"
1c20: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1c30: 20 20 20 20 20 6f 6e 43 6c 69 63 6b 3d 7b 74 68       onClick={th
1c40: 69 73 2e 73 68 6f 77 50 61 73 73 77 6f 72 64 7d  is.showPassword}
1c50: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1c60: 20 20 20 3e 7b 27 20 27 7d 3c 2f 73 70 61 6e 3e     >{' '}</span>
1c70: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
1c80: 20 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 20 20   </div>.        
1c90: 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a 20 20 20        </div>.   
1ca0: 20 20 20 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a           </div>.
1cb0: 20 20 20 20 20 20 20 20 20 20 3c 2f 66 6f 72 6d            </form
1cc0: 3e 0a 20 20 20 20 20 20 20 20 3c 2f 64 69 76 3e  >.        </div>
1cd0: 0a 20 20 20 20 20 20 20 20 3c 64 69 76 20 63 6c  .        <div cl
1ce0: 61 73 73 4e 61 6d 65 3d 22 6f 70 74 22 3e 0a 20  assName="opt">. 
1cf0: 20 20 20 20 20 20 20 20 20 3c 64 69 76 20 63 6c           <div cl
1d00: 61 73 73 4e 61 6d 65 3d 22 6f 70 74 2d 69 20 6c  assName="opt-i l
1d10: 74 22 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20  t">.            
1d20: 3c 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20  <button.        
1d30: 20 20 20 20 20 20 74 79 70 65 3d 22 62 75 74 74        type="butt
1d40: 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20  on".            
1d50: 20 20 63 6c 61 73 73 4e 61 6d 65 3d 22 62 74 6e    className="btn
1d60: 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ".              
1d70: 6e 61 6d 65 3d 22 62 61 63 6b 22 0a 20 20 20 20  name="back".    
1d80: 20 20 20 20 20 20 20 20 20 20 6f 6e 43 6c 69 63            onClic
1d90: 6b 3d 7b 28 29 20 3d 3e 20 7b 0a 20 20 20 20 20  k={() => {.     
1da0: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e             this.
1db0: 70 72 6f 70 73 2e 73 74 61 74 65 42 61 63 6b 28  props.stateBack(
1dc0: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  );.             
1dd0: 20 7d 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20   }}.            
1de0: 3e 42 61 63 6b 3c 2f 62 75 74 74 6f 6e 3e 0a 20  >Back</button>. 
1df0: 20 20 20 20 20 20 20 20 20 3c 2f 64 69 76 3e 0a           </div>.
1e00: 20 20 20 20 20 20 20 20 20 20 3c 64 69 76 20 63            <div c
1e10: 6c 61 73 73 4e 61 6d 65 3d 22 6f 70 74 2d 69 22  lassName="opt-i"
1e20: 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3c 62  >.            <b
1e30: 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 20  utton.          
1e40: 20 20 20 20 74 79 70 65 3d 22 73 75 62 6d 69 74      type="submit
1e50: 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ".              
1e60: 63 6c 61 73 73 4e 61 6d 65 3d 22 62 74 6e 22 0a  className="btn".
1e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61                na
1e80: 6d 65 3d 22 63 6f 6e 74 69 6e 75 65 22 0a 20 20  me="continue".  
1e90: 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d              form
1ea0: 3d 22 61 63 63 6f 75 6e 74 53 65 63 72 65 74 46  ="accountSecretF
1eb0: 6f 72 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20  orm".           
1ec0: 20 20 20 6f 6e 43 6c 69 63 6b 3d 7b 74 68 69 73     onClick={this
1ed0: 2e 68 61 6e 64 6c 65 41 63 63 53 65 63 72 65 74  .handleAccSecret
1ee0: 46 6f 72 6d 7d 0a 20 20 20 20 20 20 20 20 20 20  Form}.          
1ef0: 20 20 3e 43 6f 6e 74 69 6e 75 65 3c 2f 62 75 74    >Continue</but
1f00: 74 6f 6e 3e 0a 20 20 20 20 20 20 20 20 20 20 3c  ton>.          <
1f10: 2f 64 69 76 3e 0a 20 20 20 20 20 20 20 20 3c 2f  /div>.        </
1f20: 64 69 76 3e 0a 20 20 20 20 20 20 3c 2f 64 69 76  div>.      </div
1f30: 3e 0a 20 20 20 20 29 3b 0a 20 20 7d 0a 7d 0a     >.    );.  }.}.