Skip to content

Instantly share code, notes, and snippets.

@larsgk
Created September 14, 2017 19:30
Show Gist options
  • Save larsgk/af78542d74f0dd7b4881944a017c3fc0 to your computer and use it in GitHub Desktop.
Save larsgk/af78542d74f0dd7b4881944a017c3fc0 to your computer and use it in GitHub Desktop.
Lit singleton tests...
let _color = '#ff0000';
let rnd256 = () => Math.floor(Math.random() * 256);
setInterval(
() => { colorGenerator.color = `rgb(${rnd256()},${rnd256()},${rnd256()})`;},
1000
)
export const colorGenerator = {
_listeners: {
'color-changed': []
},
get color() { return _color; },
set color(c) { _color = c; this._onColorChange(); },
addListener(e, obj) {
if(this._listeners[e])
this._listeners[e].push(obj);
},
_onColorChange() {
if(this._listeners['color-changed'])
this._listeners['color-changed'].forEach(obj => obj({ detail: this.color }) );
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment