UNPKG

pubnub-react

Version:

Publish & Subscribe Real-time Messaging with PubNub

53 lines (43 loc) 2.01 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var React = require('react'); var React__default = _interopDefault(React); var invariant = _interopDefault(require('ts-invariant')); var PubNubContext = /*#__PURE__*/React__default.createContext(null); function appendPnsdk(pubnub) { if (typeof pubnub._addPnsdkSuffix === 'function') { pubnub._addPnsdkSuffix('react', 'React/3.0.2'); } } var PubNubProvider = function PubNubProvider(_ref) { var client = _ref.client, children = _ref.children; var contextValue = React__default.useMemo(function () { return { client: client }; }, [client]); !contextValue.client ? invariant(false, 'PubNubProvider was not passed a client instance. Make ' + 'sure you pass in your client via the "client" prop.') : void 0; React__default.useEffect(function () { appendPnsdk(contextValue.client); }, []); return React__default.createElement(PubNubContext.Provider, { value: contextValue }, children); }; var PubNubConsumer = function PubNubConsumer(_ref) { var children = _ref.children; var context = React__default.useContext(PubNubContext); !(context && context.client) ? invariant(false, 'Could not find "client" in the context of PubNubConsumer. ' + 'Wrap the root component in an <PubNubProvider>.') : void 0; return React__default.createElement(React__default.Fragment, null, children(context.client)); }; function usePubNub() { var context = React.useContext(PubNubContext); !(context && context.client) ? invariant(false, 'No PubNub Client instance can be found. Please ensure that you ' + 'have called `PubNubProvider` higher up in your tree.') : void 0; return context.client; } exports.PubNubConsumer = PubNubConsumer; exports.PubNubProvider = PubNubProvider; exports.usePubNub = usePubNub; //# sourceMappingURL=pubnub-react.cjs.development.js.map