accounts-frontend/src/components/user/reducer.js

38 lines
979 B
JavaScript
Raw Normal View History

2016-05-20 01:11:43 +05:30
import { UPDATE, SET, CHANGE_LANG } from './actions';
import User from './User';
// TODO: возможно есть смысл инитить обьект User снаружи, так как редусер не должен столько знать
export default function user(
state = new User(),
{type, payload = null}
) {
switch (type) {
2016-05-20 01:11:43 +05:30
case CHANGE_LANG:
if (!payload || !payload.lang) {
throw new Error('payload.lang is required for user reducer');
}
return new User({
...state,
lang: payload.lang
});
case UPDATE:
if (!payload) {
throw new Error('payload is required for user reducer');
}
return new User({
...state,
...payload
});
case SET:
return new User(payload || {});
default:
return state;
}
}