12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import moment from 'moment';
- import { UPDATE_AVATAR, UPDATE_USERNAME, hydrateStatus } from 'misago/reducers/users';
- export const HYDRATE_PROFILE = 'HYDRATE_PROFILE';
- export const PATCH_PROFILE = 'PATCH_PROFILE';
- export function hydrate(profile) {
- return {
- type: HYDRATE_PROFILE,
- profile
- };
- }
- export function patchProfile(patch) {
- return {
- type: PATCH_PROFILE,
- patch
- };
- }
- export default function auth(state={}, action=null) {
- switch (action.type) {
- case HYDRATE_PROFILE:
- return Object.assign({}, action.profile, {
- joined_on: moment(action.profile.joined_on),
- status: hydrateStatus(action.profile.status)
- });
- case PATCH_PROFILE:
- return Object.assign({}, state, action.patch);
- case UPDATE_AVATAR:
- if (state.id === action.userId) {
- return Object.assign({}, state, {
- avatar_hash: action.avatarHash
- });
- }
- return state;
- case UPDATE_USERNAME:
- if (state.id === action.userId) {
- return Object.assign({}, state, {
- username: action.username,
- slug: action.slug
- });
- }
- return state;
- default:
- return state;
- }
- }
|