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

Side by Side Diff: chrome/browser/resources/md_bookmarks/util.js

Issue 2972963003: MD Bookmarks: Prevent flash of folder contents when changing search term (Closed)
Patch Set: Created 3 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Utility functions for the Bookmarks page. 6 * @fileoverview Utility functions for the Bookmarks page.
7 */ 7 */
8 8
9 cr.define('bookmarks.util', function() { 9 cr.define('bookmarks.util', function() {
10 /** 10 /**
11 * Returns the list of bookmark IDs to be displayed in the UI, taking into 11 * Returns the list of bookmark IDs to be displayed in the UI, taking into
12 * account search and the currently selected folder. 12 * account search and the currently selected folder.
13 * @param {!BookmarksPageState} state 13 * @param {!BookmarksPageState} state
14 * @return {!Array<string>} 14 * @return {!Array<string>}
15 */ 15 */
16 function getDisplayedList(state) { 16 function getDisplayedList(state) {
17 if (!isShowingSearch(state)) 17 if (isShowingSearch(state))
18 return assert(state.nodes[state.selectedFolder].children); 18 return assert(state.search.results);
19 19
20 return state.search.results; 20 return assert(state.nodes[state.selectedFolder].children);
21 } 21 }
22 22
23 /** 23 /**
24 * @param {BookmarkTreeNode} treeNode 24 * @param {BookmarkTreeNode} treeNode
25 * @return {BookmarkNode} 25 * @return {BookmarkNode}
26 */ 26 */
27 function normalizeNode(treeNode) { 27 function normalizeNode(treeNode) {
28 var node = Object.assign({}, treeNode); 28 var node = Object.assign({}, treeNode);
29 // Node index is not necessary and not kept up-to-date. Remove it from the 29 // Node index is not necessary and not kept up-to-date. Remove it from the
30 // data structure so we don't accidentally depend on the incorrect 30 // data structure so we don't accidentally depend on the incorrect
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 nodes: {}, 70 nodes: {},
71 selectedFolder: BOOKMARKS_BAR_ID, 71 selectedFolder: BOOKMARKS_BAR_ID,
72 closedFolders: new Set(), 72 closedFolders: new Set(),
73 prefs: { 73 prefs: {
74 canEdit: true, 74 canEdit: true,
75 incognitoAvailability: IncognitoAvailability.ENABLED, 75 incognitoAvailability: IncognitoAvailability.ENABLED,
76 }, 76 },
77 search: { 77 search: {
78 term: '', 78 term: '',
79 inProgress: false, 79 inProgress: false,
80 results: [], 80 results: null,
81 }, 81 },
82 selection: { 82 selection: {
83 items: new Set(), 83 items: new Set(),
84 anchor: null, 84 anchor: null,
85 }, 85 },
86 }; 86 };
87 } 87 }
88 88
89 /** 89 /**
90 * @param {BookmarksPageState} state 90 * @param {BookmarksPageState} state
91 * @return {boolean} 91 * @return {boolean}
92 */ 92 */
93 function isShowingSearch(state) { 93 function isShowingSearch(state) {
94 return !!state.search.term && !state.search.inProgress; 94 return state.search.results != null;
95 } 95 }
96 96
97 /** 97 /**
98 * Returns true if the node with ID |itemId| is modifiable, allowing 98 * Returns true if the node with ID |itemId| is modifiable, allowing
99 * the node to be renamed, moved or deleted. Note that if a node is 99 * the node to be renamed, moved or deleted. Note that if a node is
100 * uneditable, it may still have editable children (for example, the top-level 100 * uneditable, it may still have editable children (for example, the top-level
101 * folders). 101 * folders).
102 * @param {BookmarksPageState} state 102 * @param {BookmarksPageState} state
103 * @param {string} itemId 103 * @param {string} itemId
104 * @return {boolean} 104 * @return {boolean}
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 getDescendants: getDescendants, 200 getDescendants: getDescendants,
201 getDisplayedList: getDisplayedList, 201 getDisplayedList: getDisplayedList,
202 hasChildFolders: hasChildFolders, 202 hasChildFolders: hasChildFolders,
203 isShowingSearch: isShowingSearch, 203 isShowingSearch: isShowingSearch,
204 normalizeNode: normalizeNode, 204 normalizeNode: normalizeNode,
205 normalizeNodes: normalizeNodes, 205 normalizeNodes: normalizeNodes,
206 removeIdsFromMap: removeIdsFromMap, 206 removeIdsFromMap: removeIdsFromMap,
207 removeIdsFromSet: removeIdsFromSet, 207 removeIdsFromSet: removeIdsFromSet,
208 }; 208 };
209 }); 209 });
OLDNEW
« 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