Advertisement
Guest User

Untitled

a guest
Aug 1st, 2018
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Component, ViewChild } from '@angular/core';
  2. import { NavController, NavParams, Content } from 'ionic-angular';
  3. import * as firebase from 'Firebase';
  4. import { ChatPage } from '../chat/chat';
  5. import { AngularFireAuth } from 'angularfire2/auth';
  6. @Component({
  7.   selector: 'page-contact',
  8.   templateUrl: 'contact.html'
  9. })
  10. export class ContactPage {
  11.   @ViewChild(Content) content: Content;
  12.   data = { type:'', message:'' };
  13. chats = [];
  14. roomkey:string;
  15. nickname:string;
  16. offStatus:boolean = false;
  17. user = firebase.auth().currentUser;
  18. email = this.user.email;
  19. facebook = {
  20.   nome: "",
  21.   fotoUrl: ""
  22.   }
  23. sendMessage() {
  24.   if (this.email =="cesdrj@gmail.com"|| this.email=="cesdrj2@gmail.com"|| this.email=="thaisjimenes@gmail.com"){
  25.   let newData = firebase.database().ref('chatrooms/'+this.roomkey+'/chats').push();
  26.   newData.set({
  27.     type:this.data.type,
  28.     user:this.facebook.nome,
  29.     message:this.data.message,
  30.     photo:this.facebook.fotoUrl,
  31.     sendDate:Date()
  32.   });} else {
  33.     alert('Você não tem permissões para conversar aqui !')
  34.   }
  35. }
  36. exitChat() {
  37.   let exitData = firebase.database().ref('chatrooms/'+this.roomkey+'/chats').push();
  38.   exitData.set({
  39.     type:'exit',
  40.     sendDate:Date()
  41.   });
  42.  
  43.   this.offStatus = true;
  44.  
  45.   this.navCtrl.push(ChatPage, {
  46.   });
  47. }
  48.   constructor(public navCtrl: NavController, public navParams: NavParams, public fire: AngularFireAuth,) {
  49.     this.facebook.nome = fire.auth.currentUser.displayName;
  50.     this.facebook.fotoUrl = fire.auth.currentUser.photoURL;
  51.     this.roomkey = this.navParams.get("key") as string;
  52.     this.data.type = 'message';
  53.     let joinData = firebase.database().ref('chatrooms/'+this.roomkey+'/chats').push();
  54.     joinData.set({
  55.       type:'join',
  56.       sendDate:Date()
  57.     });
  58.     this.data.message = '';
  59.  
  60.     firebase.database().ref('chatrooms/'+this.roomkey+'/chats').on('value', resp => {
  61.       this.chats = [];
  62.       this.chats = snapshotToArray(resp);
  63.       setTimeout(() => {
  64.         if(this.offStatus === false) {
  65.           this.content.scrollToBottom(300);
  66.         }
  67.       }, 1000);
  68.     });
  69.   }
  70. }
  71. export const snapshotToArray = snapshot => {
  72.   let returnArr = [];
  73.  
  74.   snapshot.forEach(childSnapshot => {
  75.       let item = childSnapshot.val();
  76.       item.key = childSnapshot.key;
  77.       returnArr.push(item);
  78.   });
  79.  
  80.   return returnArr;
  81. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement