import { Component, OnInit } from '@angular/core'; import { Subject } from 'rxjs/Subject'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; import { Observable } from 'rxjs/Observable'; import { User } from '../../user/user.model'; import { AuthService } from '../../user/auth.service'; import { ActivatedRoute, Router } from '@angular/router'; import { GroupService } from '../../group/group.service'; import { GroupCreateInput } from '../../group/group.model'; @Component({ selector: 'civ-group-setup-page', template: ` `, styles: [] }) export class GroupSetupPageComponent implements OnInit { adminEmailQuery$: Subject = new BehaviorSubject(''); adminSearchResult$: Observable; error: string = ''; savePending: boolean = false; constructor(private authSvc: AuthService, private router: Router, private route: ActivatedRoute, private groupSvc: GroupService) { this.adminSearchResult$ = this.authSvc.getUserByEmail( this.adminEmailQuery$.skip(1).debounceTime(500) ); } ngOnInit() { } submit(input: GroupCreateInput) { this.savePending = true; this.groupSvc.createGroup(input).subscribe(result => { this.savePending = false; console.log(`RESULT`); console.log(result); if (result.success == true) { console.info('created successfully - navigating to admin pg'); this.router.navigate([ 'group', result.groupId, 'admin' ]); } else { this.error = result.error; } }, err => { this.error = err; }) } }