93 lines
2.6 KiB
TypeScript
Raw Normal View History

import { Component, OnInit, Input } from '@angular/core';
import { NGXLogger } from 'ngx-logger';
import { Info, EventType } from '@ucap-webmessenger/protocol-event';
2019-10-07 13:49:12 +09:00
@Component({
selector: 'ucap-chat-message-box-information',
templateUrl: './information.component.html',
styleUrls: ['./information.component.scss']
})
export class InformationComponent implements OnInit {
@Input()
message: Info;
@Input()
senderName?: string;
2019-10-07 13:49:12 +09:00
contents: string;
constructor(private logger: NGXLogger) {}
ngOnInit() {
switch (this.message.type) {
case EventType.Join:
let owner: string;
const inviter: string[] = [];
this.message.sentMessage.split(',').forEach((userName, idx) => {
if (idx === 0) {
owner = userName + '님';
} else {
inviter.push(userName + '님');
}
});
this.contents = `${owner}${inviter.join(',')}을 초대했습니다.`;
break;
case EventType.Exit:
this.contents = `${this.message.sentMessage}님이 퇴장하셨습니다.`;
break;
case EventType.RenameRoom:
this.contents = `${this.message.sentMessage.substring(
0,
this.message.sentMessage.indexOf(',')
)} '${this.message.sentMessage.substring(
this.message.sentMessage.indexOf(',') + 1
)}' .`;
break;
case EventType.NotificationForTimerRoom:
/**
* , .
*/
this.contents = this.message.sentMessage;
break;
case EventType.GuideForRoomTimerChanged:
const values = this.message.sentMessage.split(',');
if (values && values.length === 2) {
this.contents = `${
this.senderName
} .(${this.getCalcTimer(
Number(values[1]) * 1000
)})`;
}
break;
}
}
getCalcTimer(millisec: number) {
switch (millisec) {
case 5000:
return '5 초';
case 10000:
return '10 초';
case 30000:
return '30 초';
case 60000:
return '1 분';
case 300000:
return '5 분';
case 600000:
return '10 분';
case 1800000:
return '30 분';
case 3600000:
return '1 시간';
case 21600000:
return '6 시간';
case 43200000:
return '12 시간';
case 86400000:
return '24 시간';
default:
return '0 초';
}
}
2019-10-07 13:49:12 +09:00
}