aboutsummaryrefslogblamecommitdiff
path: root/src/background/usecases/VersionUseCase.ts
blob: 1d9ef8b151498b879480c56221a49a68f4af0064 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                      
                                                      
                                                            
 
             
                                     


                                             
   
                           
                                                 
                                                                   
                                                    
                                                    
                                                              
                                    
       
   
                                            
                  
                                                                             


                                                             
import { injectable } from 'tsyringe';
import TabPresenter from '../presenters/TabPresenter';
import NotifyPresenter from '../presenters/NotifyPresenter';

@injectable()
export default class VersionUseCase {
  constructor(
    private tabPresenter: TabPresenter,
    private notifyPresenter: NotifyPresenter,
  ) {
  }

  notify(): Promise<void> {
    let manifest = browser.runtime.getManifest();
    let title = `Vim Vixen ${manifest.version} has been installed`;
    let message = 'Click here to see release notes';
    let url = this.releaseNoteUrl(manifest.version);
    return this.notifyPresenter.notify(title, message, () => {
      this.tabPresenter.create(url);
    });
  }

  releaseNoteUrl(version?: string): string {
    if (version) {
      return `https://github.com/ueokande/vim-vixen/releases/tag/${version}`;
    }
    return 'https://github.com/ueokande/vim-vixen/releases/';
  }
}