Merge pull request #344 from thecodingmachine/banned-message-modal

Banned message modal
This commit is contained in:
grégoire parant 2020-10-20 12:11:43 +02:00 committed by GitHub
commit 54d4a1b1f8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,12 +1,26 @@
import {TypeMessageInterface} from "./UserMessageManager";
import {HtmlUtils} from "../WebRtc/HtmlUtils";
let modalTimeOut : NodeJS.Timeout;
export class TypeMessageExt implements TypeMessageInterface{
private nbSecond = 0;
private maxNbSecond = 10;
private titleMessage = 'IMPORTANT !';
showMessage(message: string): void {
showMessage(message: string, canDeleteMessage: boolean = true): void {
//delete previous modal
try{
if(modalTimeOut){
clearTimeout(modalTimeOut);
}
const modal = HtmlUtils.getElementByIdOrFail('report-message-user');
modal.remove();
}catch (err){
console.error(err);
}
//create new modal
const div : HTMLDivElement = document.createElement('div');
div.classList.add('modal-report-user');
div.id = 'report-message-user';
@ -34,21 +48,24 @@ export class TypeMessageExt implements TypeMessageInterface{
this.nbSecond = this.maxNbSecond;
setTimeout((c) => {
this.forMessage(title);
this.forMessage(title, canDeleteMessage);
}, 1000);
}
forMessage(title: HTMLParagraphElement){
forMessage(title: HTMLParagraphElement, canDeleteMessage: boolean = true){
this.nbSecond -= 1;
title.innerText = `${this.titleMessage} (${this.nbSecond})`;
if(this.nbSecond > 0){
setTimeout(() => {
this.forMessage(title);
modalTimeOut = setTimeout(() => {
this.forMessage(title, canDeleteMessage);
}, 1000);
}else{
}else {
title.innerText = this.titleMessage;
const imgCancel : HTMLImageElement = document.createElement('img');
if (!canDeleteMessage) {
return;
}
const imgCancel: HTMLImageElement = document.createElement('img');
imgCancel.id = 'cancel-report-user';
imgCancel.src = 'resources/logos/close.svg';
@ -64,4 +81,7 @@ export class Ban extends TypeMessageExt {
}
export class Banned extends TypeMessageExt {
showMessage(message: string){
super.showMessage(message, false);
}
}