gallery/src/utils/event.js

19 lines
441 B
JavaScript

import { call } from 'reactimal';
export const streamConfig = {
is: s => s && typeof s.subscribe === 'function',
sub: (s, fn) => s.subscribe(fn),
off: subList => subList.forEach(call),
on: (accum, vm) => {
const redraw = () => vm.redraw();
return accum.map(s => (streamConfig.is(s) ? streamConfig.sub(s, redraw) : s()));
},
val: (s, accum) =>{
if (streamConfig.is(s)) {
accum.push(s);
return s();
}
return s;
}
};