UNPKG

agora-react-native-rtm

Version:

React Native around the Agora RTM SDKs for Android and iOS agora

31 lines (30 loc) 844 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRtmEvent = useRtmEvent; var _react = require("react"); function listen(listenable, event, listener) { listenable.addEventListener(event, listener); return () => listenable.removeEventListener(event, listener); } function useRtmEvent(client, event, listener) { const listenerRef = (0, _react.useRef)(listener); (0, _react.useEffect)(() => { listenerRef.current = listener; }, [listener]); (0, _react.useEffect)(() => { if (client) { return listen(client, event, (...args) => { if (listenerRef.current) { listenerRef.current(...args); } }); } else { return () => { throw new Error('client is null'); }; } }, [event, client]); } //# sourceMappingURL=useRtmEvent.js.map