Hooked up the quotes to firestore

This commit is contained in:
Zakary Timson 2019-04-21 17:34:36 -04:00
parent 12c5b455dd
commit 2c7756c894
7 changed files with 33 additions and 11 deletions

View File

@ -1,7 +1,7 @@
<div class="w-100">
<div class="container d-flex align-items-center" style="height: 600px">
<div class="w-100 text-center">
<typewriter [text]="quote"></typewriter>
<typewriter [text]="quote | async"></typewriter>
</div>
</div>
<div class="container mb-md-5 p-0 bg-white">

View File

@ -1,17 +1,19 @@
import { Component } from '@angular/core';
import {AppStore} from './app.store';
import {Observable} from 'rxjs';
import {map} from 'rxjs/operators';
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent {
quote: string;
quotes = [
'Why do Kamikaze pilots wear helmets?',
'Remember that you\'re unique... Just like everyone else'
];
quote: Observable<string>;
constructor() {
this.quote = this.quotes[Math.floor(Math.random() * this.quotes.length)]
constructor(private store: AppStore) {
this.quote = store.quotes.pipe(map(quotes => {
let quote = quotes[Math.floor(Math.random() * quotes.length)];
return quote.text;
}))
}
}

View File

@ -1,7 +1,7 @@
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {AngularFireModule} from '@angular/fire';
import {AngularFirestoreModule} from '@angular/fire/firestore';
import {AngularFirestoreModule, FirestoreSettingsToken} from '@angular/fire/firestore';
import {AppComponent} from './app.component';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
@ -25,7 +25,9 @@ import {environment} from '../environments/environment';
FormsModule,
MaterialModule
],
providers: [],
providers: [
{ provide: FirestoreSettingsToken, useValue: {} }
],
bootstrap: [AppComponent]
})
export class AppModule { }

15
src/app/app.store.ts Normal file
View File

@ -0,0 +1,15 @@
import {Injectable} from '@angular/core';
import {Observable} from 'rxjs';
import {AngularFirestore} from '@angular/fire/firestore';
import {Quote} from './models/quote';
@Injectable({
providedIn: 'root'
})
export class AppStore {
quotes: Observable<Quote[]>;
constructor(private firestore: AngularFirestore) {
this.quotes = this.firestore.collection<Quote>('quotes').valueChanges();
}
}

View File

@ -1,5 +1,5 @@
import {Component, Input} from '@angular/core';
import {Slide} from './slide';
import {Slide} from '../../models/slide';
@Component({
selector: 'slideshow',

3
src/app/models/quote.ts Normal file
View File

@ -0,0 +1,3 @@
export interface Quote {
text: string;
}