From d74ca064d2c604066e0639f624b860f3bdc1a7eb Mon Sep 17 00:00:00 2001 From: Darren Nelsen Date: Fri, 23 Mar 2018 15:56:01 -0400 Subject: [PATCH] Added toast to display feedback from transaction submission --- app/src/pages/broadcast-tx/broadcast-tx.ts | 50 ++++++++++------------ 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/app/src/pages/broadcast-tx/broadcast-tx.ts b/app/src/pages/broadcast-tx/broadcast-tx.ts index 984863f..14f0811 100644 --- a/app/src/pages/broadcast-tx/broadcast-tx.ts +++ b/app/src/pages/broadcast-tx/broadcast-tx.ts @@ -1,15 +1,10 @@ import { Component } from '@angular/core'; -import { IonicPage, NavController, NavParams } from 'ionic-angular'; +import { IonicPage } from 'ionic-angular'; +import { ToastController } from 'ionic-angular'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Http } from '@angular/http'; import { ApiProvider } from '../../providers/api/api'; -/** - * Generated class for the BroadcastTxPage page. - * - * See http://ionicframework.com/docs/components/#navigation for more info - * on Ionic pages and navigation. - */ @IonicPage() @Component({ selector: 'page-broadcast-tx', @@ -18,46 +13,45 @@ import { ApiProvider } from '../../providers/api/api'; export class BroadcastTxPage { public title: string; - private nav: NavController; public transaction: string; public txForm: FormGroup; private status: string; - // private txid: any; - constructor(public navCtrl: NavController, public navParams: NavParams, public formBuilder: FormBuilder, private http: Http, private api: ApiProvider) { - this.nav = navCtrl; + constructor( + private toastCtrl: ToastController, + public formBuilder: FormBuilder, + private http: Http, + private api: ApiProvider, + ) { this.title = 'Broadcast Transaction'; this.txForm = formBuilder.group({ rawData: ['', Validators.pattern(/^[0-9A-Fa-f]+$/)] }); } - public ionViewDidLoad(): void { - console.log('ionViewDidLoad BroadcastTxPage'); - } - public send(): void { let postData: any = { rawtx: this.transaction }; this.status = 'loading'; - console.log('the postData is', postData); - this.http.post(this.api.apiPrefix + 'tx/send', postData) .subscribe( - response => console.log('response', response), + response => { + this.presentToast(response); + }, err => console.log('err', err) ); - /* - .error(function(data, status, headers, config) { - $scope.status = 'error'; - if(data) { - $scope.error = data; - } else { - $scope.error = "No error message given (connection error?)" - } - }); - */ + } + + private presentToast(response: any): void { + let body: any = JSON.parse(response._body); + let toast: any = this.toastCtrl.create({ + message: 'Transaction successfully broadcast. Trasaction id: ' + body.txid, + position: 'middle', + showCloseButton: true, + dismissOnPageChange: true + }); + toast.present(); } }