You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	Desktop: Fixes #10668: Tags and Delete note not being available on Search and on All Notes list (#10729)
This commit is contained in:
		| @@ -1050,6 +1050,7 @@ packages/lib/services/commands/commandsToMarkdownTable.js | ||||
| packages/lib/services/commands/focusEditorIfEditorCommand.js | ||||
| packages/lib/services/commands/isEditorCommand.js | ||||
| packages/lib/services/commands/propsHaveChanged.js | ||||
| packages/lib/services/commands/stateToWhenClauseContext.test.js | ||||
| packages/lib/services/commands/stateToWhenClauseContext.js | ||||
| packages/lib/services/contextkey/contextkey.js | ||||
| packages/lib/services/database/addMigrationFile.js | ||||
|   | ||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1028,6 +1028,7 @@ packages/lib/services/commands/commandsToMarkdownTable.js | ||||
| packages/lib/services/commands/focusEditorIfEditorCommand.js | ||||
| packages/lib/services/commands/isEditorCommand.js | ||||
| packages/lib/services/commands/propsHaveChanged.js | ||||
| packages/lib/services/commands/stateToWhenClauseContext.test.js | ||||
| packages/lib/services/commands/stateToWhenClauseContext.js | ||||
| packages/lib/services/contextkey/contextkey.js | ||||
| packages/lib/services/database/addMigrationFile.js | ||||
|   | ||||
| @@ -0,0 +1,74 @@ | ||||
| import { State } from '../../reducer'; | ||||
| import { getTrashFolderId } from '../trash'; | ||||
| import stateToWhenClauseContext from './stateToWhenClauseContext'; | ||||
|  | ||||
|  | ||||
| describe('stateToWhenClauseContext', () => { | ||||
|  | ||||
| 	it('should be in trash if selected note has been deleted and selected folder is trash', async () => { | ||||
| 		const applicationState = { | ||||
| 			selectedNoteIds: ['1'], | ||||
| 			selectedFolderId: getTrashFolderId(), | ||||
| 			notes: [ | ||||
| 				{ id: '1', deleted_time: 1722567036580 }, | ||||
| 			], | ||||
| 			folders: [], | ||||
| 		} as State; | ||||
| 		const resultingState = stateToWhenClauseContext(applicationState); | ||||
|  | ||||
| 		expect(resultingState.inTrash).toBe(true); | ||||
| 	}); | ||||
|  | ||||
| 	it('should NOT be in trash if selected note has not been deleted', async () => { | ||||
| 		const applicationState = { | ||||
| 			selectedNoteIds: ['1'], | ||||
| 			selectedFolderId: getTrashFolderId(), | ||||
| 			notes: [ | ||||
| 				{ id: '1', deleted_time: 0 }, | ||||
| 			], | ||||
| 			folders: [], | ||||
| 		} as State; | ||||
| 		const resultingState = stateToWhenClauseContext(applicationState); | ||||
|  | ||||
| 		expect(resultingState.inTrash).toBe(false); | ||||
| 	}); | ||||
|  | ||||
| 	it('should NOT be in trash if selected folder is not trash', async () => { | ||||
| 		const applicationState = { | ||||
| 			selectedNoteIds: ['1'], | ||||
| 			selectedFolderId: 'any-other-folder', | ||||
| 			notes: [ | ||||
| 				{ id: '1', deleted_time: 1722567036580 }, | ||||
| 			], | ||||
| 			folders: [], | ||||
| 		} as State; | ||||
| 		const resultingState = stateToWhenClauseContext(applicationState); | ||||
|  | ||||
| 		expect(resultingState.inTrash).toBe(false); | ||||
| 	}); | ||||
|  | ||||
| 	it('should be in trash if command folder is deleted', async () => { | ||||
| 		const applicationState = { | ||||
| 			notes: [], | ||||
| 			folders: [ | ||||
| 				{ id: '1', deleted_time: 1722567036580, share_id: '', parent_id: '' }, | ||||
| 			], | ||||
| 		} as State; | ||||
| 		const resultingState = stateToWhenClauseContext(applicationState, { commandFolderId: '1' }); | ||||
|  | ||||
| 		expect(resultingState.inTrash).toBe(true); | ||||
| 	}); | ||||
|  | ||||
| 	it('should NOT be in trash if command folder is not deleted', async () => { | ||||
| 		const applicationState = { | ||||
| 			notes: [], | ||||
| 			folders: [ | ||||
| 				{ id: '1', deleted_time: 0, share_id: '', parent_id: '' }, | ||||
| 			], | ||||
| 		} as State; | ||||
| 		const resultingState = stateToWhenClauseContext(applicationState, { commandFolderId: '1' }); | ||||
|  | ||||
| 		expect(resultingState.inTrash).toBe(false); | ||||
| 	}); | ||||
|  | ||||
| }); | ||||
| @@ -68,7 +68,7 @@ export default function stateToWhenClauseContext(state: State, options: WhenClau | ||||
|  | ||||
| 		// Current location | ||||
| 		inConflictFolder: state.selectedFolderId === Folder.conflictFolderId(), | ||||
| 		inTrash: state.selectedFolderId === getTrashFolderId() || commandFolder && !!commandFolder.deleted_time, | ||||
| 		inTrash: !!((state.selectedFolderId === getTrashFolderId() && !!selectedNote?.deleted_time) || commandFolder && !!commandFolder.deleted_time), | ||||
|  | ||||
| 		// Note selection | ||||
| 		oneNoteSelected: !!selectedNote, | ||||
| @@ -101,7 +101,7 @@ export default function stateToWhenClauseContext(state: State, options: WhenClau | ||||
| 		folderIsShared: commandFolder ? !!commandFolder.share_id : false, | ||||
| 		folderIsDeleted: commandFolder ? !!commandFolder.deleted_time : false, | ||||
| 		folderIsTrash: commandFolder ? commandFolder.id === getTrashFolderId() : false, | ||||
| 		folderIsReadOnly: commandFolder ? itemIsReadOnlySync(ModelType.Note, ItemChange.SOURCE_UNSPECIFIED, commandFolder as ItemSlice, settings['sync.userId'], state.shareService) : false, | ||||
| 		folderIsReadOnly: commandFolder ? itemIsReadOnlySync(ModelType.Folder, ItemChange.SOURCE_UNSPECIFIED, commandFolder as ItemSlice, settings['sync.userId'], state.shareService) : false, | ||||
|  | ||||
| 		joplinServerConnected: [9, 10].includes(settings['sync.target']), | ||||
| 		joplinCloudAccountType: settings['sync.target'] === 10 ? settings['sync.10.accountType'] : 0, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user