@xylabs/sdk-react 2.8.4 → 2.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/BasePage/BasePage.js +2 -2
- package/dist/components/BasePage/BasePage.js.map +1 -1
- package/dist/components/BasePage/BasePage.stories.js +4 -0
- package/dist/components/BasePage/BasePage.stories.js.map +1 -1
- package/dist/components/BasePage/BasePageProps.d.ts +2 -0
- package/dist/components/Experiments/Experiment.d.ts +1 -0
- package/dist/components/Experiments/Experiment.js.map +1 -1
- package/dist/components/Experiments/Experiments.d.ts +3 -8
- package/dist/components/Experiments/Experiments.js +18 -2
- package/dist/components/Experiments/Experiments.js.map +1 -1
- package/dist/components/Experiments/Experiments.stories.d.ts +6 -0
- package/dist/components/Experiments/Experiments.stories.js +27 -0
- package/dist/components/Experiments/Experiments.stories.js.map +1 -0
- package/dist/components/Experiments/ExperimentsDebugger.d.ts +3 -0
- package/dist/components/Experiments/ExperimentsDebugger.js +37 -0
- package/dist/components/Experiments/ExperimentsDebugger.js.map +1 -0
- package/dist/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
- package/dist/components/Experiments/ExperimentsDebugger.stories.js +20 -0
- package/dist/components/Experiments/ExperimentsDebugger.stories.js.map +1 -0
- package/dist/components/Experiments/ExperimentsProps.d.ts +7 -0
- package/dist/components/Experiments/ExperimentsProps.js +2 -0
- package/dist/components/Experiments/ExperimentsProps.js.map +1 -0
- package/dist/components/Experiments/index.d.ts +2 -1
- package/dist/components/Experiments/index.js +2 -1
- package/dist/components/Experiments/index.js.map +1 -1
- package/dist/components/Experiments/models/index.d.ts +12 -0
- package/dist/components/Experiments/models/index.js +3 -0
- package/dist/components/Experiments/models/index.js.map +1 -0
- package/dist/components/dialogs/ErrorDialog.d.ts +1 -1
- package/dist/components/dialogs/ErrorDialog.js.map +1 -1
- package/dist/esm2017/components/BasePage/BasePageProps.d.ts +2 -0
- package/dist/esm2017/components/Experiments/Experiment.d.ts +1 -0
- package/dist/esm2017/components/Experiments/Experiments.d.ts +3 -8
- package/dist/esm2017/components/Experiments/Experiments.stories.d.ts +6 -0
- package/dist/esm2017/components/Experiments/ExperimentsDebugger.d.ts +3 -0
- package/dist/esm2017/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
- package/dist/esm2017/components/Experiments/ExperimentsProps.d.ts +7 -0
- package/dist/esm2017/components/Experiments/index.d.ts +2 -1
- package/dist/esm2017/components/Experiments/models/index.d.ts +12 -0
- package/dist/esm2017/components/dialogs/ErrorDialog.d.ts +1 -1
- package/dist/esm2017/hooks/index.d.ts +1 -0
- package/dist/esm2017/hooks/useLocalStorage.d.ts +1 -0
- package/dist/esm2017/index.js +84 -6
- package/dist/esm2017/index.js.map +1 -1
- package/dist/esm5/components/BasePage/BasePageProps.d.ts +2 -0
- package/dist/esm5/components/Experiments/Experiment.d.ts +1 -0
- package/dist/esm5/components/Experiments/Experiments.d.ts +3 -8
- package/dist/esm5/components/Experiments/Experiments.stories.d.ts +6 -0
- package/dist/esm5/components/Experiments/ExperimentsDebugger.d.ts +3 -0
- package/dist/esm5/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
- package/dist/esm5/components/Experiments/ExperimentsProps.d.ts +7 -0
- package/dist/esm5/components/Experiments/index.d.ts +2 -1
- package/dist/esm5/components/Experiments/models/index.d.ts +12 -0
- package/dist/esm5/components/dialogs/ErrorDialog.d.ts +1 -1
- package/dist/esm5/hooks/index.d.ts +1 -0
- package/dist/esm5/hooks/useLocalStorage.d.ts +1 -0
- package/dist/esm5/index.js +84 -6
- package/dist/esm5/index.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useLocalStorage.d.ts +1 -0
- package/dist/hooks/useLocalStorage.js +23 -0
- package/dist/hooks/useLocalStorage.js.map +1 -0
- package/dist/node/components/BasePage/BasePageProps.d.ts +2 -0
- package/dist/node/components/Experiments/Experiment.d.ts +1 -0
- package/dist/node/components/Experiments/Experiments.d.ts +3 -8
- package/dist/node/components/Experiments/Experiments.stories.d.ts +6 -0
- package/dist/node/components/Experiments/ExperimentsDebugger.d.ts +3 -0
- package/dist/node/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
- package/dist/node/components/Experiments/ExperimentsProps.d.ts +7 -0
- package/dist/node/components/Experiments/index.d.ts +2 -1
- package/dist/node/components/Experiments/models/index.d.ts +12 -0
- package/dist/node/components/dialogs/ErrorDialog.d.ts +1 -1
- package/dist/node/hooks/index.d.ts +1 -0
- package/dist/node/hooks/useLocalStorage.d.ts +1 -0
- package/dist/node/index.js +84 -4
- package/dist/node/index.js.map +1 -1
- package/dist/node-esm/components/BasePage/BasePageProps.d.ts +2 -0
- package/dist/node-esm/components/Experiments/Experiment.d.ts +1 -0
- package/dist/node-esm/components/Experiments/Experiments.d.ts +3 -8
- package/dist/node-esm/components/Experiments/Experiments.stories.d.ts +6 -0
- package/dist/node-esm/components/Experiments/ExperimentsDebugger.d.ts +3 -0
- package/dist/node-esm/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
- package/dist/node-esm/components/Experiments/ExperimentsProps.d.ts +7 -0
- package/dist/node-esm/components/Experiments/index.d.ts +2 -1
- package/dist/node-esm/components/Experiments/models/index.d.ts +12 -0
- package/dist/node-esm/components/dialogs/ErrorDialog.d.ts +1 -1
- package/dist/node-esm/hooks/index.d.ts +1 -0
- package/dist/node-esm/hooks/useLocalStorage.d.ts +1 -0
- package/dist/node-esm/index.js +84 -6
- package/dist/node-esm/index.js.map +1 -1
- package/package.json +12 -13
- package/src/components/BasePage/BasePage.stories.tsx +5 -0
- package/src/components/BasePage/BasePage.tsx +3 -0
- package/src/components/BasePage/BasePageProps.ts +2 -0
- package/src/components/Experiments/Experiment.tsx +1 -0
- package/src/components/Experiments/Experiments.stories.tsx +35 -0
- package/src/components/Experiments/Experiments.tsx +21 -10
- package/src/components/Experiments/ExperimentsDebugger.stories.tsx +24 -0
- package/src/components/Experiments/ExperimentsDebugger.tsx +71 -0
- package/src/components/Experiments/ExperimentsProps.ts +9 -0
- package/src/components/Experiments/index.tsx +2 -1
- package/src/components/Experiments/models/index.ts +8 -0
- package/src/components/dialogs/ErrorDialog.tsx +0 -1
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useLocalStorage.ts +24 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const OutcomesLocalStorageKey = "outcomes";
|
|
2
|
+
export declare const ExperimentsLocalStorageKey = "experiments";
|
|
3
|
+
export declare type OutcomesData = Record<string, number>;
|
|
4
|
+
export declare type ExperimentsData = Record<string, ExperimentData>;
|
|
5
|
+
export declare type ExperimentData = {
|
|
6
|
+
totalWeight: number;
|
|
7
|
+
variants: VariantData[];
|
|
8
|
+
};
|
|
9
|
+
export declare type VariantData = {
|
|
10
|
+
weight: number;
|
|
11
|
+
name?: string;
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useLocalStorage: <T>(key: string, defaultValue: T) => [T, (value: T) => void];
|
package/dist/node/index.js
CHANGED
|
@@ -144,6 +144,16 @@ function __read(o, n) {
|
|
|
144
144
|
finally { if (e) throw e.error; }
|
|
145
145
|
}
|
|
146
146
|
return ar;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function __spreadArray(to, from, pack) {
|
|
150
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
151
|
+
if (ar || !(i in from)) {
|
|
152
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
153
|
+
ar[i] = from[i];
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
147
157
|
}
|
|
148
158
|
|
|
149
159
|
var BusyCircularProgress = function (_a) {
|
|
@@ -2155,10 +2165,10 @@ var InvertableThemeProvider = function (_a) {
|
|
|
2155
2165
|
};
|
|
2156
2166
|
|
|
2157
2167
|
var BasePage = function (_a) {
|
|
2158
|
-
var disableGutters = _a.disableGutters, children = _a.children, beta = _a.beta, container = _a.container, hideFooter = _a.hideFooter, appFooter = _a.appFooter, appBar = _a.appBar, cookieConsent = _a.cookieConsent, hideAppBar = _a.hideAppBar, _b = _a.noindex, noindex = _b === void 0 ? false : _b, _c = _a.scrollToTopButton, scrollToTopButton = _c === void 0 ? false : _c, title = _a.title, props = __rest(_a, ["disableGutters", "children", "beta", "container", "hideFooter", "appFooter", "appBar", "cookieConsent", "hideAppBar", "noindex", "scrollToTopButton", "title"]);
|
|
2168
|
+
var disableGutters = _a.disableGutters, children = _a.children, beta = _a.beta, container = _a.container, hideFooter = _a.hideFooter, appFooter = _a.appFooter, appBar = _a.appBar, cookieConsent = _a.cookieConsent, filterBar = _a.filterBar, hideAppBar = _a.hideAppBar, hideFilterBar = _a.hideFilterBar, _b = _a.noindex, noindex = _b === void 0 ? false : _b, _c = _a.scrollToTopButton, scrollToTopButton = _c === void 0 ? false : _c, title = _a.title, props = __rest(_a, ["disableGutters", "children", "beta", "container", "hideFooter", "appFooter", "appBar", "cookieConsent", "filterBar", "hideAppBar", "hideFilterBar", "noindex", "scrollToTopButton", "title"]);
|
|
2159
2169
|
var theme = material.useTheme();
|
|
2160
2170
|
var scrollToTopAnchorId = 'scroll-to-top-anchor';
|
|
2161
|
-
return (jsxRuntime.jsxs(FlexCol, __assign({ justifyContent: "flex-start", color: theme.palette.text.primary, alignItems: "stretch", width: "100%", maxWidth: "100vw", minHeight: "100vh" }, props, { children: [jsxRuntime.jsx(reactHelmet.Helmet, __assign({ title: title }, { children: noindex ? jsxRuntime.jsx("meta", { content: "noindex", name: "robots" }, void 0) : null }), void 0), scrollToTopButton ? jsxRuntime.jsx("div", { id: scrollToTopAnchorId }, void 0) : null, hideAppBar ? null : appBar, beta ? (jsxRuntime.jsx(FlexRow, __assign({ margin: 1, position: "absolute", top: 0, left: 0, bgcolor: "#cccccc88", paddingX: 1, style: { opacity: 0.5 } }, { children: jsxRuntime.jsx(material.Typography, __assign({ variant: "body2" }, { children: "Important: This page is a Beta page. It is possible that some information may not be correct." }), void 0) }), void 0)) : null, container ? (jsxRuntime.jsx(material.Container, __assign({ style: { alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1 }, maxWidth: container, disableGutters: disableGutters }, { children: children }), void 0)) : (children), hideFooter ? null : jsxRuntime.jsx("footer", { children: appFooter }, void 0), cookieConsent !== null && cookieConsent !== void 0 ? cookieConsent : (jsxRuntime.jsx(material.ScopedCssBaseline, { children: jsxRuntime.jsx(InvertableThemeProvider, __assign({ invert: true }, { children: jsxRuntime.jsx(CookieConsent, { borderRadius: 0 }, void 0) }), void 0) }, void 0)), scrollToTopButton ? (jsxRuntime.jsx(ScrollToTopButton, __assign({ anchorId: scrollToTopAnchorId }, { children: jsxRuntime.jsx(material.Fab, __assign({ "aria-label": "scroll to top", color: "secondary", size: "small" }, { children: jsxRuntime.jsx(iconsMaterial.KeyboardArrowUp, {}, void 0) }), void 0) }), void 0)) : null] }), void 0));
|
|
2171
|
+
return (jsxRuntime.jsxs(FlexCol, __assign({ justifyContent: "flex-start", color: theme.palette.text.primary, alignItems: "stretch", width: "100%", maxWidth: "100vw", minHeight: "100vh" }, props, { children: [jsxRuntime.jsx(reactHelmet.Helmet, __assign({ title: title }, { children: noindex ? jsxRuntime.jsx("meta", { content: "noindex", name: "robots" }, void 0) : null }), void 0), scrollToTopButton ? jsxRuntime.jsx("div", { id: scrollToTopAnchorId }, void 0) : null, hideAppBar ? null : appBar, hideFilterBar ? null : filterBar, beta ? (jsxRuntime.jsx(FlexRow, __assign({ margin: 1, position: "absolute", top: 0, left: 0, bgcolor: "#cccccc88", paddingX: 1, style: { opacity: 0.5 } }, { children: jsxRuntime.jsx(material.Typography, __assign({ variant: "body2" }, { children: "Important: This page is a Beta page. It is possible that some information may not be correct." }), void 0) }), void 0)) : null, container ? (jsxRuntime.jsx(material.Container, __assign({ style: { alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1 }, maxWidth: container, disableGutters: disableGutters }, { children: children }), void 0)) : (children), hideFooter ? null : jsxRuntime.jsx("footer", { children: appFooter }, void 0), cookieConsent !== null && cookieConsent !== void 0 ? cookieConsent : (jsxRuntime.jsx(material.ScopedCssBaseline, { children: jsxRuntime.jsx(InvertableThemeProvider, __assign({ invert: true }, { children: jsxRuntime.jsx(CookieConsent, { borderRadius: 0 }, void 0) }), void 0) }, void 0)), scrollToTopButton ? (jsxRuntime.jsx(ScrollToTopButton, __assign({ anchorId: scrollToTopAnchorId }, { children: jsxRuntime.jsx(material.Fab, __assign({ "aria-label": "scroll to top", color: "secondary", size: "small" }, { children: jsxRuntime.jsx(iconsMaterial.KeyboardArrowUp, {}, void 0) }), void 0) }), void 0)) : null] }), void 0));
|
|
2162
2172
|
};
|
|
2163
2173
|
|
|
2164
2174
|
var getPartialPath = function (pathParts, index) {
|
|
@@ -2238,6 +2248,26 @@ var useBreakpoint = function () {
|
|
|
2238
2248
|
}
|
|
2239
2249
|
};
|
|
2240
2250
|
|
|
2251
|
+
var useLocalStorage = function (key, defaultValue) {
|
|
2252
|
+
var _a = __read(react.useState(function () {
|
|
2253
|
+
try {
|
|
2254
|
+
var item = getLocalStorageObject(key);
|
|
2255
|
+
return item || defaultValue;
|
|
2256
|
+
}
|
|
2257
|
+
catch (ex) {
|
|
2258
|
+
//Error is already logged
|
|
2259
|
+
return defaultValue;
|
|
2260
|
+
}
|
|
2261
|
+
}), 2), storedValue = _a[0], setStoredValue = _a[1];
|
|
2262
|
+
var setValue = function (value) {
|
|
2263
|
+
console.log('setValue', value);
|
|
2264
|
+
setStoredValue(value);
|
|
2265
|
+
setLocalStorageObject(key, value);
|
|
2266
|
+
console.log('getValue from ls', getLocalStorageObject(key));
|
|
2267
|
+
};
|
|
2268
|
+
return [storedValue, setValue];
|
|
2269
|
+
};
|
|
2270
|
+
|
|
2241
2271
|
var useMounted = function () {
|
|
2242
2272
|
var _a = __read(react.useState(true), 2), mounted = _a[0], setMounted = _a[1];
|
|
2243
2273
|
react.useEffect(function () {
|
|
@@ -2361,14 +2391,17 @@ var Experiment = function (props) {
|
|
|
2361
2391
|
return jsxRuntime.jsx(jsxRuntime.Fragment, { children: children }, void 0);
|
|
2362
2392
|
};
|
|
2363
2393
|
|
|
2394
|
+
var OutcomesLocalStorageKey = 'outcomes';
|
|
2395
|
+
var ExperimentsLocalStorageKey = 'experiments';
|
|
2396
|
+
|
|
2364
2397
|
var defaultLocalStorageKey = 'testData';
|
|
2365
2398
|
var experimentsTestData = {};
|
|
2366
2399
|
var outcomes = {}; //prevent multi-outcome
|
|
2367
2400
|
var saveOutcomes = function () {
|
|
2368
|
-
setLocalStorageObject(
|
|
2401
|
+
setLocalStorageObject(OutcomesLocalStorageKey, outcomes);
|
|
2369
2402
|
};
|
|
2370
2403
|
var loadOutcomes = function () {
|
|
2371
|
-
outcomes = getLocalStorageObject(
|
|
2404
|
+
outcomes = getLocalStorageObject(OutcomesLocalStorageKey);
|
|
2372
2405
|
};
|
|
2373
2406
|
var mergeData = function (data, log) {
|
|
2374
2407
|
var dataArray = [];
|
|
@@ -2412,6 +2445,20 @@ var calcTotalWeight = function (childList) {
|
|
|
2412
2445
|
}
|
|
2413
2446
|
return totalWeight;
|
|
2414
2447
|
};
|
|
2448
|
+
var saveExperimentDebugRanges = function (name, totalWeight, childList) {
|
|
2449
|
+
var experiments = getLocalStorageObject(ExperimentsLocalStorageKey) || {};
|
|
2450
|
+
experiments[name] = {
|
|
2451
|
+
totalWeight: totalWeight,
|
|
2452
|
+
variants: childList.map(function (child) {
|
|
2453
|
+
var _a;
|
|
2454
|
+
return ({
|
|
2455
|
+
name: (_a = child.key) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
2456
|
+
weight: child.props.weight,
|
|
2457
|
+
});
|
|
2458
|
+
}),
|
|
2459
|
+
};
|
|
2460
|
+
setLocalStorageObject(ExperimentsLocalStorageKey, experiments);
|
|
2461
|
+
};
|
|
2415
2462
|
var Experiments = function (props) {
|
|
2416
2463
|
var e_2, _a;
|
|
2417
2464
|
var _b, _c;
|
|
@@ -2422,6 +2469,7 @@ var Experiments = function (props) {
|
|
|
2422
2469
|
var localStorageKey = buildLocalStorageKey(localStorageProp);
|
|
2423
2470
|
var childList = makeChildrenArray(children);
|
|
2424
2471
|
var totalWeight = calcTotalWeight(childList);
|
|
2472
|
+
saveExperimentDebugRanges(name, totalWeight, childList);
|
|
2425
2473
|
var firstTime = outcomes[name] === undefined;
|
|
2426
2474
|
var targetWeight = (_b = outcomes[name]) !== null && _b !== void 0 ? _b : Math.random() * totalWeight;
|
|
2427
2475
|
outcomes[name] = targetWeight;
|
|
@@ -2457,6 +2505,36 @@ var Experiments = function (props) {
|
|
|
2457
2505
|
throw new Error('Experiment Choice Failed');
|
|
2458
2506
|
};
|
|
2459
2507
|
|
|
2508
|
+
var ExperimentsDebugger = function (_a) {
|
|
2509
|
+
var props = __rest(_a, []);
|
|
2510
|
+
var _b = __read(useLocalStorage(ExperimentsLocalStorageKey, {}), 1), experiments = _b[0];
|
|
2511
|
+
var _c = __read(useLocalStorage(OutcomesLocalStorageKey, {}), 2), outcomes = _c[0], setOutcomes = _c[1];
|
|
2512
|
+
var sumUpVariants = function (items) { return items.reduce(function (acc, curr) { return acc + curr.weight; }, 0); };
|
|
2513
|
+
var experimentEntries = Object.entries(experiments);
|
|
2514
|
+
if (!experiments || !experimentEntries.length) {
|
|
2515
|
+
return (jsxRuntime.jsxs(FlexCol, __assign({ alignItems: "stretch" }, props, { children: [jsxRuntime.jsx(material.Typography, __assign({ variant: "subtitle1" }, { children: "No Experiments loaded" }), void 0), jsxRuntime.jsx(material.Typography, __assign({ variant: "subtitle2" }, { children: "Visit a page with an experiment to load the data" }), void 0)] }), void 0));
|
|
2516
|
+
}
|
|
2517
|
+
return (jsxRuntime.jsx(FlexCol, __assign({ alignItems: "stretch" }, props, { children: Object.entries(experiments).map(function (data) {
|
|
2518
|
+
var _a = __read(data, 2), name = _a[0], experiment = _a[1];
|
|
2519
|
+
var outcome = (outcomes[name] || 0);
|
|
2520
|
+
var marks = __spreadArray([
|
|
2521
|
+
{ label: "".concat(experiment.variants[0].name, " | ").concat(experiment.variants[0].weight), value: 0 }
|
|
2522
|
+
], __read(experiment.variants.map(function (_a, index) {
|
|
2523
|
+
var weight = _a.weight;
|
|
2524
|
+
return ({
|
|
2525
|
+
label: index === experiment.variants.length - 1 ? 'End' : "".concat(experiment.variants[index + 1].name, " | ").concat(weight),
|
|
2526
|
+
value: index === 0 ? weight : sumUpVariants(experiment.variants.slice(0, index + 1)),
|
|
2527
|
+
});
|
|
2528
|
+
})), false);
|
|
2529
|
+
return (jsxRuntime.jsxs(FlexCol, __assign({ alignItems: "stretch", paddingX: 4, marginBottom: 4 }, props, { children: [jsxRuntime.jsxs(FlexRow, { children: [name, ":\u00A0", outcome] }, void 0), jsxRuntime.jsx(FlexRow, { children: jsxRuntime.jsx(material.Slider, { "aria-label": "Experiment ".concat(name), defaultValue: outcome, value: outcome, marks: marks, onChange: function (e, value) {
|
|
2530
|
+
var truncated = Number((Array.isArray(value) ? value[0] : value).toFixed(2));
|
|
2531
|
+
outcomes[name] = truncated;
|
|
2532
|
+
// Spread operator triggers rerender
|
|
2533
|
+
setOutcomes(__assign({}, outcomes));
|
|
2534
|
+
} }, void 0) }, void 0)] }), "experiment-".concat(name)));
|
|
2535
|
+
}) }), void 0));
|
|
2536
|
+
};
|
|
2537
|
+
|
|
2460
2538
|
var LinkToEx = function (_a) {
|
|
2461
2539
|
var to = _a.to, props = __rest(_a, ["to"]);
|
|
2462
2540
|
return jsxRuntime.jsx(material.Link, __assign({ component: reactRouterDom.Link, to: to }, props), void 0);
|
|
@@ -2581,6 +2659,7 @@ exports.EthersContext = EthersContext;
|
|
|
2581
2659
|
exports.EthersLoader = EthersLoader;
|
|
2582
2660
|
exports.Experiment = Experiment;
|
|
2583
2661
|
exports.Experiments = Experiments;
|
|
2662
|
+
exports.ExperimentsDebugger = ExperimentsDebugger;
|
|
2584
2663
|
exports.FacebookCustomEvent = FacebookCustomEvent;
|
|
2585
2664
|
exports.FacebookStandardEvents = FacebookStandardEvents;
|
|
2586
2665
|
exports.Fbq = Fbq;
|
|
@@ -2634,6 +2713,7 @@ exports.setSessionStorageObject = setSessionStorageObject;
|
|
|
2634
2713
|
exports.useAsyncEffect = useAsyncEffect;
|
|
2635
2714
|
exports.useBreakpoint = useBreakpoint;
|
|
2636
2715
|
exports.useCookieConsent = useCookieConsent;
|
|
2716
|
+
exports.useLocalStorage = useLocalStorage;
|
|
2637
2717
|
exports.useMounted = useMounted;
|
|
2638
2718
|
exports.useNavigateToEthAddress = useNavigateToEthAddress;
|
|
2639
2719
|
exports.useSpacing = useSpacing;
|