import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core'; import { Info, InfoResponse, FileEventJson } from '@ucap-webmessenger/protocol-event'; import { StatusCode } from '@ucap-webmessenger/api'; import { FileType } from '@ucap-webmessenger/protocol-file'; import { NGXLogger } from 'ngx-logger'; @Component({ selector: 'ucap-chat-message-box-file', templateUrl: './file.component.html', styleUrls: ['./file.component.scss'] }) export class FileComponent implements OnInit { @Input() message: Info; @Input() eventInfoStatus: InfoResponse; @Output() save = new EventEmitter<{ fileInfo: FileEventJson; type: string }>(); @Output() imageViewer = new EventEmitter(); fileInfo?: FileEventJson; errorMessage?: string; FileType = FileType; constructor(private logger: NGXLogger) {} ngOnInit() { if (StatusCode.Success === this.message.sentMessageJson.statusCode) { this.fileInfo = this.message.sentMessageJson; } else { this.errorMessage = this.message.sentMessageJson.errorMessage || '[Error] System Error!!'; } } getExpiredFile() { if ( !!this.eventInfoStatus && this.eventInfoStatus.validFileBaseSeq < this.message.seq ) { return false; } else { return true; } } onClickImageViewer(fileInfo: FileEventJson) { this.imageViewer.emit(this.fileInfo); } onSave(value: string) { this.save.emit({ fileInfo: this.fileInfo, type: value }); } }