85 lines
2.1 KiB
TypeScript
Raw Normal View History

2019-10-11 18:03:01 +09:00
import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';
2019-10-08 16:41:23 +09:00
import { Info, EventType } from '@ucap-webmessenger/protocol-event';
import {
LoginResponse,
UserInfo
} from '@ucap-webmessenger/protocol-authentication';
2019-10-08 15:13:01 +09:00
import { NGXLogger } from 'ngx-logger';
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
import { KEY_VER_INFO, VerInfo2 } from '@app/types/ver-info.type';
import { FileInfo } from '../models/file-info.json';
2019-10-08 13:31:33 +09:00
@Component({
selector: 'ucap-chat-messages',
templateUrl: './messages.component.html',
styleUrls: ['./messages.component.scss']
})
export class MessagesComponent implements OnInit {
@Input()
2019-10-08 13:31:33 +09:00
loginRes: LoginResponse;
@Input()
messages: Info[];
@Input()
userInfos?: UserInfo[];
2019-10-11 18:03:01 +09:00
@Output()
massDetail = new EventEmitter<number>();
@Output()
imageViewer = new EventEmitter<FileInfo>();
@Output()
save = new EventEmitter<{ fileInfo: FileInfo; type: string }>();
2019-10-11 18:03:01 +09:00
2019-10-08 16:41:23 +09:00
EventType = EventType;
profileImageRoot: string;
2019-10-08 16:41:23 +09:00
constructor(
private logger: NGXLogger,
private sessionStorageService: SessionStorageService
) {}
2019-10-08 15:13:01 +09:00
ngOnInit() {
const verInfo = this.sessionStorageService.get<VerInfo2>(KEY_VER_INFO);
this.profileImageRoot = this.profileImageRoot || verInfo.profileRoot;
}
getUserName(seq: number): string {
2019-10-11 15:55:27 +09:00
if (!this.userInfos) {
return '';
}
const userInfo: UserInfo[] = this.userInfos.filter(
user => user.seq === seq
);
if (!!userInfo && userInfo.length > 0) {
return userInfo[0].name;
}
return '(알수없는 사용자)';
}
getUserProfile(seq: number): string {
2019-10-11 15:55:27 +09:00
if (!this.userInfos) {
return '';
}
const userInfo: UserInfo[] = this.userInfos.filter(
user => user.seq === seq
);
if (!!userInfo && userInfo.length > 0) {
return this.profileImageRoot + userInfo[0].profileImageFile;
}
return '';
2019-10-08 15:13:01 +09:00
}
2019-10-11 18:03:01 +09:00
onMassDetail(value: number) {
this.massDetail.emit(value);
}
onImageViewer(value: FileInfo) {
this.imageViewer.emit(value);
}
onSave(value: { fileInfo: FileInfo; type: string }) {
this.save.emit(value);
}
}