toggler-react
Version:
This is a react toggler. It can be used to build dropdowns, popover, tooltips
32 lines (26 loc) • 734 B
text/typescript
type subcriber = {
id: number,
callback: Function
}
const clickHandler = () => {
let subcribers: subcriber[] = [];
return {
subscribe: (callback: Function) => {
const id = Math.random();
subcribers.push({id, callback});
return {
remove: () => {
subcribers = subcribers.filter(x => x.id !== id);
}
}
},
publish: (event: Event) => {
subcribers.map(subscriber => subscriber.callback(event))
}
}
}
let pubSub = clickHandler();
if (typeof window !== 'undefined' && window.addEventListener) {
window.addEventListener("click", pubSub.publish)
}
export default pubSub;