UNPKG

react-errorr

Version:

A react popup error fully customizable

73 lines (72 loc) 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const ErrorrContext_contectCreatior_1 = tslib_1.__importDefault(require("./ErrorrContext.contectCreatior")); const lodash_1 = tslib_1.__importDefault(require("lodash")); const data_1 = require("../data/data"); const ErrorrContextProvider = ({ children, options }) => { const errorrs = (0, react_1.useRef)([]); const getOptions = (errorrOptions) => { const defaultOptions = JSON.parse(JSON.stringify(data_1.defaultErrorOptions)); const baseOptions = lodash_1.default.merge(defaultOptions, options || {}); return lodash_1.default.merge(baseOptions, errorrOptions || {}); }; const loadErrorr = (errorr) => { errorr.options = getOptions(errorr.options || {}); errorrs.current = [...errorrs.current, errorr]; }; const updateErrorr = (errorr) => { errorr.options = getOptions(errorr.options || {}); errorrs.current = errorrs.current.map((stateErrorr) => stateErrorr.name === errorr.name ? errorr : stateErrorr); }; const forceRemoveErrorr = (0, react_1.useCallback)((name) => { const foundErrorr = errorrs.current.find((errorr) => errorr.name === name); if (!foundErrorr) { if (options?.debug) console.error(`Errorr not found for name: ${name}`); return; } foundErrorr.forceRemove(); errorrs.current = errorrs.current.map((errorr) => { if (errorr.name === name) { errorr.isActive = false; } return errorr; }); }, [options?.debug]); const activateErrorr = (0, react_1.useCallback)((name) => { const foundErrorr = errorrs.current.find((errorr) => errorr.name === name); if (!foundErrorr) { if (options?.debug) console.error(`Errorr not found for name: ${name}`); return; } foundErrorr.activate(); errorrs.current = errorrs.current.map((errorr) => { if (errorr.name === name) { errorr.isActive = true; } return errorr; }); setTimeout(() => { errorrs.current = errorrs.current.map((errorr) => { if (errorr.name === name) { errorr.isActive = false; } return errorr; }); }, foundErrorr.options.activeTime); }, [options?.debug]); const contextValue = { errorrs: errorrs.current, loadErrorr, updateErrorr, activateErrorr, forceRemoveErrorr, getOptions, }; return ((0, jsx_runtime_1.jsx)(ErrorrContext_contectCreatior_1.default.Provider, { value: contextValue, children: children })); }; exports.default = ErrorrContextProvider;