let shared = {}; shared.renderFolders = function(props, renderItem) { let items = []; for (let i = 0; i < props.folders.length; i++) { let folder = props.folders[i]; items.push(renderItem(folder, props.selectedFolderId == folder.id && props.notesParentType == "Folder")); } return items; }; shared.renderTags = function(props, renderItem) { let tags = props.tags.slice(); tags.sort((a, b) => { return a.title < b.title ? -1 : +1; }); let tagItems = []; for (let i = 0; i < tags.length; i++) { const tag = tags[i]; tagItems.push(renderItem(tag, props.selectedTagId == tag.id && props.notesParentType == "Tag")); } return tagItems; }; 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.synchronize_press = async function(comp) { const Setting = require("lib/models/Setting.js"); const { reg } = require("lib/registry.js"); const action = comp.props.syncStarted ? "cancel" : "start"; if (!reg.syncTarget().isAuthenticated()) { if (reg.syncTarget().authRouteName()) { comp.props.dispatch({ type: "NAV_GO", routeName: reg.syncTarget().authRouteName(), }); return "auth"; } reg.logger().info("Not authentified with sync target - please check your credential."); return "error"; } let sync = null; try { sync = await reg.syncTarget().synchronizer(); } catch (error) { reg.logger().info("Could not acquire synchroniser:"); reg.logger().info(error); return "error"; } if (action == "cancel") { sync.cancel(); return "cancel"; } else { reg.scheduleSync(0); return "sync"; } }; module.exports = shared;