61 lines
1.5 KiB
TypeScript
Raw Normal View History

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';
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 {
@Input()
2019-11-06 13:48:06 +09:00
message: Info<FileEventJson>;
@Input()
eventInfoStatus: InfoResponse;
2019-10-07 13:49:12 +09:00
@Output()
2019-11-06 13:48:06 +09:00
save = new EventEmitter<{ fileInfo: FileEventJson; type: string }>();
@Output()
2019-11-06 13:48:06 +09:00
imageViewer = new EventEmitter<FileEventJson>();
2019-11-06 13:48:06 +09:00
fileInfo?: FileEventJson;
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;
} else {
2019-11-06 13:48:06 +09:00
this.errorMessage =
this.message.sentMessageJson.errorMessage || '[Error] System Error!!';
}
}
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) {
this.imageViewer.emit(this.fileInfo);
}
onSave(value: string) {
this.save.emit({ fileInfo: this.fileInfo, type: value });
}
2019-10-07 13:49:12 +09:00
}