import { injectable, inject } from "tsyringe"; import ScrollPresenter from "../presenters/ScrollPresenter"; import SettingRepository from "../repositories/SettingRepository"; @injectable() export default class ScrollUseCase { constructor( @inject("ScrollPresenter") private presenter: ScrollPresenter, @inject("SettingRepository") private settingRepository: SettingRepository ) {} scrollVertically(count: number): void { const smooth = this.getSmoothScroll(); this.presenter.scrollVertically(count, smooth); } scrollHorizonally(count: number): void { const smooth = this.getSmoothScroll(); this.presenter.scrollHorizonally(count, smooth); } scrollPages(count: number): void { const smooth = this.getSmoothScroll(); this.presenter.scrollPages(count, smooth); } scrollToTop(): void { const smooth = this.getSmoothScroll(); this.presenter.scrollToTop(smooth); } scrollToBottom(): void { const smooth = this.getSmoothScroll(); this.presenter.scrollToBottom(smooth); } scrollToHome(): void { const smooth = this.getSmoothScroll(); this.presenter.scrollToHome(smooth); } scrollToEnd(): void { const smooth = this.getSmoothScroll(); this.presenter.scrollToEnd(smooth); } private getSmoothScroll(): boolean { const settings = this.settingRepository.get(); return settings.properties.smoothscroll; } }