import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core'; import { Info } from '@ucap-webmessenger/protocol-event'; import { StatusCode } from '@ucap-webmessenger/api'; import { FileType } from '@ucap-webmessenger/protocol-file'; import { NGXLogger } from 'ngx-logger'; import { FileInfo } from '../../models/file-info.json'; @Component({ selector: 'ucap-chat-message-box-file', templateUrl: './file.component.html', styleUrls: ['./file.component.scss'] }) export class FileComponent implements OnInit { @Input() message: Info; @Output() save = new EventEmitter<{ fileInfo: FileInfo; type: string }>(); @Output() imageViewer = new EventEmitter(); fileInfo?: FileInfo; errorMessage?: string; FileType = FileType; constructor(private logger: NGXLogger) {} ngOnInit() { const contentJson: FileInfo = JSON.parse(this.message.sentMessage); if (contentJson.StatusCode === StatusCode.Success) { this.fileInfo = contentJson; } else { this.errorMessage = contentJson.ErrorMessage || '[Error] System Error!!'; } } onClickImageViewer(fileInfo: FileInfo) { this.imageViewer.emit(this.fileInfo); } onSave(value: string) { this.save.emit({ fileInfo: this.fileInfo, type: value }); } }