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