pubnub-react
Version:
Publish & Subscribe Real-time Messaging with PubNub
53 lines (43 loc) • 2.01 kB
JavaScript
;
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