import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams, PopoverController } from '@ionic/angular';
import { EventPerson } from 'src/app/models/eventperson.model';
import { SearchList } from 'src/app/models/search-document';
import { NewEventPage } from 'src/app/pages/agenda/new-event/new-event.page';
import { SearchPage } from 'src/app/pages/search/search.page';
import { AlertService } from 'src/app/services/alert.service';
import { ChatService } from 'src/app/services/chat.service';
import { FileLoaderService } from 'src/app/services/file/file-loader.service';
import { FileToBase64Service } from 'src/app/services/file/file-to-base64.service';
import { environment } from 'src/environments/environment';
import { ThemeService } from 'src/app/services/theme.service'

@Component({
  selector: 'app-chat-options-features',
  templateUrl: './chat-options-features.page.html',
  styleUrls: ['./chat-options-features.page.scss'],
})
export class ChatOptionsFeaturesPage implements OnInit {

  documents:SearchList[] = [];
  members: any;
  attendees: EventPerson[] = [];

  capturedImage:any;
  capturedImageTitle:any;

  constructor(
    private popoverController: PopoverController,
    private modalController: ModalController,
    private alertService: AlertService,
    private navParams: NavParams,
    private fileLoaderService: FileLoaderService,
    private fileToBase64Service: FileToBase64Service,
    private chatService: ChatService,
    public ThemeService: ThemeService
  ) {

    this.members = this.navParams.get('members');
    console.log(this.members);
    this.attendees = this.members.map((val)=>{
      return {
        Name: val.name,
        EmailAddress: val.username+"@"+environment.domain,
        IsRequired: "true",
      }
    });
  }

  ngOnInit() {
    console.log(this.attendees);

  }

  notImplemented(){
    this.alertService.presentAlert('Funcionalidade em desenvolvimento');
  }

  close(){
    if( window.innerWidth < 701){
      this.popoverController.dismiss();
    }
    else{
      this.modalController.dismiss();
    }
  }

  attachDocument(){
    console.log('Anexar Documento');

  }

  addDocument(){
    this.modalController.dismiss('add-document');
  }

  takePicture(){
    if( window.innerWidth < 701){
      this.popoverController.dismiss('take-picture');
    }
    else{
      this.modalController.dismiss('take-picture');
    }
  }

  addPicture(){
    this.modalController.dismiss('add-picture');
  }

  addDocGestaoDocumental(){
    this.modalController.dismiss('documentoGestaoDocumental');
  }

  laodPicture() {
    const input = this.fileLoaderService.createInput({
      accept: ['image/apng', 'image/jpeg', 'image/png']
    })

    input.onchange = async () => {
      const file = this.fileLoaderService.getFirstFile(input)

      console.log(file);

      const imageData =  await this.fileToBase64Service.convert(file)
      this.capturedImage = imageData;
      this.capturedImageTitle = file.name;

      let body = {
        "message":
        {
          "rid": "J5WDHyrYWHQrybbno",
          "msg": "this.message",
          "attachments": [{
            "title": this.capturedImageTitle ,
            "text": "description",
            "title_link_download": false,
            "image_url": this.capturedImage,
          }]
        }
      }

      this.chatService.sendMessage(body).subscribe(res=> {
        console.log(res);
      },(error) => {

      });
      //console.log(this.capturedImage)
    };
  }

  sendMessage(){
    let body = {
      "message":
      {
        "rid": "J5WDHyrYWHQrybbno",
        "msg": "this.message",
        /* "attachments": [{
          "color": "#ff0000",
          "text": "Yay for gruggy!",
          "title": "Attachment Example",
          "title_link": "https://youtube.com",
          "title_link_download": false,
          "image_url": "https://upload.wikimedia.org/wikipedia/commons/e/ee/Chain_link_icon.png",
        }] */
      }
    }

    this.chatService.sendMessage(body).subscribe(res=> {
      console.log(res);


    },(error) => {

    });
  }

  /* getGroupContacts(room:any){
    this.showLoader = true;
    //If group is private call getGroupMembers
    if(this.room.t === 'p'){
      this.chatService.getGroupMembers(this.roomId).subscribe(res=>{
        console.log(res);
        this.members = res['members'];
        this.showLoader = false;
      });
    }
    //Otherwise call getChannelMembers for públic groups
    else{
      this.chatService.getChannelMembers(this.roomId).subscribe(res=>{
        console.log(res);
        this.members = res['members'];
        this.showLoader = false;
      });
    }
  } */

  async getDoc(){
    const modal = await this.modalController.create({
      component: SearchPage,
      cssClass: 'group-messages modal-desktop search-modal search-modal-to-desktop',
      componentProps: {
        type: 'AccoesPresidenciais & ArquivoDespachoElect',
        select: true,
        showSearchInput: true,
      }
    });
    await modal.present();
    modal.onDidDismiss().then((res)=>{
      if(res){
        const data = res.data;
        this.documents.push(data.selected);
        console.log(res.data);
      }
    });
  }

  async bookMeeting() {
    console.log(this.attendees);

    if( window.innerWidth <= 800){
      this.popoverController.dismiss();
      const modal = await this.modalController.create({
        component: NewEventPage,
        componentProps:{
          attendees: this.attendees,
        },
        cssClass: 'modal  modal-desktop',
        backdropDismiss: false
      });
      await modal.present();
      modal.onDidDismiss().then((data) => {
        if(data){

        }
      });
    }
    else{
      this.modalController.dismiss('meeting');
    }
  }

}
