12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import {
- SET,
- UPDATE,
- USER_CONNECTED,
- USER_DISCONNECTED,
- USER_LANG,
- USER_NAME,
- USER_AUTH
- } from '../action-creator.sync.js'
- import { generateAvatarFromPublicName } from 'tracim_frontend_lib'
-
- const defaultUser = {
- user_id: -1,
- logged: null, // null avoid to be redirected to /login while whoami ep has not responded yet
- auth: '',
- timezone: '',
- profile: {
- id: 1,
- slug: 'user'
- },
- email: '',
- is_active: true,
- caldav_url: null,
- avatar_url: null,
- created: '',
- public_name: '',
- lang: ''
- }
-
- export default function user (state = defaultUser, action) {
- switch (action.type) {
- case `${SET}/${USER_CONNECTED}`:
- return {
- ...state,
- ...action.user,
- lang: action.user.lang ? action.user.lang : 'en',
- avatar_url: action.user.avatar_url
- ? action.user.avatar_url
- : action.user.public_name ? generateAvatarFromPublicName(action.user.public_name) : ''
- }
-
- case `${SET}/${USER_DISCONNECTED}`:
- return {...defaultUser, logged: false}
-
- case `${SET}/${USER_LANG}`:
- return {...state, lang: action.lang}
-
- case `${UPDATE}/${USER_NAME}`:
- return {...state, public_name: action.newName}
-
- case `${UPDATE}/${USER_AUTH}`:
- return {...state, auth: action.auth}
-
- default:
- return state
- }
- }
|