UNPKG

@chec/react-commercejs-hooks

Version:

ReactJS hooks for using Commerce.js with React projects

44 lines (43 loc) 1.68 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var useCommerce_1 = __importDefault(require("../useCommerce")); var useCheckout_1 = __importDefault(require("./useCheckout")); function useShippingOptions(country, region) { var _a = react_1.useState(null), options = _a[0], setOptions = _a[1]; var checkout = useCheckout_1.default(); var commerce = useCommerce_1.default(); var previousArgs = react_1.useRef(null); react_1.useEffect(function () { if (!commerce || !checkout || !country) { return; } if (previousArgs.current) { var prevCountry = previousArgs.current.country; var prevRegion = previousArgs.current.region; if (prevCountry !== country && prevRegion === region) { setOptions(null); previousArgs.current = { country: country, region: region }; return; } } previousArgs.current = { country: country, region: region }; commerce.checkout.getShippingOptions(checkout.id, { country: country, region: region, }) .then(setOptions) .catch(function (_a) { var statusCode = _a.statusCode; // If doesnt exist, set to null. if (statusCode === 404) { setOptions(null); } }); }, [commerce, checkout, country, region]); return options; } exports.default = useShippingOptions;