mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-03 19:54:14 +00:00 
			
		
		
		
	Send notification when user is writing a message
This commit is contained in:
		@@ -4,7 +4,7 @@
 | 
			
		||||
 * @author Pierre HUBERT
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
ComunicWeb.common.date = {
 | 
			
		||||
const ComunicDate = {
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get current timestamp
 | 
			
		||||
	 * 
 | 
			
		||||
@@ -100,3 +100,5 @@ ComunicWeb.common.date = {
 | 
			
		||||
		return this.diffToStr(this.time() - time);
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ComunicWeb.common.date = ComunicDate;
 | 
			
		||||
@@ -146,6 +146,9 @@ const ConvChatWindow = {
 | 
			
		||||
		});
 | 
			
		||||
		inputText.maxLength = ServerConfig.conf.max_conversation_message_len;
 | 
			
		||||
 | 
			
		||||
		// Notify other users when this user is writing a message
 | 
			
		||||
		ConversationsUtils.listenToInputChangeEvents(inputText, infosBox.conversationID)
 | 
			
		||||
 | 
			
		||||
		//Enable textarea 2.0 on the message
 | 
			
		||||
		var textarea2 = new ComunicWeb.components.textarea();
 | 
			
		||||
		textarea2.init({
 | 
			
		||||
 
 | 
			
		||||
@@ -284,6 +284,30 @@ const ConversationsUtils = {
 | 
			
		||||
 | 
			
		||||
		await ConversationsInterface.sendNewConversationImage(convID, input);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Automatically listen to change events of an input
 | 
			
		||||
	 * to notify other users current user is writing a message
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {HTMLInputElement} input
 | 
			
		||||
	 * @param {number} convID
 | 
			
		||||
	 */
 | 
			
		||||
	listenToInputChangeEvents: async function(input, convID) {
 | 
			
		||||
		let last_update = 0;
 | 
			
		||||
 | 
			
		||||
		input.addEventListener("keyup", e => {
 | 
			
		||||
			if(input.value == "")
 | 
			
		||||
				return;
 | 
			
		||||
 | 
			
		||||
			const t = ComunicDate.time();
 | 
			
		||||
			if (t - last_update < ServerConfig.conf.conversation_writing_event_interval)
 | 
			
		||||
				return;
 | 
			
		||||
 | 
			
		||||
			last_update = t;
 | 
			
		||||
			ws("conversations/writing", {convID: convID});
 | 
			
		||||
		});
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ComunicWeb.components.conversations.utils = ConversationsUtils;
 | 
			
		||||
 
 | 
			
		||||
@@ -465,6 +465,9 @@ const ConversationPageConvPart = {
 | 
			
		||||
		inputText.maxLength = ServerConfig.conf.max_conversation_message_len;
 | 
			
		||||
		inputText.focus();
 | 
			
		||||
 | 
			
		||||
		// Notify other users when this user is writing a message
 | 
			
		||||
		ConversationsUtils.listenToInputChangeEvents(inputText, this._conv_info.id)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		//Enable textarea 2.0 on the message
 | 
			
		||||
		var textarea2 = new ComunicWeb.components.textarea();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								assets/js/typings/ServerConfig.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								assets/js/typings/ServerConfig.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -36,4 +36,6 @@ declare interface StaticServerConfig {
 | 
			
		||||
    max_conversation_message_len: number,
 | 
			
		||||
    allowed_conversation_files_type: String[],
 | 
			
		||||
    conversation_files_max_size: number,
 | 
			
		||||
    conversation_writing_event_interval: number,
 | 
			
		||||
    conversation_writing_event_lifetime: number,
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user