Fix feedback moufmouf

This commit is contained in:
Gregoire Parant 2020-11-10 12:38:32 +01:00
parent f837f1a31f
commit 3333b3cee3
4 changed files with 46 additions and 9 deletions

View file

@ -840,7 +840,7 @@ div.modal-report-user{
position: absolute; position: absolute;
height: calc(100% - 360px); height: calc(100% - 360px);
overflow-x: hidden; overflow-x: hidden;
overflow-y: scroll; overflow-y: auto;
max-width: calc(100% - 40px); max-width: calc(100% - 40px);
width: calc(100% - 40px); width: calc(100% - 40px);
} }
@ -887,6 +887,7 @@ div.modal-report-user{
color: white; color: white;
border-radius: 15px; border-radius: 15px;
border: none; border: none;
padding: 6px;
} }
.discussion .send-message img{ .discussion .send-message img{

View file

@ -387,6 +387,7 @@ export class GameScene extends ResizableScene implements CenterListener {
//create input to move //create input to move
this.userInputManager = new UserInputManager(this); this.userInputManager = new UserInputManager(this);
mediaManager.setUserInputManager(this.userInputManager);
//notify game manager can to create currentUser in map //notify game manager can to create currentUser in map
this.createCurrentPlayer(); this.createCurrentPlayer();

View file

@ -1,5 +1,6 @@
import {HtmlUtils} from "./HtmlUtils"; import {HtmlUtils} from "./HtmlUtils";
import {MediaManager, ReportCallback, UpdatedLocalStreamCallback} from "./MediaManager"; import {MediaManager, ReportCallback, UpdatedLocalStreamCallback} from "./MediaManager";
import {UserInputManager} from "../Phaser/UserInput/UserInputManager";
export type SendMessageCallback = (message:string) => void; export type SendMessageCallback = (message:string) => void;
export class DiscussionManager { export class DiscussionManager {
@ -17,6 +18,8 @@ export class DiscussionManager {
private sendMessageCallBack : Map<number|string, SendMessageCallback> = new Map<number|string, SendMessageCallback>(); private sendMessageCallBack : Map<number|string, SendMessageCallback> = new Map<number|string, SendMessageCallback>();
private userInputManager?: UserInputManager;
constructor(private mediaManager: MediaManager, name: string) { constructor(private mediaManager: MediaManager, name: string) {
this.mainContainer = HtmlUtils.getElementByIdOrFail<HTMLDivElement>('main-container'); this.mainContainer = HtmlUtils.getElementByIdOrFail<HTMLDivElement>('main-container');
this.createDiscussPart(name); this.createDiscussPart(name);
@ -31,15 +34,13 @@ export class DiscussionManager {
buttonCloseDiscussion.classList.add('close-btn'); buttonCloseDiscussion.classList.add('close-btn');
buttonCloseDiscussion.innerHTML = `<img src="resources/logos/close.svg"/>`; buttonCloseDiscussion.innerHTML = `<img src="resources/logos/close.svg"/>`;
buttonCloseDiscussion.addEventListener('click', () => { buttonCloseDiscussion.addEventListener('click', () => {
this.activeDiscussion = false; this.hideDiscussion();
this.divDiscuss?.classList.remove('active');
this.showButtonDiscussionBtn(); this.showButtonDiscussionBtn();
}); });
this.buttonActiveDiscussion.classList.add('active-btn'); this.buttonActiveDiscussion.classList.add('active-btn');
this.buttonActiveDiscussion.innerHTML = `<img src="resources/logos/discussion.svg"/>`; this.buttonActiveDiscussion.innerHTML = `<img src="resources/logos/discussion.svg"/>`;
this.buttonActiveDiscussion.addEventListener('click', () => { this.buttonActiveDiscussion.addEventListener('click', () => {
this.activeDiscussion = true; this.showDiscussion();
this.divDiscuss?.classList.add('active');
this.hideButtonDiscussionBtn(); this.hideButtonDiscussionBtn();
}); });
this.divDiscuss.appendChild(buttonCloseDiscussion); this.divDiscuss.appendChild(buttonCloseDiscussion);
@ -69,6 +70,11 @@ export class DiscussionManager {
inputMessage.addEventListener('keyup', (event: KeyboardEvent) => { inputMessage.addEventListener('keyup', (event: KeyboardEvent) => {
if (event.key === 'Enter') { if (event.key === 'Enter') {
event.preventDefault(); event.preventDefault();
if(inputMessage.value === null
|| inputMessage.value === ''
|| inputMessage.value === undefined) {
return;
}
this.addMessage(name, inputMessage.value, true); this.addMessage(name, inputMessage.value, true);
for(const callback of this.sendMessageCallBack.values()) { for(const callback of this.sendMessageCallBack.values()) {
callback(inputMessage.value); callback(inputMessage.value);
@ -117,6 +123,8 @@ export class DiscussionManager {
reportBanUserAction.addEventListener('click', () => { reportBanUserAction.addEventListener('click', () => {
if(reportCallback) { if(reportCallback) {
this.mediaManager.showReportModal(`${userId}`, name ?? '', reportCallback); this.mediaManager.showReportModal(`${userId}`, name ?? '', reportCallback);
}else{
console.info('report feature is not activated!');
} }
}); });
divParticipant.appendChild(reportBanUserAction); divParticipant.appendChild(reportBanUserAction);
@ -193,7 +201,27 @@ export class DiscussionManager {
this.buttonActiveDiscussion?.classList.add('active'); this.buttonActiveDiscussion?.classList.add('active');
} }
private showDiscussion(){
this.activeDiscussion = true;
if(this.userInputManager) {
this.userInputManager.clearAllInputKeyboard();
}
this.divDiscuss?.classList.add('active');
}
private hideDiscussion(){
this.activeDiscussion = false;
if(this.userInputManager) {
this.userInputManager.initKeyBoardEvent();
}
this.divDiscuss?.classList.remove('active');
}
private hideButtonDiscussionBtn(){ private hideButtonDiscussionBtn(){
this.buttonActiveDiscussion?.classList.remove('active'); this.buttonActiveDiscussion?.classList.remove('active');
} }
public setUserInputManager(userInputManager : UserInputManager){
this.userInputManager = userInputManager;
}
} }

View file

@ -1,6 +1,7 @@
import {DivImportance, layoutManager} from "./LayoutManager"; import {DivImportance, layoutManager} from "./LayoutManager";
import {HtmlUtils} from "./HtmlUtils"; import {HtmlUtils} from "./HtmlUtils";
import {DiscussionManager, SendMessageCallback} from "./DiscussionManager"; import {DiscussionManager, SendMessageCallback} from "./DiscussionManager";
import {UserInputManager} from "../Phaser/UserInput/UserInputManager";
declare const navigator:any; // eslint-disable-line @typescript-eslint/no-explicit-any declare const navigator:any; // eslint-disable-line @typescript-eslint/no-explicit-any
const videoConstraint: boolean|MediaTrackConstraints = { const videoConstraint: boolean|MediaTrackConstraints = {
@ -41,6 +42,8 @@ export class MediaManager {
private discussionManager: DiscussionManager; private discussionManager: DiscussionManager;
private userInputManager?: UserInputManager;
constructor() { constructor() {
this.myCamVideo = HtmlUtils.getElementByIdOrFail<HTMLVideoElement>('myCamVideo'); this.myCamVideo = HtmlUtils.getElementByIdOrFail<HTMLVideoElement>('myCamVideo');
@ -93,7 +96,7 @@ export class MediaManager {
//update tracking //update tracking
}); });
this.discussionManager = new DiscussionManager(this,'test'); this.discussionManager = new DiscussionManager(this,'');
} }
public onUpdateLocalStream(callback: UpdatedLocalStreamCallback): void { public onUpdateLocalStream(callback: UpdatedLocalStreamCallback): void {
@ -572,20 +575,24 @@ export class MediaManager {
} }
public removeParticipant(userId: number|string){ public removeParticipant(userId: number|string){
this.discussionManager.removeParticipant(userId) this.discussionManager.removeParticipant(userId);
} }
public addNewMessage(name: string, message: string, isMe: boolean = false){ public addNewMessage(name: string, message: string, isMe: boolean = false){
this.discussionManager.addMessage(name, message, isMe) this.discussionManager.addMessage(name, message, isMe);
} }
public addSendMessageCallback(userId: string|number, callback: SendMessageCallback){ public addSendMessageCallback(userId: string|number, callback: SendMessageCallback){
this.discussionManager.onSendMessageCallback(userId, callback) this.discussionManager.onSendMessageCallback(userId, callback);
} }
get activatedDiscussion(){ get activatedDiscussion(){
return this.discussionManager.activatedDiscussion; return this.discussionManager.activatedDiscussion;
} }
public setUserInputManager(userInputManager : UserInputManager){
this.discussionManager.setUserInputManager(userInputManager);
}
} }
export const mediaManager = new MediaManager(); export const mediaManager = new MediaManager();