vn-verdnaturachat/app/reducers/room.js

44 lines
921 B
JavaScript

import * as types from '../actions/actionsTypes';
const initialState = {
usersTyping: [],
layoutAnimation: new Date()
};
export default function room(state = initialState, action) {
switch (action.type) {
case types.ROOM.OPEN:
return {
...initialState,
...action.room,
lastOpen: new Date()
};
case types.ROOM.CLOSE:
return {
...initialState
};
case types.ROOM.SET_LAST_OPEN:
return {
...state,
lastOpen: action.date
};
case types.ROOM.ADD_USER_TYPING:
return {
...state,
usersTyping: [...state.usersTyping.filter(user => user !== action.username), action.username]
};
case types.ROOM.REMOVE_USER_TYPING:
return {
...state,
usersTyping: [...state.usersTyping.filter(user => user !== action.username)]
};
case types.ROOM.LAYOUT_ANIMATION:
return {
...state,
layoutAnimation: new Date()
};
default:
return state;
}
}