From 73286457355b7183216d6cfc5fc340df13792977 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 2 Apr 2018 21:15:28 +0200 Subject: [PATCH] [lib.content-controller] remove auto_grow() to move it local (inside template [vue.auth.channel]) + added management for ENTER but not SHIFT+ENTER --- webpack/lib/content-controller.js | 34 ++++++++------- webpack/vue/auth/channel.vue | 69 ++++++++++++++++++++++++++++++- 2 files changed, 86 insertions(+), 17 deletions(-) diff --git a/webpack/lib/content-controller.js b/webpack/lib/content-controller.js index 9c5f6d5..1f748b6 100644 --- a/webpack/lib/content-controller.js +++ b/webpack/lib/content-controller.js @@ -56,21 +56,7 @@ export default class ContentController{ } - /* (6) Textarea auto_grow - * - * @e Textarea event - * - ---------------------------------------------------------*/ - auto_grow(e){ - - setTimeout(() => { - e.target.style.height = '0'; - e.target.style.height = `calc( ${e.target.scrollHeight}px )`; - }, 1); - } - - - /* (7) Change username + /* (6) Change username * * @username New username ---------------------------------------------------------*/ @@ -135,5 +121,23 @@ export default class ContentController{ } + /* (8) Send message + * + ---------------------------------------------------------*/ + send_message(_msg=null){ + + /* (1) Manage invalid _msg */ + if( typeof _msg !== 'string' || _msg.length <= 0 ) + return true; + + /* (2) Send message */ + console.log(`SEND: "${_msg}"`); + + return true; + + } + + + } \ No newline at end of file diff --git a/webpack/vue/auth/channel.vue b/webpack/vue/auth/channel.vue index 42d5424..a053c95 100644 --- a/webpack/vue/auth/channel.vue +++ b/webpack/vue/auth/channel.vue @@ -22,7 +22,7 @@
- +
@@ -34,7 +34,72 @@ export default { name: 'channel-', - data(){ return { gs: gs.get }; } + data(){ return { + gs: gs.get, + message: '', // message text + pressed: { + 16: false // SHIFT key + } + + }; }, + + methods: { + + /* (1) Auto-grow text area + * + ---------------------------------------------------------*/ + auto_grow(e){ + + setTimeout(() => { + e.target.style.height = '0'; + e.target.style.height = `calc( ${e.target.scrollHeight}px )`; + }, 1); + + }, + + + /* (2) Mange Key Down + * + ---------------------------------------------------------*/ + keydown(e){ + + // Manage auto grow + this.auto_grow(e); + + // register pressed keys + this.pressed[e.keyCode] = true; + + // if not ENTER OR SHIFT -> do nothing + if( e.keyCode !== 13 || this.pressed[16] ) + return; + + + + // bufferize message + remove trailing line + let buffer = e.target.value.replace(/\n*$/, ''); + this.message = buffer; + + // send message + if( !gs.get.content.send_message(buffer) ) + return; + + // empty message + this.message = ''; + + }, + + + /* (3) Mange Key Up + * + ---------------------------------------------------------*/ + keyup(e){ + + // unregister pressed keys + this.pressed[e.keyCode] = false; + + } + + } }