Skip to content

Commit 76854c5

Browse files
committed
fix: router guard potential mem leak
1 parent e30b0dc commit 76854c5

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

src/app/core/auth.guard.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
import { Injectable } from '@angular/core';
22
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';
33
import { Observable } from 'rxjs/Observable';
4-
import { AuthService } from './auth.service';
4+
import { AngularFireAuth } from 'angularfire2/auth';
55
import 'rxjs/add/operator/do';
66
import 'rxjs/add/operator/map';
77
import 'rxjs/add/operator/take';
88

99
@Injectable()
1010
export class AuthGuard implements CanActivate {
11-
constructor(private auth: AuthService, private router: Router) {}
11+
constructor(private afAuth: AngularFireAuth, private router: Router) {}
1212

1313

1414
canActivate(
1515
next: ActivatedRouteSnapshot,
1616
state: RouterStateSnapshot): Observable<boolean> | boolean {
17-
if (this.auth.authenticated) { return true; }
1817

19-
return this.auth.currentUserObservable
18+
return this.afAuth.authState
2019
.take(1)
2120
.map(user => !!user)
2221
.do(loggedIn => {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<button (click)="sendEmail('[email protected]', 'helloworld')">Send Test Email</button>

src/app/send-email/send-email.component.scss

Whitespace-only changes.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { Component } from '@angular/core';
2+
import { Http, Headers, Response, URLSearchParams } from '@angular/http';
3+
import 'rxjs/add/operator/toPromise';
4+
5+
@Component({
6+
selector: 'send-email',
7+
templateUrl: './send-email.component.html',
8+
styleUrls: ['./send-email.component.scss']
9+
})
10+
export class SendEmailComponent {
11+
12+
constructor(private http: Http) { }
13+
14+
sendEmail(emailAddress, content) {
15+
16+
let url = ` https://us-central1-firestarter-96e46.cloudfunctions.net/httpEmail`
17+
let params: URLSearchParams = new URLSearchParams();
18+
let headers = new Headers({'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
19+
20+
params.set('to', '[email protected]');
21+
params.set('from', '[email protected]');
22+
params.set('subject', 'test-email');
23+
params.set('content', 'Hello World');
24+
25+
return this.http.post(url, params, headers)
26+
.toPromise()
27+
.then( res => {
28+
console.log(res)
29+
})
30+
.catch(err => {
31+
console.log(err)
32+
})
33+
34+
}
35+
36+
}

0 commit comments

Comments
 (0)