1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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 patch(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, {
- avatars: action.avatars
- })
- }
- 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
- }
- }
|