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

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

Issue 2722083002: [MD Bookmarks] Flatten sidebar. (Closed)
Patch Set: Created 3 years, 9 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/util.js
diff --git a/chrome/browser/resources/md_bookmarks/util.js b/chrome/browser/resources/md_bookmarks/util.js
index 9c1e942146e8e072d41d79e71f22a249c8983f79..02090175ca79b9446817cfa28e037ea4948d6836 100644
--- a/chrome/browser/resources/md_bookmarks/util.js
+++ b/chrome/browser/resources/md_bookmarks/util.js
@@ -48,12 +48,52 @@ cr.define('bookmarks.util', function() {
return nodeMap;
}
+ function initializeSidebar(rootNodeId, nodes) {
+ var folders = [];
+
+ var calculateFoldersBelow = function(nodeId, depth) {
+ var node = nodes[nodeId];
+ if (!node.children)
+ return;
+
+ folders.push({
+ id: node.id,
+ depth: depth,
+ visible: true,
+ open: true,
+ });
+ node.children.forEach(function(childId) {
+ calculateFoldersBelow(childId, depth + 1);
+ });
+ };
+
+ calculateFoldersBelow(rootNodeId, -1);
+
+ // Remove the root node.
+ folders.shift();
+ return {
+ folders: folders,
+ folderMap: createFolderMap(folders),
+ };
+ }
+
+ /**
+ * @param {!Array<SidebarFolder>} folders
+ * @return {!Object<string, number>}
+ */
+ function createFolderMap(folders) {
+ var folderMap = {};
+ folders.forEach(function(folder, idx) {
+ folderMap[folder.id] = idx;
+ });
+ return folderMap;
+ };
+
/** @return {BookmarksPageState} */
function createEmptyState() {
return {
nodes: {},
selectedFolder: '0',
- closedFolders: {},
search: {
term: '',
inProgress: false,
@@ -64,12 +104,18 @@ cr.define('bookmarks.util', function() {
anchor: null,
count: 0,
},
+ sidebar: {
+ folders: [],
+ folderMap: {},
+ },
};
}
return {
createEmptyState: createEmptyState,
+ createFolderMap: createFolderMap,
getDisplayedList: getDisplayedList,
+ initializeSidebar: initializeSidebar,
normalizeNodes: normalizeNodes,
};
});
« no previous file with comments | « chrome/browser/resources/md_bookmarks/types.js ('k') | chrome/test/data/webui/md_bookmarks/reducers_test.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698