@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
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;
};
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;