@lonelyplanet/dotcom-core
Version:
This package is meant to house some of our more common UI and shared libs across dotcom applications.
49 lines (48 loc) • 2.1 kB
JavaScript
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;
};
var _a;
import { handleActions } from "redux-actions";
import { ADD_BOOKMARK_DONE, LIST_CREATE_DONE, LIST_UPDATE_DONE, UPDATE_BOOKMARK_DONE, } from "../constants/bookmark";
var initialState = {
lists: [],
};
export var bookmark = handleActions((_a = {},
_a[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[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[LIST_CREATE_DONE] = function (state, action) { return (__assign({}, state, { lists: state.lists.concat([
__assign({}, action.payload),
]) })); },
_a[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);
export default bookmark;