UNPKG

@lonelyplanet/dotcom-core

Version:

This package is meant to house some of our more common UI and shared libs across dotcom applications.

74 lines (62 loc) 1.97 kB
"use strict"; var __assign = this && this.__assign || Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var _a; var redux_actions_1 = require("redux-actions"); var bookmark_1 = require("../constants/bookmark"); var initialState = { lists: [] }; exports.bookmark = redux_actions_1.handleActions((_a = {}, _a[bookmark_1.ADD_BOOKMARK_DONE] = function (state, action) { return __assign({}, state, { lists: state.lists.map(function (list) { if (list.id === action.payload.listId) { return __assign({}, list, { entries: list.entries.concat([__assign({}, action.payload.bookmark)]) }); } return list; }) }); }, _a[bookmark_1.UPDATE_BOOKMARK_DONE] = function (state, action) { return __assign({}, state, { lists: state.lists.map(function (list) { if (list.id === action.payload.listId) { var entries = list.entries.map(function (entry) { if (entry.id === action.payload.bookmark.id) { return __assign({}, action.payload.bookmark); } return entry; }); return __assign({}, list, { entries: entries }); } return list; }) }); }, _a[bookmark_1.LIST_CREATE_DONE] = function (state, action) { return __assign({}, state, { lists: state.lists.concat([__assign({}, action.payload)]) }); }, _a[bookmark_1.LIST_UPDATE_DONE] = function (state, action) { return __assign({}, state, { lists: state.lists.map(function (list) { if (list.id === action.payload.id) { return __assign({}, list, action.payload, { entries: list.entries }); } return list; }) }); }, _a), initialState); exports.default = exports.bookmark;