From 5d0b0e3df2768bbb51d8e3e8eeb18936e7b7fb11 Mon Sep 17 00:00:00 2001 From: Kenichi Kobayashi Date: Mon, 20 Sep 2021 17:48:54 +0900 Subject: [PATCH] dependency to 'app' is removed from perFolderSortOrder.ts --- .../MainScreen/commands/perFolderSortOrder.ts | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/packages/app-desktop/gui/MainScreen/commands/perFolderSortOrder.ts b/packages/app-desktop/gui/MainScreen/commands/perFolderSortOrder.ts index c1a10980894..9b3602d3b77 100644 --- a/packages/app-desktop/gui/MainScreen/commands/perFolderSortOrder.ts +++ b/packages/app-desktop/gui/MainScreen/commands/perFolderSortOrder.ts @@ -1,12 +1,11 @@ import CommandService, { CommandContext, CommandDeclaration, CommandRuntime } from '@joplin/lib/services/CommandService'; import Setting from '@joplin/lib/models/Setting'; -import { State } from '@joplin/lib/reducer'; -import app from '../../../app'; import eventManager from '@joplin/lib/eventManager'; import { notesSortOrderFieldArray } from './notesSortOrderSwitch'; import { _ } from '@joplin/lib/locale'; let previousFolderId: string = null; +const folderState = { notesParentType: '', selectedFolderId: '' }; let ownSortOrders: { [key: string]: any } = null; const sharedSortOrder: { [key: string]: any } = { field: 'user_updated_time', @@ -17,10 +16,6 @@ const sharedSortOrder: { [key: string]: any } = { order: false, }; -export function selectedFolderHasOwnSortOrder() { - return hasOwnSortOrder(getSelectedFolderId()); -} - export function hasOwnSortOrder(folderId: string) { return folderId && ownSortOrders && ownSortOrders.hasOwnProperty(folderId + SUFFIX_FIELD); } @@ -33,8 +28,8 @@ export const declaration: CommandDeclaration = { export const runtime = (): CommandRuntime => { loadOwnSortOrders(); loadSharedSortOrder(); - eventManager.appStateOn('notesParentType', onFolderSelectionMayChange); - eventManager.appStateOn('selectedFolderId', onFolderSelectionMayChange); + eventManager.appStateOn('notesParentType', onFolderSelectionMayChange.bind(null, 'notesParentType')); + eventManager.appStateOn('selectedFolderId', onFolderSelectionMayChange.bind(null, 'selectedFolderId')); return { enabledCondition: 'oneFolderSelected', @@ -75,8 +70,10 @@ export const runtime = (): CommandRuntime => { }; }; -function onFolderSelectionMayChange() { - const selectedId = getSelectedFolderId(); +function onFolderSelectionMayChange(cause: string, event: any) { + if (cause !== 'notesParentType' && cause !== 'selectedFolderId') return; + folderState[cause] = event.value; + const selectedId = getSelectedFolderId(folderState); if (previousFolderId === null) previousFolderId = selectedId; if (previousFolderId === selectedId) return; const field = Setting.value('notes.sortOrder.field'); @@ -106,10 +103,9 @@ function onFolderSelectionMayChange() { const SUFFIX_FIELD = '$field'; const SUFFIX_REVERSE = '$reverse'; -function getSelectedFolderId(state?: State): string { - const s = state ? state : app().store().getState(); - if (s.notesParentType === 'Folder') { - return s.selectedFolderId; +function getSelectedFolderId(state: { notesParentType: string; selectedFolderId: string }): string { + if (state.notesParentType === 'Folder') { + return state.selectedFolderId; } else { return ''; }