You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-07-13 00:10:37 +02:00
Desktop: Make "toggle all folders" button also expand the folder list (#11917)
This commit is contained in:
@ -1026,6 +1026,7 @@ packages/lib/commands/renderMarkup.test.js
|
|||||||
packages/lib/commands/renderMarkup.js
|
packages/lib/commands/renderMarkup.js
|
||||||
packages/lib/commands/showEditorPlugin.js
|
packages/lib/commands/showEditorPlugin.js
|
||||||
packages/lib/commands/synchronize.js
|
packages/lib/commands/synchronize.js
|
||||||
|
packages/lib/commands/toggleAllFolders.test.js
|
||||||
packages/lib/commands/toggleAllFolders.js
|
packages/lib/commands/toggleAllFolders.js
|
||||||
packages/lib/commands/toggleEditorPlugin.js
|
packages/lib/commands/toggleEditorPlugin.js
|
||||||
packages/lib/components/EncryptionConfigScreen/utils.test.js
|
packages/lib/components/EncryptionConfigScreen/utils.test.js
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1001,6 +1001,7 @@ packages/lib/commands/renderMarkup.test.js
|
|||||||
packages/lib/commands/renderMarkup.js
|
packages/lib/commands/renderMarkup.js
|
||||||
packages/lib/commands/showEditorPlugin.js
|
packages/lib/commands/showEditorPlugin.js
|
||||||
packages/lib/commands/synchronize.js
|
packages/lib/commands/synchronize.js
|
||||||
|
packages/lib/commands/toggleAllFolders.test.js
|
||||||
packages/lib/commands/toggleAllFolders.js
|
packages/lib/commands/toggleAllFolders.js
|
||||||
packages/lib/commands/toggleEditorPlugin.js
|
packages/lib/commands/toggleEditorPlugin.js
|
||||||
packages/lib/components/EncryptionConfigScreen/utils.test.js
|
packages/lib/components/EncryptionConfigScreen/utils.test.js
|
||||||
|
36
packages/lib/commands/toggleAllFolders.test.ts
Normal file
36
packages/lib/commands/toggleAllFolders.test.ts
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import { setupDatabase, switchClient } from '../testing/test-utils';
|
||||||
|
import { runtime } from './toggleAllFolders';
|
||||||
|
import Setting from '../models/Setting';
|
||||||
|
import { CommandContext } from '../services/CommandService';
|
||||||
|
import { defaultState } from '../reducer';
|
||||||
|
|
||||||
|
const command = runtime();
|
||||||
|
|
||||||
|
const makeContext = (): CommandContext => {
|
||||||
|
return {
|
||||||
|
state: defaultState,
|
||||||
|
dispatch: ()=>{},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
describe('toggleAllFolders', () => {
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await setupDatabase(0);
|
||||||
|
await switchClient(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('expanding all should expand the folders header, if previously collapsed', async () => {
|
||||||
|
Setting.setValue('folderHeaderIsExpanded', false);
|
||||||
|
|
||||||
|
// Collapsing all should leave the folder header as-is
|
||||||
|
const context = makeContext();
|
||||||
|
await command.execute(context, true);
|
||||||
|
expect(Setting.value('folderHeaderIsExpanded')).toBe(false);
|
||||||
|
|
||||||
|
// Expanding all should also expand the folder header
|
||||||
|
await command.execute(context, false);
|
||||||
|
expect(Setting.value('folderHeaderIsExpanded')).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
@ -1,6 +1,7 @@
|
|||||||
import { CommandRuntime, CommandDeclaration, CommandContext } from '../services/CommandService';
|
import { CommandRuntime, CommandDeclaration, CommandContext } from '../services/CommandService';
|
||||||
import { _ } from '../locale';
|
import { _ } from '../locale';
|
||||||
import getCanBeCollapsedFolderIds from '../models/utils/getCanBeCollapsedFolderIds';
|
import getCanBeCollapsedFolderIds from '../models/utils/getCanBeCollapsedFolderIds';
|
||||||
|
import Setting from '../models/Setting';
|
||||||
|
|
||||||
export const declaration: CommandDeclaration = {
|
export const declaration: CommandDeclaration = {
|
||||||
name: 'toggleAllFolders',
|
name: 'toggleAllFolders',
|
||||||
@ -10,6 +11,10 @@ export const declaration: CommandDeclaration = {
|
|||||||
export const runtime = (): CommandRuntime => {
|
export const runtime = (): CommandRuntime => {
|
||||||
return {
|
return {
|
||||||
execute: async (context: CommandContext, collapseAll: boolean) => {
|
execute: async (context: CommandContext, collapseAll: boolean) => {
|
||||||
|
if (!collapseAll && !Setting.value('folderHeaderIsExpanded')) {
|
||||||
|
Setting.setValue('folderHeaderIsExpanded', true);
|
||||||
|
}
|
||||||
|
|
||||||
context.dispatch({
|
context.dispatch({
|
||||||
type: 'FOLDER_SET_COLLAPSED',
|
type: 'FOLDER_SET_COLLAPSED',
|
||||||
ids: collapseAll ? getCanBeCollapsedFolderIds(context.state.folders) : [],
|
ids: collapseAll ? getCanBeCollapsedFolderIds(context.state.folders) : [],
|
||||||
|
Reference in New Issue
Block a user