You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-12-02 22:49:09 +02:00
Desktop: Use arrow to move between items, and added shortcuts to focus different elements
This commit is contained in:
@@ -26,43 +26,61 @@ function folderIsVisible(folders, folderId, collapsedFolderIds) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function renderFoldersRecursive_(props, renderItem, items, parentId, depth) {
|
||||
function renderFoldersRecursive_(props, renderItem, items, parentId, depth, order) {
|
||||
const folders = props.folders;
|
||||
for (let i = 0; i < folders.length; i++) {
|
||||
let folder = folders[i];
|
||||
if (!Folder.idsEqual(folder.parent_id, parentId)) continue;
|
||||
if (!folderIsVisible(props.folders, folder.id, props.collapsedFolderIds)) continue;
|
||||
const hasChildren = folderHasChildren_(folders, folder.id);
|
||||
order.push(folder.id);
|
||||
items.push(renderItem(folder, props.selectedFolderId == folder.id && props.notesParentType == 'Folder', hasChildren, depth));
|
||||
if (hasChildren) items = renderFoldersRecursive_(props, renderItem, items, folder.id, depth + 1);
|
||||
if (hasChildren) {
|
||||
const result = renderFoldersRecursive_(props, renderItem, items, folder.id, depth + 1, order);
|
||||
items = result.items;
|
||||
order = result.order;
|
||||
}
|
||||
}
|
||||
return items;
|
||||
return {
|
||||
items: items,
|
||||
order: order,
|
||||
};
|
||||
}
|
||||
|
||||
shared.renderFolders = function(props, renderItem) {
|
||||
return renderFoldersRecursive_(props, renderItem, [], '', 0);
|
||||
return renderFoldersRecursive_(props, renderItem, [], '', 0, []);
|
||||
}
|
||||
|
||||
shared.renderTags = function(props, renderItem) {
|
||||
let tags = props.tags.slice();
|
||||
tags.sort((a, b) => { return a.title < b.title ? -1 : +1; });
|
||||
let tagItems = [];
|
||||
const order = [];
|
||||
for (let i = 0; i < tags.length; i++) {
|
||||
const tag = tags[i];
|
||||
order.push(tag.id);
|
||||
tagItems.push(renderItem(tag, props.selectedTagId == tag.id && props.notesParentType == 'Tag'));
|
||||
}
|
||||
return tagItems;
|
||||
return {
|
||||
items: tagItems,
|
||||
order: order,
|
||||
};
|
||||
}
|
||||
|
||||
shared.renderSearches = function(props, renderItem) {
|
||||
let searches = props.searches.slice();
|
||||
let searchItems = [];
|
||||
for (let i = 0; i < searches.length; i++) {
|
||||
const search = searches[i];
|
||||
searchItems.push(renderItem(search, props.selectedSearchId == search.id && props.notesParentType == 'Search'));
|
||||
}
|
||||
return searchItems;
|
||||
}
|
||||
// shared.renderSearches = function(props, renderItem) {
|
||||
// let searches = props.searches.slice();
|
||||
// let searchItems = [];
|
||||
// const order = [];
|
||||
// for (let i = 0; i < searches.length; i++) {
|
||||
// const search = searches[i];
|
||||
// order.push(search.id);
|
||||
// searchItems.push(renderItem(search, props.selectedSearchId == search.id && props.notesParentType == 'Search'));
|
||||
// }
|
||||
// return {
|
||||
// items: searchItems,
|
||||
// order: order,
|
||||
// };
|
||||
// }
|
||||
|
||||
shared.synchronize_press = async function(comp) {
|
||||
const Setting = require('lib/models/Setting.js');
|
||||
|
||||
Reference in New Issue
Block a user