From e4f8c02b64987c9ee5a4aa3554f2e03db1cce703 Mon Sep 17 00:00:00 2001 From: dotansimha Date: Tue, 24 Jan 2017 21:59:35 +0200 Subject: [PATCH] Step 11.19: Implement send location message --- client/imports/pages/messages/messages.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/client/imports/pages/messages/messages.ts b/client/imports/pages/messages/messages.ts index 51efea2..9238aa4 100644 --- a/client/imports/pages/messages/messages.ts +++ b/client/imports/pages/messages/messages.ts @@ -5,7 +5,7 @@ import { _ } from 'meteor/underscore'; import * as Moment from 'moment'; import { Observable, Subscription, Subscriber } from 'rxjs'; import { Messages } from '../../../../imports/collections'; -import { Chat, Message, MessageType } from '../../../../imports/models'; +import { Chat, Message, MessageType, Location } from '../../../../imports/models'; import { MessagesAttachmentsComponent } from './messages-attachments'; import { MessagesOptionsComponent } from './messages-options'; import template from './messages.html'; @@ -213,6 +213,16 @@ export class MessagesPage implements OnInit, OnDestroy { }); } + sendLocationMessage(location: Location): void { + MeteorObservable.call('addMessage', MessageType.LOCATION, + this.selectedChat._id, + `${location.lat},${location.lng},${location.zoom}` + ).zone().subscribe(() => { + // Zero the input field + this.message = ''; + }); + } + showAttachments(): void { const popover = this.popoverCtrl.create(MessagesAttachmentsComponent, { chat: this.selectedChat @@ -221,7 +231,12 @@ export class MessagesPage implements OnInit, OnDestroy { }); popover.onDidDismiss((params) => { - // TODO: Handle result + if (params) { + if (params.messageType === MessageType.LOCATION) { + const location = params.selectedLocation; + this.sendLocationMessage(location); + } + } }); popover.present();