| Index: chrome/browser/resources/md_bookmarks/reducers.js
|
| diff --git a/chrome/browser/resources/md_bookmarks/reducers.js b/chrome/browser/resources/md_bookmarks/reducers.js
|
| index 959949c422cd57733f19f716c189a1b485e34891..dce9fd7c125e248c290ad0deb88821271f295c3e 100644
|
| --- a/chrome/browser/resources/md_bookmarks/reducers.js
|
| +++ b/chrome/browser/resources/md_bookmarks/reducers.js
|
| @@ -135,6 +135,25 @@ cr.define('bookmarks', function() {
|
| * @param {Action} action
|
| * @return {NodeList}
|
| */
|
| + NodeState.createBookmark = function(nodes, action) {
|
| + var nodeModifications = {};
|
| + nodeModifications[action.id] = action.node;
|
| +
|
| + var parentNode = nodes[action.parentId];
|
| + var newChildren = parentNode.children.slice();
|
| + newChildren.splice(action.parentIndex, 0, action.id);
|
| + nodeModifications[action.parentId] = Object.assign({}, parentNode, {
|
| + children: newChildren,
|
| + });
|
| +
|
| + return Object.assign({}, nodes, nodeModifications);
|
| + };
|
| +
|
| + /**
|
| + * @param {NodeList} nodes
|
| + * @param {Action} action
|
| + * @return {NodeList}
|
| + */
|
| NodeState.editBookmark = function(nodes, action) {
|
| // Do not allow folders to change URL (making them no longer folders).
|
| if (!nodes[action.id].url && action.changeInfo.url)
|
| @@ -199,6 +218,8 @@ cr.define('bookmarks', function() {
|
| */
|
| NodeState.updateNodes = function(nodes, action) {
|
| switch (action.name) {
|
| + case 'create-bookmark':
|
| + return NodeState.createBookmark(nodes, action);
|
| case 'edit-bookmark':
|
| return NodeState.editBookmark(nodes, action);
|
| case 'remove-bookmark':
|
|
|