omnipay-savings-sdk
Version:
Omnipay Savings SDK
28 lines (27 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useSDKConfig = exports.SDKConfigProvider = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const services_1 = require("../services");
const SDKConfigContext = (0, react_1.createContext)(null);
const SDKConfigProvider = ({ config, children, }) => {
(0, react_1.useEffect)(() => {
// Set the global token expiry handler when the provider mounts
(0, services_1.setTokenExpiryHandler)(config.onTokenExpired || null);
// Cleanup when the provider unmounts
return () => {
(0, services_1.setTokenExpiryHandler)(null);
};
}, [config.onTokenExpired]);
return ((0, jsx_runtime_1.jsx)(SDKConfigContext.Provider, Object.assign({ value: config }, { children: children })));
};
exports.SDKConfigProvider = SDKConfigProvider;
const useSDKConfig = () => {
const context = (0, react_1.useContext)(SDKConfigContext);
if (!context) {
throw new Error('useSDKConfig must be used within an SDKConfigProvider');
}
return context;
};
exports.useSDKConfig = useSDKConfig;