Hex Artifact Content
Not logged in

Artifact d30917bbaa383ef443f069d0846b157d70cb935d:


0000: 69 6d 70 6f 72 74 20 2a 20 61 73 20 74 79 70 65  import * as type
0010: 73 20 66 72 6f 6d 20 27 2e 2e 2f 61 63 74 69 6f  s from '../actio
0020: 6e 54 79 70 65 73 27 0a 0a 63 6f 6e 73 74 20 69  nTypes'..const i
0030: 6e 69 74 69 61 6c 53 74 61 74 65 20 3d 20 7b 0a  nitialState = {.
0040: 20 20 75 73 65 72 73 3a 20 5b 5d 2c 0a 20 20 6c    users: [],.  l
0050: 6f 61 64 65 64 3a 20 66 61 6c 73 65 2c 0a 20 20  oaded: false,.  
0060: 75 73 65 72 3a 20 7b 7d 0a 7d 0a 0a 65 78 70 6f  user: {}.}..expo
0070: 72 74 20 64 65 66 61 75 6c 74 20 66 75 6e 63 74  rt default funct
0080: 69 6f 6e 20 72 65 64 75 63 65 72 20 28 73 74 61  ion reducer (sta
0090: 74 65 20 3d 20 69 6e 69 74 69 61 6c 53 74 61 74  te = initialStat
00a0: 65 2c 20 61 63 74 69 6f 6e 20 3d 20 7b 7d 29 20  e, action = {}) 
00b0: 7b 0a 20 20 73 77 69 74 63 68 20 28 61 63 74 69  {.  switch (acti
00c0: 6f 6e 2e 74 79 70 65 29 20 7b 0a 20 20 20 20 63  on.type) {.    c
00d0: 61 73 65 20 74 79 70 65 73 2e 4c 4f 41 44 5f 55  ase types.LOAD_U
00e0: 53 45 52 53 5f 53 55 43 43 45 53 53 3a 0a 20 20  SERS_SUCCESS:.  
00f0: 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 20      return {.   
0100: 20 20 20 20 20 2e 2e 2e 73 74 61 74 65 2c 0a 20       ...state,. 
0110: 20 20 20 20 20 20 20 75 73 65 72 73 3a 20 61 63         users: ac
0120: 74 69 6f 6e 2e 72 65 73 75 6c 74 2e 6d 61 70 28  tion.result.map(
0130: 75 73 65 72 20 3d 3e 20 7b 0a 20 20 20 20 20 20  user => {.      
0140: 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 20      return {.   
0150: 20 20 20 20 20 20 20 20 20 2e 2e 2e 75 73 65 72           ...user
0160: 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61  ,.            ba
0170: 6c 61 6e 63 65 3a 20 70 61 72 73 65 46 6c 6f 61  lance: parseFloa
0180: 74 28 75 73 65 72 2e 62 61 6c 61 6e 63 65 29 2c  t(user.balance),
0190: 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 61  .            loa
01a0: 64 65 64 3a 20 74 72 75 65 0a 20 20 20 20 20 20  ded: true.      
01b0: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 29      }.        })
01c0: 2c 0a 20 20 20 20 20 20 20 20 6c 6f 61 64 65 64  ,.        loaded
01d0: 3a 20 74 72 75 65 0a 20 20 20 20 20 20 7d 0a 20  : true.      }. 
01e0: 20 20 20 63 61 73 65 20 74 79 70 65 73 2e 4c 4f     case types.LO
01f0: 41 44 5f 55 53 45 52 53 5f 46 41 49 4c 3a 0a 20  AD_USERS_FAIL:. 
0200: 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20       return {.  
0210: 20 20 20 20 20 20 2e 2e 2e 73 74 61 74 65 2c 0a        ...state,.
0220: 20 20 20 20 20 20 20 20 6c 6f 61 64 65 64 3a 20          loaded: 
0230: 74 72 75 65 0a 20 20 20 20 20 20 7d 0a 20 20 20  true.      }.   
0240: 20 63 61 73 65 20 74 79 70 65 73 2e 47 45 54 5f   case types.GET_
0250: 55 53 45 52 5f 53 55 43 43 45 53 53 3a 0a 20 20  USER_SUCCESS:.  
0260: 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 20      return {.   
0270: 20 20 20 20 20 2e 2e 2e 73 74 61 74 65 2c 0a 20       ...state,. 
0280: 20 20 20 20 20 20 20 75 73 65 72 3a 20 61 63 74         user: act
0290: 69 6f 6e 2e 72 65 73 75 6c 74 0a 20 20 20 20 20  ion.result.     
02a0: 20 7d 0a 20 20 20 20 64 65 66 61 75 6c 74 3a 0a   }.    default:.
02b0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 61        return sta
02c0: 74 65 0a 20 20 7d 0a 7d 0a                       te.  }.}.