@shopify/react-network
Version:
A collection of components that allow you to set common HTTP headers from within your React application
37 lines (30 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var reactHooks = require('@shopify/react-hooks');
var hooks = require('./hooks.js');
var context = require('./context.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
function NetworkUniversalProvider({
children,
headers: headerNames
}) {
const network = hooks.useNetworkManager();
const universalDetails = reactHooks.useLazyRef(() => {
if (!network) {
return null;
}
const result = {
headers: {}
};
headerNames.forEach(header => {
result.headers[header.toLowerCase()] = network.getHeader(header);
});
return result;
}).current;
return /*#__PURE__*/React__default["default"].createElement(context.NetworkUniversalProvider, {
value: universalDetails
}, children);
}
exports.NetworkUniversalProvider = NetworkUniversalProvider;