diff --git a/src/pages/signature/signature.ts b/src/pages/signature/signature.ts index d40fe0d..0dafcb0 100755 --- a/src/pages/signature/signature.ts +++ b/src/pages/signature/signature.ts @@ -281,8 +281,29 @@ class SignatureElement extends HTMLElement { this.notificationBoard.style.display = 'none'; } }); + this.initMessageEvents(); } + private initMessageEvents() { + // Pour le bouton Send + const sendButton = document.getElementById('send-button'); + if (sendButton) { + sendButton.addEventListener('click', () => this.sendMessage()); + } + + // Pour la touche Entrée + const messageInput = document.getElementById('message-input'); + if (messageInput) { + messageInput.addEventListener('keypress', (event: KeyboardEvent) => { + if (event.key === 'Enter' && !event.shiftKey) { + event.preventDefault(); + this.sendMessage(); + } + }); + } + } + + private calculateDuration(startDate: string | null | undefined, endDate: string | null | undefined): number { const start = new Date(startDate || ''); const end = new Date(endDate || ''); @@ -388,44 +409,44 @@ class SignatureElement extends HTMLElement { this.renderNotifications(); this.updateNotificationBadge(); } - // Send a messsage +// Send a messsage private sendMessage() { - const messageInput = document.getElementById('message-input') as HTMLInputElement; - if (!messageInput) return; - const messageText = messageInput.value.trim(); + const messageInput = document.getElementById('message-input') as HTMLInputElement; + if (!messageInput) return; + const messageText = messageInput.value.trim(); - if (messageText === '' || this.selectedMemberId === null) { - return; - } - - const newMessage: Message = { - id: Date.now(), - sender: "4NK", - text: messageText, - time: new Date().toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }), - type: 'text' as const - }; - - // Add and display the message immediately - messageStore.addMessage(this.selectedMemberId, newMessage); - this.messagesMock = messageStore.getMessages(); - this.loadMemberChat(this.selectedMemberId); - - // Reset the input - messageInput.value = ''; - - // Automatic response after 2 seconds - setTimeout(() => { - if (this.selectedMemberId) { - const autoReply = this.generateAutoReply(`Member ${this.selectedMemberId}`); - messageStore.addMessage(this.selectedMemberId, autoReply); - this.messagesMock = messageStore.getMessages(); - this.loadMemberChat(this.selectedMemberId); - this.addNotification(this.selectedMemberId, autoReply); - } - }, 2000); + if (messageText === '' || this.selectedMemberId === null) { + return; } + const newMessage: Message = { + id: Date.now(), + sender: "4NK", + text: messageText, + time: new Date().toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }), + type: 'text' as const + }; + // Add and display the message immediately + messageStore.addMessage(this.selectedMemberId, newMessage); + this.messagesMock = messageStore.getMessages(); + this.loadMemberChat(this.selectedMemberId); + + // Reset the input + messageInput.value = ''; + + // Automatic response after 2 seconds + setTimeout(() => { + if (this.selectedMemberId) { + const autoReply = this.generateAutoReply(`Member ${this.selectedMemberId}`); + messageStore.addMessage(this.selectedMemberId, autoReply); + this.messagesMock = messageStore.getMessages(); + this.loadMemberChat(this.selectedMemberId); + this.addNotification(this.selectedMemberId, autoReply); + } + }, 2000); +} + + private showProcessDetails(group: Group, groupId: number) { console.log('Showing details for group:', groupId); @@ -1756,9 +1777,8 @@ class SignatureElement extends HTMLElement { const messageInput = this.shadowRoot?.querySelector('#message-input'); if (messageInput) { - messageInput.addEventListener('keydown', (event: Event) => { - const keyEvent = event as KeyboardEvent; - if (keyEvent.key === 'Enter') { + messageInput.addEventListener('keypress', (event: Event) => { + if ((event as KeyboardEvent).key === 'Enter') { event.preventDefault(); this.sendMessage(); }