mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-30 20:41:33 +08:00 
			
		
		
		
	fix(leftpaneVisibility): Make leftpane visibility switch no longer depend on entitiesReloadedEvent
This commit is contained in:
		
							parent
							
								
									501fab2736
								
							
						
					
					
						commit
						025c6a4e0e
					
				| @ -283,6 +283,9 @@ export type CommandMappings = { | |||||||
| type EventMappings = { | type EventMappings = { | ||||||
|     initialRenderComplete: {}; |     initialRenderComplete: {}; | ||||||
|     frocaReloaded: {}; |     frocaReloaded: {}; | ||||||
|  |     setLeftPaneVisibility: { | ||||||
|  |         leftPaneVisible: boolean | null; | ||||||
|  |     } | ||||||
|     protectedSessionStarted: {}; |     protectedSessionStarted: {}; | ||||||
|     notesReloaded: { |     notesReloaded: { | ||||||
|         noteIds: string[]; |         noteIds: string[]; | ||||||
|  | |||||||
| @ -78,15 +78,15 @@ export default class RootCommandExecutor extends Component { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     hideLeftPaneCommand() { |     hideLeftPaneCommand() { | ||||||
|         options.save(`leftPaneVisible`, "false"); |         appContext.triggerEvent("setLeftPaneVisibility", { leftPaneVisible: false }); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     showLeftPaneCommand() { |     showLeftPaneCommand() { | ||||||
|         options.save(`leftPaneVisible`, "true"); |         appContext.triggerEvent("setLeftPaneVisibility", { leftPaneVisible: true }); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     toggleLeftPaneCommand() { |     toggleLeftPaneCommand() { | ||||||
|         options.toggle("leftPaneVisible"); |         appContext.triggerEvent("setLeftPaneVisibility", { leftPaneVisible: null }); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     async showBackendLogCommand() { |     async showBackendLogCommand() { | ||||||
|  | |||||||
| @ -35,13 +35,9 @@ export default class LeftPaneToggleWidget extends CommandButtonWidget { | |||||||
|         super.refreshIcon(); |         super.refreshIcon(); | ||||||
|         splitService.setupLeftPaneResizer(this.currentLeftPaneVisible); |         splitService.setupLeftPaneResizer(this.currentLeftPaneVisible); | ||||||
|     } |     } | ||||||
| 
 |      | ||||||
|     entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) { |     setLeftPaneVisibilityEvent({ leftPaneVisible }: EventData<"setLeftPaneVisibility">) { | ||||||
|         if (loadResults.isOptionReloaded("leftPaneVisible") && document.hasFocus()) { |         this.currentLeftPaneVisible = leftPaneVisible ?? !this.currentLeftPaneVisible; | ||||||
|             // options.is("leftPaneVisible") changed — it may or may not be the same as currentLeftPaneVisible, but as long as the window is focused, the left pane visibility should be toggled.
 |         this.refreshIcon(); | ||||||
|             // See PR description for detailed explanation of multi-window edge cases: https://github.com/TriliumNext/Notes/pull/1962
 |  | ||||||
|             this.currentLeftPaneVisible = !this.currentLeftPaneVisible;         |  | ||||||
|             this.refreshIcon(); |  | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -20,18 +20,17 @@ export default class LeftPaneContainer extends FlexContainer<Component> { | |||||||
|         return super.isEnabled() && this.currentLeftPaneVisible; |         return super.isEnabled() && this.currentLeftPaneVisible; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) { |     setLeftPaneVisibilityEvent({ leftPaneVisible }: EventData<"setLeftPaneVisibility">) { | ||||||
|         if (loadResults.isOptionReloaded("leftPaneVisible") && document.hasFocus()) { |         this.currentLeftPaneVisible = leftPaneVisible ?? !this.currentLeftPaneVisible; | ||||||
|             // options.is("leftPaneVisible") changed — it may or may not be the same as currentLeftPaneVisible, but as long as the window is focused, the left pane visibility should be toggled.
 |         const visible = this.isEnabled(); | ||||||
|             this.currentLeftPaneVisible = !this.currentLeftPaneVisible; |         this.toggleInt(visible); | ||||||
|             const visible = this.isEnabled(); |  | ||||||
|             this.toggleInt(visible); |  | ||||||
| 
 | 
 | ||||||
|             if (visible) { |         if (visible) { | ||||||
|                 this.triggerEvent("focusTree", {}); |             this.triggerEvent("focusTree", {}); | ||||||
|             } else { |         } else { | ||||||
|                 this.triggerEvent("focusOnDetail", { ntxId: appContext.tabManager.getActiveContext()?.ntxId }); |             this.triggerEvent("focusOnDetail", { ntxId: appContext.tabManager.getActiveContext()?.ntxId }); | ||||||
|             } |  | ||||||
|         } |         } | ||||||
|  | 
 | ||||||
|  |         options.save("leftPaneVisible", this.currentLeftPaneVisible.toString()); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 SiriusXT
						SiriusXT