import objectAssign from "object-assign"; import * as types from "../constants/ActionTypes"; import { STATE_OPENING, STATE_OPEN, STATE_CLOSING, STATE_CLOSED } from "../constants/socket.js"; const initialState = { state: STATE_CLOSED, url: null }; export default function socket(state = initialState, action) { switch (action.type) { case types.SOCKET_SET_OPENING: if (action.error) { return state; } return objectAssign({}, state, { state: STATE_OPENING }); case types.SOCKET_SET_OPEN: return objectAssign({}, state, { state: STATE_OPEN }); case types.SOCKET_SET_CLOSING: if (action.error) { return state; } return objectAssign({}, state, { state: STATE_CLOSING }); case types.SOCKET_SET_CLOSED: return objectAssign({}, state, { state: STATE_CLOSED }); case types.SOCKET_SET_ERROR: if (state.state === STATE_OPENING) { return objectAssign({}, state, { state: STATE_CLOSED }); } return state; case types.SOCKET_RECEIVE_MESSAGE: console.log(`Socket received message: ${action.payload}`); return state; case types.SOCKET_SEND_MESSAGE: console.log("Sending message"); return state; default: return state; } }