likeopera-frontend/Store.js

27 lines
622 B
JavaScript

var Store = module.exports = {
layout: 'message-on-right',
quickReply: true,
msg: null,
threads: false,
listeners: {},
on: function(ev, cb)
{
this.listeners[ev] = this.listeners[ev] || [];
this.listeners[ev].push(cb);
},
un: function(ev, cb)
{
if (!this.listeners[ev])
return;
for (var i = this.listeners[ev].length; i >= 0; i--)
if (this.listeners[ev] == cb)
this.listeners[ev].splice(i, 1);
},
set: function(k, v)
{
this[k] = v;
(this.listeners[k] || []).map(i => i());
}
};