109 lines
1.9 KiB
JavaScript
109 lines
1.9 KiB
JavaScript
export default class ContentController{
|
|
|
|
/* (1) Construct default attributes
|
|
*
|
|
---------------------------------------------------------*/
|
|
|
|
constructor(){}
|
|
|
|
/* (2) Channel bindings
|
|
*
|
|
---------------------------------------------------------*/
|
|
get cid(){ return gs.get.channel.current; }
|
|
|
|
get cbuf(){
|
|
|
|
/* (1) Ignore: if no channel */
|
|
if( gs.get.channel.list == null || gs.get.channel.list.length === 0 )
|
|
return {};
|
|
|
|
/* (2) Search for current channel */
|
|
for( let c of gs.get.channel.list ){
|
|
|
|
// Return if channel found //
|
|
if( c.id === this.cid )
|
|
return c;
|
|
|
|
}
|
|
|
|
|
|
/* (3) If nothing found */
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
/* (3) Room ID binding
|
|
*
|
|
---------------------------------------------------------*/
|
|
get rid(){ return gs.get.room.text.current; }
|
|
|
|
get rbuf(){
|
|
|
|
/* (1) Ignore: if no rooms empty */
|
|
if( gs.get.room.text.list == null || gs.get.room.text.list.length === 0 )
|
|
return {};
|
|
|
|
/* (2) Search for current room */
|
|
for( let r of gs.get.room.text.list ){
|
|
|
|
// Return if room found //
|
|
if( r.id === this.rid )
|
|
return r;
|
|
|
|
}
|
|
|
|
|
|
/* (3) If nothing found */
|
|
return {};
|
|
|
|
}
|
|
|
|
get messages(){ return this.rbuf.messages; }
|
|
get members(){ return this.rbuf.members; }
|
|
|
|
|
|
/* (5) User getter
|
|
*
|
|
* @user_id<int> User id
|
|
*
|
|
* @return user<array> User data
|
|
*
|
|
---------------------------------------------------------*/
|
|
user(user_id=null){
|
|
|
|
/* (1) Error: if invalid user_id */
|
|
if( isNaN(user_id) )
|
|
return {};
|
|
|
|
/* (2) Error: unknown user */
|
|
if( this.cbuf.users == null || this.cbuf.users.length < 1 )
|
|
return {};
|
|
|
|
/* (3) return user data */
|
|
for( let u of this.cbuf.users )
|
|
if( u.uid === user_id )
|
|
return u;
|
|
|
|
/* (4) Error */
|
|
return {};
|
|
|
|
}
|
|
|
|
|
|
/* (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);
|
|
}
|
|
|
|
|
|
|
|
} |