diff --git a/src/app/app.component.ts b/src/app/app.component.ts index b5f1a7d..d214158 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,31 +1,37 @@ -import {Component, OnInit} from '@angular/core'; -import {Router, NavigationEnd} from '@angular/router'; -import {ElectronService} from 'ngx-electron'; -import {filter} from 'rxjs/operators'; -import {MatDialog} from '@angular/material'; -import {LoginComponent} from './login/login.component'; -import {LocalStorage} from 'webstorage-decorators'; -import {AppStore} from './app.store'; -import {AngularFireAuth} from '../../node_modules/angularfire2/auth'; +import { Component, OnInit } from '@angular/core'; +import { Router, NavigationEnd } from '@angular/router'; +import { ElectronService } from 'ngx-electron'; +import { filter } from 'rxjs/operators'; +import { MatDialog } from '@angular/material'; +import { LoginComponent } from './login/login.component'; +import { LocalStorage } from 'webstorage-decorators'; +import { AppStore } from './app.store'; +import { AngularFireAuth } from '../../node_modules/angularfire2/auth'; +import { SwUpdate } from '../../node_modules/@angular/service-worker'; @Component({ selector: 'app-root', templateUrl: 'app.component.html' }) export class AppComponent implements OnInit { - @LocalStorage({defaultValue: [], encryptionKey: 'HmRoBFUEVWqW5uvy'}) - cart: {id: string; item: string; price: number; currency: 'CAD' | 'USD'; quantity: number}[]; + @LocalStorage({ defaultValue: [], encryptionKey: 'HmRoBFUEVWqW5uvy' }) + cart: { id: string; item: string; price: number; currency: 'CAD' | 'USD'; quantity: number }[]; constructor( private router: Router, private dialog: MatDialog, + private updates: SwUpdate, public electron: ElectronService, public store: AppStore, public afAuth: AngularFireAuth - ) {} + ) { + updates.available.subscribe(event => { + if (event.current != event.available) updates.activateUpdate().then(() => document.location.reload()); + }); + } cartAdd(id: string, item: string, price: number, currency: 'CAD' | 'USD', quantity: number) { - this.cart = [{id: id, item: item, price: Number(price), currency: currency, quantity: Number(quantity)}].concat( + this.cart = [{ id: id, item: item, price: Number(price), currency: currency, quantity: Number(quantity) }].concat( this.cart ); } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 8f44e9d..bfa1031 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,35 +1,35 @@ -import {BrowserModule} from '@angular/platform-browser'; -import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; -import {RouterModule} from '@angular/router'; -import {AngularFireModule} from 'angularfire2'; -import {AngularFirestoreModule, AngularFirestore} from 'angularfire2/firestore'; -import {NgModule} from '@angular/core'; -import {FormsModule, ReactiveFormsModule} from '@angular/forms'; -import {AppComponent} from './app.component'; -import {environment} from '../environments/environment'; -import {ConvertFromGPipe, ConvertToGPipe} from './formulaManager/units.pipe'; -import {ScalePipe} from './formulaManager/scale.pipe'; -import {AngularMaterialModule} from './material.module'; -import {HomeComponent} from './home/home.component'; -import {ServiceWorkerModule} from '@angular/service-worker'; -import {FormulaManagerComponent} from './formulaManager/formulaManager.component'; -import {NgxElectronModule} from 'ngx-electron'; -import {AboutComponent} from './about/about.component'; -import {CategoriesComponent} from './store/categories.component'; -import {AngularFireStorageModule} from 'angularfire2/storage'; -import {LoginComponent} from './login/login.component'; -import {AngularFireAuthModule} from 'angularfire2/auth'; -import {NewCategoryComponent} from './store/newCategory/newCategory.component'; -import {NewProductComponent} from './store/newProduct/newProduct.component'; -import {DeleteComponent} from './delete/delete.component'; -import {ProductsComponent} from './store/products/products.component'; -import {CartComponent} from './store/cart/cart.component'; -import {ViewComponents} from './formulaManager/viewComponents/viewComponents.component'; -import {NewComponentComponent} from './formulaManager/newComponent/newComponent.component'; -import {HttpModule} from '@angular/http'; -import {NewFormulaComponent} from './formulaManager/newFormula/newFormula.component'; -import {AppStore} from './app.store'; -import {SlideshowModule} from 'ng-simple-slideshow'; +import { BrowserModule } from '@angular/platform-browser'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { RouterModule } from '@angular/router'; +import { AngularFireModule } from 'angularfire2'; +import { AngularFirestoreModule, AngularFirestore } from 'angularfire2/firestore'; +import { NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { AppComponent } from './app.component'; +import { environment } from '../environments/environment'; +import { ConvertFromGPipe, ConvertToGPipe } from './formulaManager/units.pipe'; +import { ScalePipe } from './formulaManager/scale.pipe'; +import { AngularMaterialModule } from './material.module'; +import { HomeComponent } from './home/home.component'; +import { ServiceWorkerModule } from '@angular/service-worker'; +import { FormulaManagerComponent } from './formulaManager/formulaManager.component'; +import { NgxElectronModule } from 'ngx-electron'; +import { AboutComponent } from './about/about.component'; +import { CategoriesComponent } from './store/categories.component'; +import { AngularFireStorageModule } from 'angularfire2/storage'; +import { LoginComponent } from './login/login.component'; +import { AngularFireAuthModule } from 'angularfire2/auth'; +import { NewCategoryComponent } from './store/newCategory/newCategory.component'; +import { NewProductComponent } from './store/newProduct/newProduct.component'; +import { DeleteComponent } from './delete/delete.component'; +import { ProductsComponent } from './store/products/products.component'; +import { CartComponent } from './store/cart/cart.component'; +import { ViewComponents } from './formulaManager/viewComponents/viewComponents.component'; +import { NewComponentComponent } from './formulaManager/newComponent/newComponent.component'; +import { HttpModule } from '@angular/http'; +import { NewFormulaComponent } from './formulaManager/newFormula/newFormula.component'; +import { AppStore } from './app.store'; +import { SlideshowModule } from 'ng-simple-slideshow'; @NgModule({ declarations: [ @@ -64,15 +64,15 @@ import {SlideshowModule} from 'ng-simple-slideshow'; NgxElectronModule, ReactiveFormsModule, RouterModule.forRoot([ - {path: 'about', component: AboutComponent}, - {path: 'cart', component: CartComponent}, - {path: 'formulaManager', component: FormulaManagerComponent}, - {path: 'products/:product', component: ProductsComponent}, - {path: 'store/:category', component: CategoriesComponent}, - {path: 'store', component: CategoriesComponent}, - {path: '**', component: HomeComponent} + { path: 'about', component: AboutComponent }, + { path: 'cart', component: CartComponent }, + { path: 'formulaManager', component: FormulaManagerComponent }, + { path: 'products/:product', component: ProductsComponent }, + { path: 'store/:category', component: CategoriesComponent }, + { path: 'store', component: CategoriesComponent }, + { path: '**', component: HomeComponent } ]), - ServiceWorkerModule.register('/ngsw-worker.js', {enabled: false}), + ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production }), SlideshowModule ], providers: [AppStore],