[lib.content-controller] remove auto_grow() to move it local (inside template [vue.auth.channel]) + added management for ENTER but not SHIFT+ENTER
This commit is contained in:
parent
dad14da4a8
commit
7328645735
|
@ -56,21 +56,7 @@ export default class ContentController{
|
|||
}
|
||||
|
||||
|
||||
/* (6) Textarea auto_grow
|
||||
*
|
||||
* @e<Event> 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<String> 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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -22,7 +22,7 @@
|
|||
</section>
|
||||
|
||||
<section class='message-input'>
|
||||
<textarea :placeholder='`Message #${gs.room.get(`text`).name}`' @keydown='gs.content.auto_grow'></textarea>
|
||||
<textarea :value='message' :placeholder='`Message #${gs.room.get(`text`).name}`' @keydown='keydown' @keyup='keyup'></textarea>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue