diff --git a/src/pages/messages/messages.ts b/src/pages/messages/messages.ts index c66bbaf74..bf818e4f9 100644 --- a/src/pages/messages/messages.ts +++ b/src/pages/messages/messages.ts @@ -1,8 +1,9 @@ import { Component, OnInit } from '@angular/core'; import { NavParams } from 'ionic-angular'; -import { Chat, Message } from 'api/models'; +import { Chat, Message, MessageType } from 'api/models'; import { Observable } from 'rxjs'; import { Messages } from 'api/collections'; +import { MeteorObservable } from 'meteor-rxjs'; @Component({ selector: 'messages-page', @@ -13,6 +14,7 @@ export class MessagesPage implements OnInit { title: string; picture: string; messages: Observable; + message: string = ''; constructor(navParams: NavParams) { this.selectedChat = navParams.get('chat'); @@ -35,4 +37,25 @@ export class MessagesPage implements OnInit { return messages; }); } + + onInputKeypress({ keyCode }: KeyboardEvent): void { + if (keyCode === 13) { + this.sendTextMessage(); + } + } + + sendTextMessage(): void { + // If message was yet to be typed, abort + if (!this.message) { + return; + } + + MeteorObservable.call('addMessage', MessageType.TEXT, + this.selectedChat._id, + this.message + ).zone().subscribe(() => { + // Zero the input field + this.message = ''; + }); + } }