Initial working
This commit is contained in:
57
src/stores/userStore.js
Normal file
57
src/stores/userStore.js
Normal file
@@ -0,0 +1,57 @@
|
||||
import Color from 'color'
|
||||
import { defineStore } from 'pinia'
|
||||
|
||||
export const useUserStore = defineStore({
|
||||
id: 'userStore',
|
||||
state: () => ({
|
||||
users: [
|
||||
{
|
||||
id: -1,
|
||||
name: 'Mercury',
|
||||
color: Color('#ff4000'),
|
||||
channels: [],
|
||||
self: true
|
||||
}
|
||||
]
|
||||
}),
|
||||
getters: {
|
||||
getSelf: (state) => {
|
||||
return (self) => state.users.find(user => user.self === true)
|
||||
},
|
||||
getUserById: (state) => {
|
||||
return (id) => state.users.find(user => user.id === id)
|
||||
},
|
||||
getUsersByChannelId: (state) => {
|
||||
return (channelId) => state.users.filter(user => { return user.channels.includes(channelId) })
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
updateUser(newUser) {
|
||||
var user = this.users.find(user => user.id == newUser.id)
|
||||
if (!user) {
|
||||
user = {
|
||||
id: newUser.id,
|
||||
name: String(newUser.id),
|
||||
color: Color('#000000'),
|
||||
channels: []
|
||||
}
|
||||
this.users.push(user)
|
||||
}
|
||||
user.lastSeen = new Date()
|
||||
},
|
||||
setName(id, name) {
|
||||
var user = this.users.find(user => user.id == id)
|
||||
user.name = name
|
||||
},
|
||||
setColor(id, color) {
|
||||
var user = this.users.find(user => user.id == id)
|
||||
user.color = color
|
||||
},
|
||||
addChannel(id, channelId) {
|
||||
var user = this.users.find(user => user.id == id)
|
||||
if (!user.channels.includes(channelId)) {
|
||||
user.channels.push(channelId)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user