Keymaps as a clean architecture [WIP]
This commit is contained in:
		
							parent
							
								
									a88324acd9
								
							
						
					
					
						commit
						efc48dc742
					
				
					 15 changed files with 620 additions and 88 deletions
				
			
		
							
								
								
									
										58
									
								
								src/content/usecases/ScrollUseCase.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/content/usecases/ScrollUseCase.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,58 @@ | |||
| import ScrollPresenter, { ScrollPresenterImpl } | ||||
|   from '../presenters/ScrollPresenter'; | ||||
| import SettingRepository, { SettingRepositoryImpl } | ||||
|   from '../repositories/SettingRepository'; | ||||
| 
 | ||||
| export default class ScrollUseCase { | ||||
|   private presenter: ScrollPresenter; | ||||
| 
 | ||||
|   private settingRepository: SettingRepository; | ||||
| 
 | ||||
|   constructor({ | ||||
|     presenter = new ScrollPresenterImpl(), | ||||
|     settingRepository = new SettingRepositoryImpl(), | ||||
|   } = {}) { | ||||
|     this.presenter = presenter; | ||||
|     this.settingRepository = settingRepository; | ||||
|   } | ||||
| 
 | ||||
|   scrollVertically(count: number): void { | ||||
|     let smooth = this.getSmoothScroll(); | ||||
|     this.presenter.scrollVertically(count, smooth); | ||||
|   } | ||||
| 
 | ||||
|   scrollHorizonally(count: number): void { | ||||
|     let smooth = this.getSmoothScroll(); | ||||
|     this.presenter.scrollHorizonally(count, smooth); | ||||
|   } | ||||
| 
 | ||||
|   scrollPages(count: number): void { | ||||
|     let smooth = this.getSmoothScroll(); | ||||
|     this.presenter.scrollPages(count, smooth); | ||||
|   } | ||||
| 
 | ||||
|   scrollToTop(): void { | ||||
|     let smooth = this.getSmoothScroll(); | ||||
|     this.presenter.scrollToTop(smooth); | ||||
|   } | ||||
| 
 | ||||
|   scrollToBottom(): void { | ||||
|     let smooth = this.getSmoothScroll(); | ||||
|     this.presenter.scrollToBottom(smooth); | ||||
|   } | ||||
| 
 | ||||
|   scrollToHome(): void { | ||||
|     let smooth = this.getSmoothScroll(); | ||||
|     this.presenter.scrollToHome(smooth); | ||||
|   } | ||||
| 
 | ||||
|   scrollToEnd(): void { | ||||
|     let smooth = this.getSmoothScroll(); | ||||
|     this.presenter.scrollToEnd(smooth); | ||||
|   } | ||||
| 
 | ||||
|   private getSmoothScroll(): boolean { | ||||
|     let settings = this.settingRepository.get(); | ||||
|     return settings.properties.smoothscroll; | ||||
|   } | ||||
| } | ||||
		Reference in a new issue