changeset 284:f0c9c9d860e7

Introduce app level, injectable, observable for dimension changes.
author Lucas Thompson <dev@lucas.im>
date Thu, 04 May 2017 16:57:57 +0100
parents a2ba82a51115
children 2d7da410ba46
files src/app/app.module.ts
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/app/app.module.ts	Thu May 04 15:33:20 2017 +0100
+++ b/src/app/app.module.ts	Thu May 04 16:57:57 2017 +0100
@@ -28,6 +28,7 @@
 import {AnalysisItemComponent} from './analysis-item/analysis-item.component';
 import {ProgressBarComponent} from './progress-bar/progress-bar';
 import {UglyMaterialModule} from './ugly-material.module';
+import {Observable} from 'rxjs/Observable';
 
 export function createAudioContext(): AudioContext {
   return new (
@@ -92,6 +93,16 @@
   };
 }
 
+export interface Dimension {
+  width: number;
+  height: number;
+}
+export function createWindowDimensionObservable(): Observable<Dimension> {
+  return Observable.fromEvent(window, 'resize', () => ({
+    height: window.innerHeight,
+    width: window.innerWidth
+  })).share();
+}
 @NgModule({
   declarations: [
     AppComponent,
@@ -121,7 +132,8 @@
     {provide: 'MediaRecorderFactory', useFactory: createMediaRecorderFactory},
     {provide: 'PiperRepoUri', useValue: 'assets/remote-extractors.json'},
     {provide: 'UrlResourceLifetimeManager', useFactory: createUrlResourceManager},
-    {provide: 'ResourceReader', useFactory: createResourceReader}
+    {provide: 'ResourceReader', useFactory: createResourceReader},
+    {provide: 'DimensionObservable', useFactory: createWindowDimensionObservable}
   ],
   bootstrap: [AppComponent]
 })