@shopify/react-network
Version:
A collection of components that allow you to set common HTTP headers from within your React application.
27 lines (26 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
var react_effect_1 = require("@shopify/react-effect");
var context_1 = require("./context");
function useNetworkEffect(perform) {
var network = react_1.useContext(context_1.NetworkContext);
react_effect_1.useServerEffect(function () {
if (network != null) {
return perform(network);
}
}, network ? network.effect : undefined);
}
exports.useNetworkEffect = useNetworkEffect;
function useCspDirective(directive, source) {
useNetworkEffect(function (network) { return network.addCspDirective(directive, source); });
}
exports.useCspDirective = useCspDirective;
function useStatus(code) {
useNetworkEffect(function (network) { return network.addStatusCode(code); });
}
exports.useStatus = useStatus;
function useRedirect(url, status) {
useNetworkEffect(function (network) { return network.redirectTo(url, status); });
}
exports.useRedirect = useRedirect;