UNPKG

@100mslive/react-native-room-kit

Version:

100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.

45 lines 1.37 kB
import ActionTypes, { HmsStateActionTypes } from '../actionTypes'; const INITIAL_STATE = { messages: [], pinnedMessages: [] }; const messageReducer = (state = INITIAL_STATE, action) => { switch (action.type) { case ActionTypes.ADD_PINNED_MESSAGES.REQUEST: const pinnedMessages = action.payload ?? INITIAL_STATE.pinnedMessages; return { ...state, pinnedMessages }; case ActionTypes.ADD_MESSAGE.REQUEST: const message = action.payload; return { ...state, messages: [message, ...state.messages] }; case ActionTypes.CLEAR_MESSAGE_DATA.REQUEST: return { ...state, messages: [] }; case ActionTypes.FILTER_OUT_BLOCKED_MSGS: const chatPeerBlacklist = action.payload; return { ...state, messages: state.messages.filter(message => { var _message$sender; const senderUserId = (_message$sender = message.sender) === null || _message$sender === void 0 ? void 0 : _message$sender.customerUserID; if (!senderUserId) { return true; } return !chatPeerBlacklist.includes(senderUserId); }) }; case HmsStateActionTypes.CLEAR_STATES: return INITIAL_STATE; default: return state; } }; export default messageReducer; //# sourceMappingURL=message.js.map