summaryrefslogtreecommitdiff
path: root/app/client/auth/auth.reducer.js
blob: 80b1ec5c093e29952cf2092513747372c367445f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import types from '../types'

const authInitialState = {
  token: null,
  user: {},
  groups: {},
  initialized: false,
  loading: false,
  isAuthenticated: false,
  returnTo: null,
}

const auth = (state = authInitialState, action) => {
  switch(action.type) {
    case types.auth.set_token:
      return {
        ...state,
        token: action.data,
        isAuthenticated: !!action.data,
        loading: false,
        error: null,
      }

    case types.auth.initialized:
      return {
        ...state,
        loading: false,
        initialized: true,
        error: null,
      }

    case types.auth.loading:
      return {
        ...state,
        loading: true,
        error: null,
      }

    case types.auth.set_current_user:
      return {
        ...state,
        loading: false,
        initialized: true,
        isAuthenticated: true,
        user: action.data,
        error: null,
      }

    case types.auth.set_return_to:
      return {
        ...state,
        returnTo: action.data,
      }

    case types.auth.logout_user:
      return {
        ...authInitialState
      }

    case types.auth.set_error:
      return {
        ...state,
        loading: false,
        error: action.data,
      }

    case types.auth.loading:
      // const initial_state_el = document.querySelector('#initial_state')
      // if (initial_state_el) {
      //   try {
      //     const initial_state = JSON.parse(initial_state_el.innerHTML)
      //     if (initial_state && initial_state.auth && initial_state.auth.user) {
      //       console.log(initial_state.auth.user)
      //       return {
      //         ...state,
      //         user: {
      //           ...initial_state.auth.user,
      //         }
      //       }
      //     }
      //   } catch (e) {
      //     console.error("error loading initial state")
      //   }
      // }
      return state

    default:
      return state
  }
}

export default auth