UNPKG

@findify/react-components

Version:
38 lines (33 loc) 1.14 kB
import { createChangeEmitter } from '@findify/change-emitter'; import { useEffect } from 'react'; var emmiter = createChangeEmitter(); var isSubscribed = false; // Replace global change emmiter with current var subscribe = function subscribe() { if (isSubscribed || !window.findify.addListeners) return; window.findify.addListeners(emmiter.getListeners()); emmiter.emit = window.findify.emit; emmiter.listen = window.findify.listen; isSubscribed = true; return; }; export var emit = function emit() { subscribe(); return emmiter.emit.apply(emmiter, arguments); }; export var listen = function listen() { subscribe(); return emmiter.listen.apply(emmiter, arguments); }; export var useEvents = function useEvents(events) { useEffect(function () { var handler = function handler(event) { if (!events || !events[event]) return; for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } events[event].apply(events, args); }; var listener = listen(handler); return listener; }, []); };