import moment from 'moment'; import { hydrateUser } from './users'; export const PATCH_POST = 'PATCH_POST'; export function hydrate(json) { return Object.assign({}, json, { posted_on: moment(json.posted_on), updated_on: moment(json.updated_on), hidden_on: moment(json.hidden_on), attachments: json.attachments ? json.attachments.map(hydrateAttachment) : null, poster: json.poster ? hydrateUser(json.poster) : null, isSelected: false, isBusy: false, isDeleted: false }); } export function hydrateAttachment(json) { return Object.assign({}, json, { uploaded_on: moment(json.uploaded_on) }); } export function patch(post, patch) { return { type: PATCH_POST, post, patch }; } export default function post(state={}, action=null) { switch (action.type) { case PATCH_POST: if (state.id == action.post.id) { return Object.assign({}, state, action.patch); } return state; default: return state; } }