1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // @flow
-
- import { ReducerRegistry } from '../base/redux';
-
- import {
- ADD_MESSAGE,
- SET_LAST_READ_MESSAGE
- } from './actionTypes';
-
- const DEFAULT_STATE = {
- open: false,
- messages: [],
- lastReadMessage: null
- };
-
- ReducerRegistry.register('features/chat', (state = DEFAULT_STATE, action) => {
- switch (action.type) {
- case ADD_MESSAGE: {
- const newMessage = {
- message: action.message,
- timestamp: action.timestamp,
- userName: action.userName
- };
-
- return {
- ...state,
- lastReadMessage:
- action.hasRead ? newMessage : state.lastReadMessage,
- messages: [
- ...state.messages,
- newMessage
- ]
- };
- }
-
- case SET_LAST_READ_MESSAGE:
- return {
- ...state,
- lastReadMessage: action.message
- };
- }
-
- return state;
- });
|