Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2918)

Unified Diff: chrome/browser/resources/md_bookmarks/reducers.js

Issue 2795623002: MD Bookmarks: Handle bookmark creation (Closed)
Patch Set: Update test Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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':
« no previous file with comments | « chrome/browser/resources/md_bookmarks/api_listener.js ('k') | chrome/browser/resources/md_bookmarks/util.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698