Persil/src/Users.js
2022-04-17 14:44:42 +02:00

45 lines
1 KiB
JavaScript

import messages from './Messages.js'
import UserComponent from './components/user.js'
customElements.define('c-user', UserComponent)
class Users {
constructor () {
this.parent = document.getElementById('users')
this.users = {}
}
add (user, client) {
if(user.channel?.name === client.self.channel.name)
{
if(! this.users[user.username])
{
messages.addInfo(`${user.username} is connected`)
const element = document.createElement('c-user')
element.setAttribute('username', user.username)
this.parent.appendChild(element)
this.users[user.username] = element
user.on('remove', () => this.remove(user))
}
}
else
{
this.remove(user)
}
user.on('update', () => this.add(user,client))
}
remove(user)
{
if(this.users[user.username])
{
messages.addInfo(`${user.username} has gone`)
this.users[user.username].remove()
delete this.users[user.username]
}
}
}
const users = new Users()
export default users