UNPKG

orb-ui-firebase

Version:

Firebase with redux

59 lines (45 loc) 2.07 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } import * as types from './types'; function list() { var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var action = arguments[1]; var payload = action.payload, append = action.append; switch (action.type) { case types.INIIALIZE: return append ? [].concat(list, payload) : payload; case types.CHILD_ADDED: return list.findIndex(function (d) { return d.key === payload.key; }) === -1 ? [].concat(list, [payload]) : [].concat(list); case types.CHILD_CHANGED: return list.map(function (child) { return payload.key === child.key ? payload : child; }); case types.CHILD_REMOVED: return list.filter(function (child) { return payload.key !== child.key; }); } } export default function lists() { var _extends2, _extends3; var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var action = arguments[1]; var location = action.location; switch (action.type) { case types.INIIALIZE: return _extends({}, state, (_extends2 = {}, _extends2[location] = list(state[action.location], action), _extends2)); case types.CHILD_ADDED: case types.CHILD_CHANGED: case types.CHILD_REMOVED: return _extends({}, state, (_extends3 = {}, _extends3[location] = list(state[action.location], action), _extends3)); case types.DESTROY: var omitData = state[location], rest = _objectWithoutProperties(state, [location]); return _extends({}, rest); default: return state; } }