From 4314cefc01c3b2c63a8ba39f0ab4b29e5c22ab92 Mon Sep 17 00:00:00 2001 From: dotansimha Date: Tue, 24 Jan 2017 16:07:25 +0200 Subject: [PATCH] Step 7.11: Add login component --- src/pages/login/login.ts | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/pages/login/login.ts diff --git a/src/pages/login/login.ts b/src/pages/login/login.ts new file mode 100644 index 000000000..a261072b8 --- /dev/null +++ b/src/pages/login/login.ts @@ -0,0 +1,66 @@ +import { Component } from '@angular/core'; +import { Alert, AlertController, NavController } from 'ionic-angular'; +import { PhoneService } from '../../services/phone'; + +@Component({ + selector: 'login', + templateUrl: 'login.html' +}) +export class LoginPage { + private phone = ''; + + constructor( + private alertCtrl: AlertController, + private phoneService: PhoneService, + private navCtrl: NavController + ) {} + + onInputKeypress({keyCode}: KeyboardEvent): void { + if (keyCode === 13) { + this.login(); + } + } + + login(phone: string = this.phone): void { + const alert = this.alertCtrl.create({ + title: 'Confirm', + message: `Would you like to proceed with the phone number ${phone}?`, + buttons: [ + { + text: 'Cancel', + role: 'cancel' + }, + { + text: 'Yes', + handler: () => { + this.handleLogin(alert); + return false; + } + } + ] + }); + + alert.present(); + } + + handleLogin(alert: Alert): void { + alert.dismiss().then(() => { + return this.phoneService.verify(this.phone); + }) + .catch((e) => { + this.handleError(e); + }); + } + + handleError(e: Error): void { + console.error(e); + + const alert = this.alertCtrl.create({ + title: 'Oops!', + message: e.message, + buttons: ['OK'] + }); + + alert.present(); + } +}