2020-12-08 12:54:14 +01:00
|
|
|
|
|
|
|
class ChatBoxViews {
|
|
|
|
|
|
|
|
constructor () {
|
|
|
|
this.views = {};
|
|
|
|
}
|
|
|
|
|
|
|
|
add (key, val) {
|
|
|
|
this.views[key] = val;
|
|
|
|
}
|
|
|
|
|
|
|
|
get (key) {
|
|
|
|
return this.views[key];
|
|
|
|
}
|
|
|
|
|
2021-10-14 17:07:28 +02:00
|
|
|
xget (id) {
|
|
|
|
return this.keys()
|
|
|
|
.filter(k => (k !== id))
|
|
|
|
.reduce((acc, k) => {
|
|
|
|
acc[k] = this.views[k]
|
|
|
|
return acc;
|
|
|
|
}, {});
|
|
|
|
}
|
|
|
|
|
2020-12-08 12:54:14 +01:00
|
|
|
getAll () {
|
|
|
|
return Object.values(this.views);
|
|
|
|
}
|
|
|
|
|
|
|
|
keys () {
|
|
|
|
return Object.keys(this.views);
|
|
|
|
}
|
|
|
|
|
|
|
|
remove (key) {
|
|
|
|
delete this.views[key];
|
|
|
|
}
|
|
|
|
|
|
|
|
map (f) {
|
|
|
|
return Object.values(this.views).map(f);
|
|
|
|
}
|
|
|
|
|
|
|
|
forEach (f) {
|
|
|
|
return Object.values(this.views).forEach(f);
|
|
|
|
}
|
|
|
|
|
|
|
|
filter (f) {
|
|
|
|
return Object.values(this.views).filter(f);
|
|
|
|
}
|
|
|
|
|
|
|
|
closeAllChatBoxes () {
|
|
|
|
return Promise.all(Object.values(this.views).map(v => v.close({ 'name': 'closeAllChatBoxes' })));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default ChatBoxViews;
|