| 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 2a61ecf8de9446689c272321d1d91ebd7d3c98f9..5beb0381f691f31d3fe13e3816a393ac3c06fe7a 100644
|
| --- a/chrome/browser/resources/md_bookmarks/reducers.js
|
| +++ b/chrome/browser/resources/md_bookmarks/reducers.js
|
| @@ -134,6 +134,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)
|
| @@ -198,6 +217,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':
|
|
|