@dcl/hooks 0.3.1-20251216163744.commit-acbd44f → 0.3.2-20251217172925.commit-b80457e

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.
Files changed (84) hide show
  1. package/esm/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.js +1 -1
  2. package/esm/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.js.map +1 -1
  3. package/package.json +7 -13
  4. package/cjs/contexts/analytics/AnalyticsProvider.d.ts +0 -5
  5. package/cjs/contexts/analytics/AnalyticsProvider.js +0 -67
  6. package/cjs/contexts/analytics/AnalyticsProvider.js.map +0 -1
  7. package/cjs/contexts/analytics/types.d.ts +0 -15
  8. package/cjs/contexts/analytics/types.js +0 -3
  9. package/cjs/contexts/analytics/types.js.map +0 -1
  10. package/cjs/contexts/index.d.ts +0 -2
  11. package/cjs/contexts/index.js +0 -5
  12. package/cjs/contexts/index.js.map +0 -1
  13. package/cjs/hooks/index.d.ts +0 -14
  14. package/cjs/hooks/index.js +0 -27
  15. package/cjs/hooks/index.js.map +0 -1
  16. package/cjs/hooks/useAdvancedUserAgentData/index.d.ts +0 -2
  17. package/cjs/hooks/useAdvancedUserAgentData/index.js +0 -6
  18. package/cjs/hooks/useAdvancedUserAgentData/index.js.map +0 -1
  19. package/cjs/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.d.ts +0 -9
  20. package/cjs/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.js +0 -63
  21. package/cjs/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.js.map +0 -1
  22. package/cjs/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.type.d.ts +0 -19
  23. package/cjs/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.type.js +0 -3
  24. package/cjs/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.type.js.map +0 -1
  25. package/cjs/hooks/useAnalytics.d.ts +0 -3
  26. package/cjs/hooks/useAnalytics.js +0 -27
  27. package/cjs/hooks/useAnalytics.js.map +0 -1
  28. package/cjs/hooks/useAsyncEffect/useAsyncEffect.type.d.ts +0 -0
  29. package/cjs/hooks/useAsyncEffect/useAsyncEffect.type.js +0 -2
  30. package/cjs/hooks/useAsyncEffect/useAsyncEffect.type.js.map +0 -1
  31. package/cjs/hooks/useAsyncEffect.d.ts +0 -9
  32. package/cjs/hooks/useAsyncEffect.js +0 -30
  33. package/cjs/hooks/useAsyncEffect.js.map +0 -1
  34. package/cjs/hooks/useAsyncMemo.d.ts +0 -3
  35. package/cjs/hooks/useAsyncMemo.js +0 -8
  36. package/cjs/hooks/useAsyncMemo.js.map +0 -1
  37. package/cjs/hooks/useAsyncState/index.d.ts +0 -2
  38. package/cjs/hooks/useAsyncState/index.js +0 -7
  39. package/cjs/hooks/useAsyncState/index.js.map +0 -1
  40. package/cjs/hooks/useAsyncState/useAsyncState.d.ts +0 -23
  41. package/cjs/hooks/useAsyncState/useAsyncState.js +0 -99
  42. package/cjs/hooks/useAsyncState/useAsyncState.js.map +0 -1
  43. package/cjs/hooks/useAsyncState/useAsyncState.type.d.ts +0 -25
  44. package/cjs/hooks/useAsyncState/useAsyncState.type.js +0 -3
  45. package/cjs/hooks/useAsyncState/useAsyncState.type.js.map +0 -1
  46. package/cjs/hooks/useAsyncTask/index.d.ts +0 -2
  47. package/cjs/hooks/useAsyncTask/index.js +0 -6
  48. package/cjs/hooks/useAsyncTask/index.js.map +0 -1
  49. package/cjs/hooks/useAsyncTask/useAsyncTask.d.ts +0 -9
  50. package/cjs/hooks/useAsyncTask/useAsyncTask.js +0 -52
  51. package/cjs/hooks/useAsyncTask/useAsyncTask.js.map +0 -1
  52. package/cjs/hooks/useAsyncTask/useAsyncTask.type.d.ts +0 -5
  53. package/cjs/hooks/useAsyncTask/useAsyncTask.type.js +0 -3
  54. package/cjs/hooks/useAsyncTask/useAsyncTask.type.js.map +0 -1
  55. package/cjs/hooks/useAsyncTasks/index.d.ts +0 -2
  56. package/cjs/hooks/useAsyncTasks/index.js +0 -6
  57. package/cjs/hooks/useAsyncTasks/index.js.map +0 -1
  58. package/cjs/hooks/useAsyncTasks/useAsyncTasks.d.ts +0 -10
  59. package/cjs/hooks/useAsyncTasks/useAsyncTasks.js +0 -35
  60. package/cjs/hooks/useAsyncTasks/useAsyncTasks.js.map +0 -1
  61. package/cjs/hooks/useAsyncTasks/useAsyncTasks.type.d.ts +0 -2
  62. package/cjs/hooks/useAsyncTasks/useAsyncTasks.type.js +0 -3
  63. package/cjs/hooks/useAsyncTasks/useAsyncTasks.type.js.map +0 -1
  64. package/cjs/hooks/useInfiniteScroll.d.ts +0 -25
  65. package/cjs/hooks/useInfiniteScroll.js +0 -45
  66. package/cjs/hooks/useInfiniteScroll.js.map +0 -1
  67. package/cjs/hooks/usePageTracking.d.ts +0 -2
  68. package/cjs/hooks/usePageTracking.js +0 -13
  69. package/cjs/hooks/usePageTracking.js.map +0 -1
  70. package/cjs/hooks/usePatchState.d.ts +0 -7
  71. package/cjs/hooks/usePatchState.js +0 -18
  72. package/cjs/hooks/usePatchState.js.map +0 -1
  73. package/cjs/index.d.ts +0 -2
  74. package/cjs/index.js +0 -6
  75. package/cjs/index.js.map +0 -1
  76. package/cjs/utils/development/sentry.d.ts +0 -5
  77. package/cjs/utils/development/sentry.js +0 -15
  78. package/cjs/utils/development/sentry.js.map +0 -1
  79. package/cjs/utils/isAppleSilicon.d.ts +0 -2
  80. package/cjs/utils/isAppleSilicon.js +0 -10
  81. package/cjs/utils/isAppleSilicon.js.map +0 -1
  82. package/esm/utils/isAppleSilicon.d.ts +0 -2
  83. package/esm/utils/isAppleSilicon.js +0 -6
  84. package/esm/utils/isAppleSilicon.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { useState } from "react";
2
2
  import { UAParser } from "ua-parser-js";
3
- import { isAppleSilicon } from "ua-parser-js/helpers";
3
+ import { isAppleSilicon } from "ua-parser-js/device-detection";
4
4
  import { useAsyncEffect } from "../useAsyncEffect";
5
5
  const DEFAULT_VALUE = "Unknown";
6
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"useAdvancedUserAgentData.js","sourceRoot":"","sources":["../../../src/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,MAAM,aAAa,GAAG,SAAS,CAAA;AAE/B;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IAItC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAE3D,cAAc,CAAC,KAAK,IAAI,EAAE;QACxB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;QAE7B,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,aAAa;YAC1C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,aAAa;SACjD,CAAA;QACD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa;YACzC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,aAAa;SAChD,CAAA;QACD,MAAM,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjE,MAAM,CAAC,eAAe,EAAE;YACxB,EAAE,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE;YAC5B,EAAE,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE;SAC9B,CAAC,CAAA;QAEF,MAAM,EAAE,GAAG;YACT,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,aAAa;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,aAAa;SACzC,CAAA;QAED,IAAI,YAAoB,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,YAAY;gBACV,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,cAAc,CAAC,qBAAqB,CAAC;oBAC1D,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,SAAS,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACrC,CAAC;QAED,OAAO,CAAC;YACN,OAAO;YACP,MAAM;YACN,EAAE;YACF,GAAG,EAAE;gBACH,YAAY;aACb;YACD,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;YACnC,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;SACpC,CAAC,CAAA;QAEF,UAAU,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAC1B,CAAC"}
1
+ {"version":3,"file":"useAdvancedUserAgentData.js","sourceRoot":"","sources":["../../../src/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,MAAM,aAAa,GAAG,SAAS,CAAA;AAE/B;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IAItC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAA2B,CAAA;IAE3D,cAAc,CAAC,KAAK,IAAI,EAAE;QACxB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;QAE7B,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,aAAa;YAC1C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,aAAa;SACjD,CAAA;QACD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,aAAa;YACzC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,aAAa;SAChD,CAAA;QACD,MAAM,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjE,MAAM,CAAC,eAAe,EAAE;YACxB,EAAE,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE;YAC5B,EAAE,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE;SAC9B,CAAC,CAAA;QAEF,MAAM,EAAE,GAAG;YACT,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,aAAa;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,aAAa;SACzC,CAAA;QAED,IAAI,YAAoB,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,YAAY;gBACV,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,cAAc,CAAC,qBAAqB,CAAC;oBAC1D,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,SAAS,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACrC,CAAC;QAED,OAAO,CAAC;YACN,OAAO;YACP,MAAM;YACN,EAAE;YACF,GAAG,EAAE;gBACH,YAAY;aACb;YACD,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;YACnC,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;SACpC,CAAC,CAAA;QAEF,UAAU,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,22 +1,15 @@
1
1
  {
2
2
  "name": "@dcl/hooks",
3
- "version": "0.3.1-20251216163744.commit-acbd44f",
4
- "main": "cjs/index.js",
3
+ "version": "0.3.2-20251217172925.commit-b80457e",
4
+ "type": "module",
5
+ "main": "esm/index.js",
5
6
  "module": "esm/index.js",
6
- "exports": {
7
- ".": {
8
- "import": "./esm/index.js",
9
- "require": "./cjs/index.js"
10
- }
11
- },
12
7
  "files": [
13
- "esm",
14
- "cjs"
8
+ "esm"
15
9
  ],
16
10
  "scripts": {
17
- "build": "npm run build:esm && npm run build:cjs",
11
+ "build": "npm run build:esm",
18
12
  "build:esm": "tsc -p tsconfig.esm.json",
19
- "build:cjs": "tsc -p tsconfig.cjs.json",
20
13
  "dev": "tsc --watch --outDir dist",
21
14
  "format": "prettier --write '**/*.{ts,tsx,js,jsx,json,md,mdx,css}'",
22
15
  "lint": "eslint ./src",
@@ -34,6 +27,7 @@
34
27
  "@types/jest": "^29.5.12",
35
28
  "@types/node": "^18.0.0",
36
29
  "@types/react": "^18.0.0",
30
+ "@types/ua-parser-js": "^0.7.39",
37
31
  "@typescript-eslint/eslint-plugin": "^7.15.0",
38
32
  "@typescript-eslint/parser": "^7.15.0",
39
33
  "eslint": "^8.57.0",
@@ -83,5 +77,5 @@
83
77
  "<rootDir>/test/setup.ts"
84
78
  ]
85
79
  },
86
- "commit": "acbd44f64c5d6eeaf694aacb89ec47739df43349"
80
+ "commit": "b80457eed09324aba7b7139148e685352f121722"
87
81
  }
@@ -1,5 +0,0 @@
1
- import React from "react";
2
- import type { AnalyticsContextType, AnalyticsProviderProps } from "./types";
3
- declare const AnalyticsContext: React.Context<AnalyticsContextType | null>;
4
- declare const AnalyticsProvider: React.FC<AnalyticsProviderProps>;
5
- export { AnalyticsContext, AnalyticsProvider };
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AnalyticsProvider = exports.AnalyticsContext = void 0;
4
- const tslib_1 = require("tslib");
5
- const react_1 = tslib_1.__importStar(require("react"));
6
- const isbot_1 = require("isbot");
7
- const useAsyncEffect_1 = require("../../hooks/useAsyncEffect");
8
- const AnalyticsContext = (0, react_1.createContext)(null);
9
- exports.AnalyticsContext = AnalyticsContext;
10
- const AnalyticsProvider = (props) => {
11
- const { writeKey, userId, traits, children } = props;
12
- const analyticsRef = (0, react_1.useRef)(null);
13
- const [isInitialized, setIsInitialized] = (0, react_1.useState)(false);
14
- (0, useAsyncEffect_1.useAsyncEffect)(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
15
- if (!writeKey) {
16
- console.log("[Analytics] No writeKey provided");
17
- return;
18
- }
19
- const userAgent = navigator.userAgent;
20
- const isBot = (0, isbot_1.isbot)(userAgent);
21
- if (isBot) {
22
- console.log("[Analytics] Skipping load: bot detected");
23
- return;
24
- }
25
- try {
26
- // eslint-disable-next-line @typescript-eslint/naming-convention
27
- const { AnalyticsBrowser } = yield Promise.resolve().then(() => tslib_1.__importStar(require("@segment/analytics-next")));
28
- analyticsRef.current = AnalyticsBrowser.load({ writeKey });
29
- if (userId) {
30
- analyticsRef.current.identify(userId, traits);
31
- }
32
- setIsInitialized(true);
33
- }
34
- catch (error) {
35
- console.error("[Analytics] Failed to initialize:", error);
36
- analyticsRef.current = null;
37
- }
38
- }), [writeKey, userId, traits]);
39
- const contextValue = (0, react_1.useMemo)(() => {
40
- if (!analyticsRef.current || !isInitialized) {
41
- return {
42
- isInitialized: false,
43
- track: () => { },
44
- identify: () => { },
45
- page: () => { },
46
- };
47
- }
48
- return {
49
- isInitialized: true,
50
- track: (event, payload) => {
51
- var _a;
52
- (_a = analyticsRef.current) === null || _a === void 0 ? void 0 : _a.track(event, payload);
53
- },
54
- identify: (id, traits) => {
55
- var _a;
56
- (_a = analyticsRef.current) === null || _a === void 0 ? void 0 : _a.identify(id, traits);
57
- },
58
- page: (name, props) => {
59
- var _a;
60
- (_a = analyticsRef.current) === null || _a === void 0 ? void 0 : _a.page(name, props);
61
- },
62
- };
63
- }, [isInitialized]);
64
- return (react_1.default.createElement(AnalyticsContext.Provider, { value: contextValue }, children));
65
- };
66
- exports.AnalyticsProvider = AnalyticsProvider;
67
- //# sourceMappingURL=AnalyticsProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["../../../src/contexts/analytics/AnalyticsProvider.tsx"],"names":[],"mappings":";;;;AAAA,uDAAuE;AAEvE,iCAA6B;AAC7B,+DAA2D;AAO3D,MAAM,gBAAgB,GAAG,IAAA,qBAAa,EAA8B,IAAI,CAAC,CAAA;AAsEhE,4CAAgB;AApEzB,MAAM,iBAAiB,GAAqC,CAC1D,KAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IACpD,MAAM,YAAY,GAAG,IAAA,cAAM,EAA0B,IAAI,CAAC,CAAA;IAC1D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEzD,IAAA,+BAAc,EAAC,GAAS,EAAE;QACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;YAC/C,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;QACrC,MAAM,KAAK,GAAG,IAAA,aAAK,EAAC,SAAS,CAAC,CAAA;QAE9B,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,gEAAgE;YAChE,MAAM,EAAE,gBAAgB,EAAE,GAAG,gEAAa,yBAAyB,GAAC,CAAA;YACpE,YAAY,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;YAE1D,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC/C,CAAC;YAED,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAA;YACzD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;QAC7B,CAAC;IACH,CAAC,CAAA,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAE9B,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAChC,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;YAC5C,OAAO;gBACL,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;gBACf,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;gBAClB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;aACf,CAAA;QACH,CAAC;QAED,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,CAAC,KAAa,EAAE,OAAsB,EAAE,EAAE;;gBAC/C,MAAA,YAAY,CAAC,OAAO,0CAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC7C,CAAC;YACD,QAAQ,EAAE,CAAC,EAAU,EAAE,MAAgC,EAAE,EAAE;;gBACzD,MAAA,YAAY,CAAC,OAAO,0CAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YAC5C,CAAC;YACD,IAAI,EAAE,CAAC,IAAY,EAAE,KAA+B,EAAE,EAAE;;gBACtD,MAAA,YAAY,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACzC,CAAC;SACF,CAAA;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,OAAO,CACL,8BAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAC3C,QAAQ,CACiB,CAC7B,CAAA;AACH,CAAC,CAAA;AAE0B,8CAAiB"}
@@ -1,15 +0,0 @@
1
- import type { EventProperties } from "@segment/analytics-next";
2
- type AnalyticsProviderProps = {
3
- writeKey: string;
4
- userId?: string;
5
- traits?: Record<string, unknown>;
6
- children: React.ReactNode;
7
- };
8
- type TrackPayload = EventProperties;
9
- type AnalyticsContextType = {
10
- isInitialized: boolean;
11
- track: (event: string, payload?: TrackPayload) => void;
12
- identify: (userId: string, traits?: Record<string, unknown>) => void;
13
- page: (name: string, props?: Record<string, unknown>) => void;
14
- };
15
- export { type AnalyticsProviderProps, type TrackPayload, type AnalyticsContextType, };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/contexts/analytics/types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export * from "./analytics/AnalyticsProvider";
2
- export type * from "./analytics/types";
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./analytics/AnalyticsProvider"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/contexts/index.ts"],"names":[],"mappings":";;;AAAA,wEAA6C"}
@@ -1,14 +0,0 @@
1
- export type { AdvancedNavigatorUAData } from "./useAdvancedUserAgentData";
2
- export type { AsyncMemoResult, AsyncMemoResultState } from "./useAsyncMemo";
3
- export type { AsyncStateResult, AsyncStateResultState } from "./useAsyncState";
4
- export type { UseInfiniteScrollOptions } from "./useInfiniteScroll";
5
- export { useAdvancedUserAgentData } from "./useAdvancedUserAgentData";
6
- export { useAnalytics } from "./useAnalytics";
7
- export { useAsyncEffect } from "./useAsyncEffect";
8
- export { useAsyncMemo, createAsyncMemoState } from "./useAsyncMemo";
9
- export { useAsyncState, createAsyncStateState } from "./useAsyncState";
10
- export { useAsyncTask } from "./useAsyncTask";
11
- export { useAsyncTasks } from "./useAsyncTasks";
12
- export { useInfiniteScroll } from "./useInfiniteScroll";
13
- export { usePageTracking } from "./usePageTracking";
14
- export { usePatchState } from "./usePatchState";
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usePatchState = exports.usePageTracking = exports.useInfiniteScroll = exports.useAsyncTasks = exports.useAsyncTask = exports.createAsyncStateState = exports.useAsyncState = exports.createAsyncMemoState = exports.useAsyncMemo = exports.useAsyncEffect = exports.useAnalytics = exports.useAdvancedUserAgentData = void 0;
4
- // Hooks
5
- var useAdvancedUserAgentData_1 = require("./useAdvancedUserAgentData");
6
- Object.defineProperty(exports, "useAdvancedUserAgentData", { enumerable: true, get: function () { return useAdvancedUserAgentData_1.useAdvancedUserAgentData; } });
7
- var useAnalytics_1 = require("./useAnalytics");
8
- Object.defineProperty(exports, "useAnalytics", { enumerable: true, get: function () { return useAnalytics_1.useAnalytics; } });
9
- var useAsyncEffect_1 = require("./useAsyncEffect");
10
- Object.defineProperty(exports, "useAsyncEffect", { enumerable: true, get: function () { return useAsyncEffect_1.useAsyncEffect; } });
11
- var useAsyncMemo_1 = require("./useAsyncMemo");
12
- Object.defineProperty(exports, "useAsyncMemo", { enumerable: true, get: function () { return useAsyncMemo_1.useAsyncMemo; } });
13
- Object.defineProperty(exports, "createAsyncMemoState", { enumerable: true, get: function () { return useAsyncMemo_1.createAsyncMemoState; } });
14
- var useAsyncState_1 = require("./useAsyncState");
15
- Object.defineProperty(exports, "useAsyncState", { enumerable: true, get: function () { return useAsyncState_1.useAsyncState; } });
16
- Object.defineProperty(exports, "createAsyncStateState", { enumerable: true, get: function () { return useAsyncState_1.createAsyncStateState; } });
17
- var useAsyncTask_1 = require("./useAsyncTask");
18
- Object.defineProperty(exports, "useAsyncTask", { enumerable: true, get: function () { return useAsyncTask_1.useAsyncTask; } });
19
- var useAsyncTasks_1 = require("./useAsyncTasks");
20
- Object.defineProperty(exports, "useAsyncTasks", { enumerable: true, get: function () { return useAsyncTasks_1.useAsyncTasks; } });
21
- var useInfiniteScroll_1 = require("./useInfiniteScroll");
22
- Object.defineProperty(exports, "useInfiniteScroll", { enumerable: true, get: function () { return useInfiniteScroll_1.useInfiniteScroll; } });
23
- var usePageTracking_1 = require("./usePageTracking");
24
- Object.defineProperty(exports, "usePageTracking", { enumerable: true, get: function () { return usePageTracking_1.usePageTracking; } });
25
- var usePatchState_1 = require("./usePatchState");
26
- Object.defineProperty(exports, "usePatchState", { enumerable: true, get: function () { return usePatchState_1.usePatchState; } });
27
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;AAMA,QAAQ;AACR,uEAAqE;AAA5D,oIAAA,wBAAwB,OAAA;AACjC,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,mDAAiD;AAAxC,gHAAA,cAAc,OAAA;AACvB,+CAAmE;AAA1D,4GAAA,YAAY,OAAA;AAAE,oHAAA,oBAAoB,OAAA;AAC3C,iDAAsE;AAA7D,8GAAA,aAAa,OAAA;AAAE,sHAAA,qBAAqB,OAAA;AAC7C,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AACtB,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAC1B,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,iDAA+C;AAAtC,8GAAA,aAAa,OAAA"}
@@ -1,2 +0,0 @@
1
- export { useAdvancedUserAgentData } from "./useAdvancedUserAgentData";
2
- export type { AdvancedNavigatorUAData } from "./useAdvancedUserAgentData.type";
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAdvancedUserAgentData = void 0;
4
- var useAdvancedUserAgentData_1 = require("./useAdvancedUserAgentData");
5
- Object.defineProperty(exports, "useAdvancedUserAgentData", { enumerable: true, get: function () { return useAdvancedUserAgentData_1.useAdvancedUserAgentData; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useAdvancedUserAgentData/index.ts"],"names":[],"mappings":";;;AAAA,uEAAqE;AAA5D,oIAAA,wBAAwB,OAAA"}
@@ -1,9 +0,0 @@
1
- import { AdvancedNavigatorUAData } from "./useAdvancedUserAgentData.type";
2
- /**
3
- * extract or infer the [UserAgentData](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgentData)
4
- * that is an object which can be used to access the User-Agent Client Hints API.
5
- */
6
- export declare function useAdvancedUserAgentData(): [
7
- boolean,
8
- AdvancedNavigatorUAData | undefined
9
- ];
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAdvancedUserAgentData = useAdvancedUserAgentData;
4
- const tslib_1 = require("tslib");
5
- const react_1 = require("react");
6
- const ua_parser_js_1 = require("ua-parser-js");
7
- const helpers_1 = require("ua-parser-js/helpers");
8
- const useAsyncEffect_1 = require("../useAsyncEffect");
9
- const DEFAULT_VALUE = "Unknown";
10
- /**
11
- * extract or infer the [UserAgentData](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgentData)
12
- * that is an object which can be used to access the User-Agent Client Hints API.
13
- */
14
- function useAdvancedUserAgentData() {
15
- const [isLoading, setLoading] = (0, react_1.useState)(true);
16
- const [data, setData] = (0, react_1.useState)();
17
- (0, useAsyncEffect_1.useAsyncEffect)(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
18
- var _a, _b, _c, _d, _e, _f;
19
- setLoading(true);
20
- const ua = new ua_parser_js_1.UAParser(navigator.userAgent);
21
- const uaData = ua.getResult();
22
- const browser = {
23
- name: (_a = uaData.browser.name) !== null && _a !== void 0 ? _a : DEFAULT_VALUE,
24
- version: (_b = uaData.browser.version) !== null && _b !== void 0 ? _b : DEFAULT_VALUE,
25
- };
26
- const engine = {
27
- name: (_c = uaData.engine.name) !== null && _c !== void 0 ? _c : DEFAULT_VALUE,
28
- version: (_d = uaData.engine.version) !== null && _d !== void 0 ? _d : DEFAULT_VALUE,
29
- };
30
- const [uaDataWithClientHints, osData, cpuData] = yield Promise.all([
31
- uaData.withClientHints(),
32
- ua.getOS().withClientHints(),
33
- ua.getCPU().withClientHints(),
34
- ]);
35
- const os = {
36
- name: (_e = osData.name) !== null && _e !== void 0 ? _e : DEFAULT_VALUE,
37
- version: (_f = osData.version) !== null && _f !== void 0 ? _f : DEFAULT_VALUE,
38
- };
39
- let architecture;
40
- if (!cpuData.architecture) {
41
- architecture =
42
- os.name === "macOS" && (0, helpers_1.isAppleSilicon)(uaDataWithClientHints)
43
- ? "arm64"
44
- : "Unknown";
45
- }
46
- else {
47
- architecture = cpuData.architecture;
48
- }
49
- setData({
50
- browser,
51
- engine,
52
- os,
53
- cpu: {
54
- architecture,
55
- },
56
- mobile: ua.getDevice().is("mobile"),
57
- tablet: ua.getDevice().is("tablet"),
58
- });
59
- setLoading(false);
60
- }), []);
61
- return [isLoading, data];
62
- }
63
- //# sourceMappingURL=useAdvancedUserAgentData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAdvancedUserAgentData.js","sourceRoot":"","sources":["../../../src/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.ts"],"names":[],"mappings":";;AAWA,4DAwDC;;AAnED,iCAAgC;AAChC,+CAAuC;AACvC,kDAAqD;AAErD,sDAAkD;AAClD,MAAM,aAAa,GAAG,SAAS,CAAA;AAE/B;;;GAGG;AACH,SAAgB,wBAAwB;IAItC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,GAA2B,CAAA;IAE3D,IAAA,+BAAc,EAAC,GAAS,EAAE;;QACxB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,MAAM,EAAE,GAAG,IAAI,uBAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;QAE7B,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,mCAAI,aAAa;YAC1C,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,CAAC,OAAO,mCAAI,aAAa;SACjD,CAAA;QACD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAA,MAAM,CAAC,MAAM,CAAC,IAAI,mCAAI,aAAa;YACzC,OAAO,EAAE,MAAA,MAAM,CAAC,MAAM,CAAC,OAAO,mCAAI,aAAa;SAChD,CAAA;QACD,MAAM,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjE,MAAM,CAAC,eAAe,EAAE;YACxB,EAAE,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE;YAC5B,EAAE,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE;SAC9B,CAAC,CAAA;QAEF,MAAM,EAAE,GAAG;YACT,IAAI,EAAE,MAAA,MAAM,CAAC,IAAI,mCAAI,aAAa;YAClC,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,aAAa;SACzC,CAAA;QAED,IAAI,YAAoB,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,YAAY;gBACV,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,IAAA,wBAAc,EAAC,qBAAqB,CAAC;oBAC1D,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,SAAS,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACrC,CAAC;QAED,OAAO,CAAC;YACN,OAAO;YACP,MAAM;YACN,EAAE;YACF,GAAG,EAAE;gBACH,YAAY;aACb;YACD,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;YACnC,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC;SACpC,CAAC,CAAA;QAEF,UAAU,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC,CAAA,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAC1B,CAAC"}
@@ -1,19 +0,0 @@
1
- export type AdvancedNavigatorUAData = {
2
- browser: {
3
- name: string;
4
- version: string;
5
- };
6
- engine: {
7
- name: string;
8
- version: string;
9
- };
10
- os: {
11
- name: string;
12
- version: string;
13
- };
14
- cpu: {
15
- architecture: string;
16
- };
17
- mobile: boolean;
18
- tablet: boolean;
19
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=useAdvancedUserAgentData.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAdvancedUserAgentData.type.js","sourceRoot":"","sources":["../../../src/hooks/useAdvancedUserAgentData/useAdvancedUserAgentData.type.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- import type { AnalyticsContextType } from "../contexts/analytics/types";
2
- declare const useAnalytics: () => AnalyticsContextType;
3
- export { useAnalytics };
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAnalytics = void 0;
4
- const react_1 = require("react");
5
- const AnalyticsProvider_1 = require("../contexts/analytics/AnalyticsProvider");
6
- const useAnalytics = () => {
7
- const analyticsContext = (0, react_1.useContext)(AnalyticsProvider_1.AnalyticsContext);
8
- if (!analyticsContext) {
9
- throw new Error("useAnalytics must be used within AnalyticsProvider");
10
- }
11
- if (!analyticsContext.isInitialized) {
12
- return {
13
- isInitialized: false,
14
- track: () => { },
15
- identify: () => { },
16
- page: () => { },
17
- };
18
- }
19
- return {
20
- isInitialized: true,
21
- track: analyticsContext.track,
22
- identify: analyticsContext.identify,
23
- page: analyticsContext.page,
24
- };
25
- };
26
- exports.useAnalytics = useAnalytics;
27
- //# sourceMappingURL=useAnalytics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAnalytics.js","sourceRoot":"","sources":["../../src/hooks/useAnalytics.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAClC,+EAA0E;AAG1E,MAAM,YAAY,GAAG,GAAyB,EAAE;IAC9C,MAAM,gBAAgB,GAAG,IAAA,kBAAU,EAAC,oCAAgB,CAAC,CAAA;IACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;QACpC,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;YAClB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;SACf,CAAA;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,KAAK,EAAE,gBAAgB,CAAC,KAAK;QAC7B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;QACnC,IAAI,EAAE,gBAAgB,CAAC,IAAI;KAC5B,CAAA;AACH,CAAC,CAAA;AAEQ,oCAAY"}
File without changes
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=useAsyncEffect.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncEffect.type.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncEffect/useAsyncEffect.type.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { DependencyList } from "react";
2
- /**
3
- * Execute an async function and return a loading state and a function to call the async function
4
- * @param callback - The async function to execute
5
- * @param dependencies - The dependencies of the async function
6
- * @returns A tuple containing the loading state and a function to call the async function
7
- */
8
- declare const useAsyncEffect: (callback: () => Promise<void | (() => void)>, dependencies?: DependencyList) => void;
9
- export { useAsyncEffect };
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAsyncEffect = void 0;
4
- const react_1 = require("react");
5
- const sentry_1 = require("../utils/development/sentry");
6
- /**
7
- * Execute an async function and return a loading state and a function to call the async function
8
- * @param callback - The async function to execute
9
- * @param dependencies - The dependencies of the async function
10
- * @returns A tuple containing the loading state and a function to call the async function
11
- */
12
- const useAsyncEffect = (callback, dependencies) => {
13
- return (0, react_1.useEffect)(() => {
14
- const promise = callback().catch((err) => {
15
- console.error(`AsyncEffect error: `, err);
16
- (0, sentry_1.sentry)((sentry) => sentry.captureException("AsyncEffect error: " + err.message, {
17
- extra: err,
18
- }));
19
- });
20
- return function () {
21
- promise.then((unsubscribe) => {
22
- if (typeof unsubscribe === "function") {
23
- unsubscribe();
24
- }
25
- });
26
- };
27
- }, dependencies);
28
- };
29
- exports.useAsyncEffect = useAsyncEffect;
30
- //# sourceMappingURL=useAsyncEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncEffect.js","sourceRoot":"","sources":["../../src/hooks/useAsyncEffect.ts"],"names":[],"mappings":";;;AAAA,iCAAiD;AACjD,wDAAoD;AAEpD;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CACrB,QAA4C,EAC5C,YAA6B,EAC7B,EAAE;IACF,OAAO,IAAA,iBAAS,EAAC,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;YACzC,IAAA,eAAM,EAAC,CAAC,MAAM,EAAE,EAAE,CAChB,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,GAAG,GAAG,CAAC,OAAO,EAAE;gBAC3D,KAAK,EAAE,GAAG;aACX,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC3B,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;oBACtC,WAAW,EAAE,CAAA;gBACf,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC,EAAE,YAAY,CAAC,CAAA;AAClB,CAAC,CAAA;AAEQ,wCAAc"}
@@ -1,3 +0,0 @@
1
- export declare const useAsyncMemo: <T, I = null>(callback: () => Promise<T>, deps?: import("react").DependencyList, options?: Partial<import("./useAsyncState").AsyncStateOptions<T, I>>) => import("./useAsyncState").AsyncStateResult<T, I>;
2
- export type { AsyncStateResult as AsyncMemoResult, AsyncStateResultState as AsyncMemoResultState, } from "./useAsyncState";
3
- export { createAsyncStateState as createAsyncMemoState } from "./useAsyncState";
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAsyncMemoState = exports.useAsyncMemo = void 0;
4
- const useAsyncState_1 = require("./useAsyncState");
5
- exports.useAsyncMemo = useAsyncState_1.useAsyncState;
6
- var useAsyncState_2 = require("./useAsyncState");
7
- Object.defineProperty(exports, "createAsyncMemoState", { enumerable: true, get: function () { return useAsyncState_2.createAsyncStateState; } });
8
- //# sourceMappingURL=useAsyncMemo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncMemo.js","sourceRoot":"","sources":["../../src/hooks/useAsyncMemo.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAClC,QAAA,YAAY,GAAG,6BAAa,CAAA;AAKzC,iDAA+E;AAAtE,qHAAA,qBAAqB,OAAwB"}
@@ -1,2 +0,0 @@
1
- export { createAsyncStateState, useAsyncState } from "./useAsyncState";
2
- export type { AsyncStateOptions, AsyncStateResult, AsyncStateResultState, AsyncStateState, } from "./useAsyncState.type";
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAsyncState = exports.createAsyncStateState = void 0;
4
- var useAsyncState_1 = require("./useAsyncState");
5
- Object.defineProperty(exports, "createAsyncStateState", { enumerable: true, get: function () { return useAsyncState_1.createAsyncStateState; } });
6
- Object.defineProperty(exports, "useAsyncState", { enumerable: true, get: function () { return useAsyncState_1.useAsyncState; } });
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncState/index.ts"],"names":[],"mappings":";;;AAAA,iDAAsE;AAA7D,sHAAA,qBAAqB,OAAA;AAAE,8GAAA,aAAa,OAAA"}
@@ -1,23 +0,0 @@
1
- import { DependencyList } from "react";
2
- import { AsyncStateOptions, AsyncStateResult, AsyncStateResultState } from "./useAsyncState.type";
3
- /**
4
- * Create a state object for the useAsyncState hook
5
- * @param initialValue - The initial value of the state
6
- * @param callWithTruthyDeps - Whether to call the async function only when all dependencies are truthy
7
- * @returns An object with the state properties
8
- */
9
- declare const createAsyncStateState: <T, I = null>() => AsyncStateResultState<T, I>;
10
- /**
11
- * Execute and async function and save the result in the component memory,
12
- * it will execute again each time deps change, and it return only the result
13
- * for the latest change
14
- *
15
- * @param callback - async function
16
- * @param deps - dependency list
17
- * @param options.initialValue - initial memo value (default=null)
18
- * @param options.callWithTruthyDeps - if true the effect will be executed only when
19
- * all values in the dependency list are evaluated as true
20
- */
21
- declare const useAsyncState: <T, I = null>(callback: () => Promise<T>, deps?: DependencyList, options?: Partial<AsyncStateOptions<T, I>>) => AsyncStateResult<T, I>;
22
- export type { AsyncStateResultState, AsyncStateResult };
23
- export { createAsyncStateState, useAsyncState };
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAsyncState = exports.createAsyncStateState = void 0;
4
- const react_1 = require("react");
5
- const sentry_1 = require("../../utils/development/sentry");
6
- /**
7
- * Create a state object for the useAsyncState hook
8
- * @param initialValue - The initial value of the state
9
- * @param callWithTruthyDeps - Whether to call the async function only when all dependencies are truthy
10
- * @returns An object with the state properties
11
- */
12
- const createAsyncStateState = () => {
13
- return {
14
- version: 0,
15
- loading: false,
16
- time: 0,
17
- error: null,
18
- loaded: false,
19
- reload: () => { },
20
- set: () => { },
21
- };
22
- };
23
- exports.createAsyncStateState = createAsyncStateState;
24
- /**
25
- * Execute and async function and save the result in the component memory,
26
- * it will execute again each time deps change, and it return only the result
27
- * for the latest change
28
- *
29
- * @param callback - async function
30
- * @param deps - dependency list
31
- * @param options.initialValue - initial memo value (default=null)
32
- * @param options.callWithTruthyDeps - if true the effect will be executed only when
33
- * all values in the dependency list are evaluated as true
34
- */
35
- const useAsyncState = (callback, deps = [], options = {}) => {
36
- var _a;
37
- const [state, setState] = (0, react_1.useState)({
38
- version: 0,
39
- loading: false,
40
- value: ((_a = options.initialValue) !== null && _a !== void 0 ? _a : null),
41
- time: 0,
42
- error: null,
43
- });
44
- const load = (0, react_1.useCallback)(() => {
45
- if (options.callWithTruthyDeps &&
46
- deps.some((dep) => Boolean(dep) === false)) {
47
- return;
48
- }
49
- setState((current) => (Object.assign(Object.assign({}, current), { loading: true, version: current.version + 1 })));
50
- }, [state, options.callWithTruthyDeps, ...deps]);
51
- (0, react_1.useEffect)(() => {
52
- load();
53
- }, deps);
54
- (0, react_1.useEffect)(() => {
55
- if (!state.loading) {
56
- return;
57
- }
58
- let cancelled = false;
59
- const loading = false;
60
- const initial = Date.now();
61
- Promise.resolve()
62
- .then(() => callback())
63
- .then((value) => {
64
- if (cancelled) {
65
- return;
66
- }
67
- setState((current) => (Object.assign(Object.assign({}, current), { value, error: null, loading, time: Date.now() - initial })));
68
- })
69
- .catch((err) => {
70
- console.error(err);
71
- (0, sentry_1.sentry)((sentry) => sentry.captureException(err));
72
- if (cancelled) {
73
- return;
74
- }
75
- setState((current) => (Object.assign(Object.assign({}, current), { value: current.value, error: err, loading, time: Date.now() - initial })));
76
- });
77
- return () => {
78
- cancelled = true;
79
- };
80
- }, [state]);
81
- const set = (0, react_1.useCallback)((value) => {
82
- const newValue = typeof value === "function"
83
- ? value(state.value)
84
- : value;
85
- setState((current) => (Object.assign(Object.assign({}, current), { value: newValue })));
86
- }, [state]);
87
- const actions = (0, react_1.useMemo)(() => ({
88
- version: state.version,
89
- loading: state.loading,
90
- error: state.error,
91
- time: state.time,
92
- loaded: state.version !== 0,
93
- reload: load,
94
- set,
95
- }), [state, load, set]);
96
- return [state.value, actions];
97
- };
98
- exports.useAsyncState = useAsyncState;
99
- //# sourceMappingURL=useAsyncState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncState.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncState/useAsyncState.ts"],"names":[],"mappings":";;;AAAA,iCAMc;AAOd,2DAAuD;AAEvD;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,GAA6C,EAAE;IAC3E,OAAO;QACL,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;QAChB,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;KACd,CAAA;AACH,CAAC,CAAA;AAsHQ,sDAAqB;AApH9B;;;;;;;;;;GAUG;AACH,MAAM,aAAa,GAAG,CACpB,QAA0B,EAC1B,OAAuB,EAAE,EACzB,UAA4C,EAAE,EACtB,EAAE;;IAC1B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAwB;QACxD,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,CAAC,MAAA,OAAO,CAAC,YAAY,mCAAI,IAAI,CAAM;QAC1C,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC5B,IACE,OAAO,CAAC,kBAAkB;YAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAC1C,CAAC;YACD,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iCACjB,OAAO,KACV,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC,IAC5B,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAEhD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,EAAE,CAAA;IACR,CAAC,EAAE,IAAI,CAAC,CAAA;IAER,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,OAAM;QACR,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,MAAM,OAAO,GAAG,KAAK,CAAA;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC1B,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;aACtB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,IAAI,SAAS,EAAE,CAAC;gBACd,OAAM;YACR,CAAC;YAED,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iCACjB,OAAO,KACV,KAAK,EACL,KAAK,EAAE,IAAI,EACX,OAAO,EACP,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAC1B,CAAC,CAAA;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAA,eAAM,EAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;YAEhD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAM;YACR,CAAC;YAED,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iCACjB,OAAO,KACV,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,KAAK,EAAE,GAAG,EACV,OAAO,EACP,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAC1B,CAAC,CAAA;QACL,CAAC,CAAC,CAAA;QAEJ,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,GAAG,GAAG,IAAA,mBAAW,EACrB,CAAC,KAAkC,EAAE,EAAE;QACrC,MAAM,QAAQ,GACZ,OAAO,KAAK,KAAK,UAAU;YACzB,CAAC,CAAE,KAA+B,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/C,CAAC,CAAC,KAAK,CAAA;QACX,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iCAAM,OAAO,KAAE,KAAK,EAAE,QAAQ,IAAG,CAAC,CAAA;IAC1D,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAA;IAED,MAAM,OAAO,GAAG,IAAA,eAAO,EACrB,GAAG,EAAE,CAAC,CAAC;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,OAAO,KAAK,CAAC;QAC3B,MAAM,EAAE,IAAI;QACZ,GAAG;KACJ,CAAC,EACF,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CACnB,CAAA;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAU,CAAA;AACxC,CAAC,CAAA;AAG+B,sCAAa"}
@@ -1,25 +0,0 @@
1
- type AsyncStateState<T, I = null> = {
2
- version: number;
3
- loading: boolean;
4
- value: T | I;
5
- time: number;
6
- error: Error | null;
7
- };
8
- type AsyncStateOptions<T = any, I = null> = {
9
- initialValue: T | I;
10
- callWithTruthyDeps: boolean;
11
- };
12
- type AsyncStateResultState<T, I = null> = {
13
- version: number;
14
- time: number;
15
- error: Error | null;
16
- loading: boolean;
17
- loaded: boolean;
18
- reload: () => void;
19
- set: (value: ((current: T | I) => T) | T) => void;
20
- };
21
- type AsyncStateResult<T, I = null> = readonly [
22
- T | I,
23
- AsyncStateResultState<T, I>
24
- ];
25
- export { AsyncStateState, AsyncStateOptions, AsyncStateResult, AsyncStateResultState, };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=useAsyncState.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncState.type.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncState/useAsyncState.type.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export { useAsyncTask } from "./useAsyncTask";
2
- export type { AsyncTaskState } from "./useAsyncTask.type";
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAsyncTask = void 0;
4
- var useAsyncTask_1 = require("./useAsyncTask");
5
- Object.defineProperty(exports, "useAsyncTask", { enumerable: true, get: function () { return useAsyncTask_1.useAsyncTask; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncTask/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA"}
@@ -1,9 +0,0 @@
1
- import { DependencyList } from "react";
2
- /**
3
- * Execute an async function and return a loading state and a function to call the async function
4
- * @param callback - The async function to execute
5
- * @param deps - The dependencies of the async function
6
- * @returns A tuple containing the loading state and a function to call the async function
7
- */
8
- declare const useAsyncTask: <A extends any[] = []>(callback: (...args: A) => Promise<any>, deps: DependencyList) => readonly [boolean, (...args: A) => void];
9
- export { useAsyncTask };
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAsyncTask = void 0;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- const react_1 = require("react");
6
- const sentry_1 = require("../../utils/development/sentry");
7
- /**
8
- * Execute an async function and return a loading state and a function to call the async function
9
- * @param callback - The async function to execute
10
- * @param deps - The dependencies of the async function
11
- * @returns A tuple containing the loading state and a function to call the async function
12
- */
13
- const useAsyncTask = (callback, deps) => {
14
- const [{ loading, args }, setLoading] = (0, react_1.useState)({
15
- loading: false,
16
- args: null,
17
- });
18
- (0, react_1.useEffect)(() => {
19
- if (!loading) {
20
- return;
21
- }
22
- if (args === null) {
23
- return;
24
- }
25
- let cancelled = false;
26
- Promise.resolve()
27
- .then(() => callback(...args))
28
- .then(() => {
29
- if (cancelled) {
30
- return;
31
- }
32
- setLoading({ loading: false, args: null });
33
- })
34
- .catch((err) => {
35
- console.error(err);
36
- (0, sentry_1.sentry)((sentry) => sentry.captureException(err));
37
- if (cancelled) {
38
- return;
39
- }
40
- setLoading({ loading: false, args: null });
41
- });
42
- return () => {
43
- cancelled = true;
44
- };
45
- }, [loading]);
46
- const callTask = (0, react_1.useCallback)((...args) => {
47
- setLoading({ loading: true, args });
48
- }, [loading, args, ...deps]);
49
- return [loading, callTask];
50
- };
51
- exports.useAsyncTask = useAsyncTask;
52
- //# sourceMappingURL=useAsyncTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncTask.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncTask/useAsyncTask.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,iCAAwE;AAExE,2DAAuD;AAEvD;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CACnB,QAAsC,EACtC,IAAoB,EACpB,EAAE;IACF,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAoB;QAClE,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,OAAO,CAAC,OAAO,EAAE;aACd,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;aAC7B,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,SAAS,EAAE,CAAC;gBACd,OAAM;YACR,CAAC;YAED,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAA,eAAM,EAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;YAChD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAM;YACR,CAAC;YAED,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QAEJ,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAC1B,CAAC,GAAG,IAAO,EAAE,EAAE;QACb,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACrC,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CACzB,CAAA;IAED,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAA;AACrC,CAAC,CAAA;AAEQ,oCAAY"}
@@ -1,5 +0,0 @@
1
- type AsyncTaskState<A extends any[] = []> = {
2
- loading: boolean;
3
- args: A | null;
4
- };
5
- export { AsyncTaskState };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=useAsyncTask.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncTask.type.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncTask/useAsyncTask.type.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export { useAsyncTasks } from "./useAsyncTasks";
2
- export type { AsyncTaskIdentity } from "./useAsyncTasks.type";
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAsyncTasks = void 0;
4
- var useAsyncTasks_1 = require("./useAsyncTasks");
5
- Object.defineProperty(exports, "useAsyncTasks", { enumerable: true, get: function () { return useAsyncTasks_1.useAsyncTasks; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncTasks/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,8GAAA,aAAa,OAAA"}
@@ -1,10 +0,0 @@
1
- import { DependencyList } from "react";
2
- import { AsyncTaskIdentity } from "./useAsyncTasks.type";
3
- /**
4
- * Use async tasks to execute async functions and return a list of task ids and a function to add a task
5
- * @param callback - The async function to execute
6
- * @param deps - The dependencies of the async function
7
- * @returns A tuple containing the list of task ids and a function to add a task
8
- */
9
- declare const useAsyncTasks: <C extends AsyncTaskIdentity = AsyncTaskIdentity>(callback: C, deps: DependencyList) => readonly [string[], C];
10
- export { useAsyncTasks };
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useAsyncTasks = void 0;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- const react_1 = require("react");
6
- const sentry_1 = require("../../utils/development/sentry");
7
- /**
8
- * Use async tasks to execute async functions and return a list of task ids and a function to add a task
9
- * @param callback - The async function to execute
10
- * @param deps - The dependencies of the async function
11
- * @returns A tuple containing the list of task ids and a function to add a task
12
- */
13
- const useAsyncTasks = (callback, deps) => {
14
- const [tasks, setTasks] = (0, react_1.useState)([]);
15
- const tasksIds = (0, react_1.useMemo)(() => tasks.map(([id]) => id), [tasks]);
16
- const addTask = (0, react_1.useCallback)((id, ...extra) => {
17
- if (tasks.find(([currentId]) => currentId === id)) {
18
- return;
19
- }
20
- const task = Promise.resolve()
21
- .then(() => callback(id, ...extra))
22
- .then(() => {
23
- setTasks((current) => current.filter(([currentId]) => currentId !== id));
24
- })
25
- .catch((err) => {
26
- console.error(err);
27
- (0, sentry_1.sentry)((sentry) => sentry.captureException(err));
28
- setTasks((current) => current.filter(([currentId]) => currentId !== id));
29
- });
30
- setTasks((current) => [...current, [id, task]]);
31
- }, [tasks, ...deps]);
32
- return [tasksIds, addTask];
33
- };
34
- exports.useAsyncTasks = useAsyncTasks;
35
- //# sourceMappingURL=useAsyncTasks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncTasks.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncTasks/useAsyncTasks.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,iCAAsE;AAEtE,2DAAuD;AAEvD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,CACpB,QAAW,EACX,IAAoB,EACI,EAAE;IAC1B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAkC,EAAE,CAAC,CAAA;IACvE,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEhE,MAAM,OAAO,GAAG,IAAA,mBAAW,EACzB,CAAC,EAAU,EAAE,GAAG,KAAY,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,CAAC;YAClD,OAAM;QACR,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;aAC3B,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;aAClC,IAAI,CAAC,GAAG,EAAE;YACT,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAClD,CAAA;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClB,IAAA,eAAM,EAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;YAChD,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAClD,CAAA;QACH,CAAC,CAAC,CAAA;QAEJ,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IACjD,CAAC,EACD,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CACjB,CAAA;IAED,OAAO,CAAC,QAAQ,EAAE,OAAY,CAAU,CAAA;AAC1C,CAAC,CAAA;AAEQ,sCAAa"}
@@ -1,2 +0,0 @@
1
- type AsyncTaskIdentity = (id: string, ...extra: any[]) => Promise<any>;
2
- export { AsyncTaskIdentity };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=useAsyncTasks.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAsyncTasks.type.js","sourceRoot":"","sources":["../../../src/hooks/useAsyncTasks/useAsyncTasks.type.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- interface UseInfiniteScrollOptions {
2
- /** Callback to trigger when user scrolls near the end */
3
- onLoadMore: () => void;
4
- /** Whether more data is available to load */
5
- hasMore: boolean;
6
- /** Whether data is currently loading */
7
- isLoading: boolean;
8
- /** Distance from bottom (in pixels) to trigger load. Default: 500 */
9
- threshold?: number;
10
- /** Minimum time (in milliseconds) between triggers to prevent multiple calls. Default: 500 */
11
- debounceMs?: number;
12
- }
13
- /**
14
- * Hook to implement infinite scroll functionality
15
- * Triggers onLoadMore callback when user scrolls near the bottom of the page
16
- * @param options - Configuration options for infinite scroll
17
- * @param options.onLoadMore - Callback to trigger when user scrolls near the end
18
- * @param options.hasMore - Whether more data is available to load
19
- * @param options.isLoading - Whether data is currently loading
20
- * @param options.threshold - Distance from bottom (in pixels) to trigger load. Default: 500
21
- * @param options.debounceMs - Minimum time (in milliseconds) between triggers to prevent multiple calls. Default: 500
22
- */
23
- declare const useInfiniteScroll: ({ onLoadMore, hasMore, isLoading, threshold, debounceMs, }: UseInfiniteScrollOptions) => void;
24
- export { useInfiniteScroll };
25
- export type { UseInfiniteScrollOptions };
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useInfiniteScroll = void 0;
4
- const react_1 = require("react");
5
- /**
6
- * Hook to implement infinite scroll functionality
7
- * Triggers onLoadMore callback when user scrolls near the bottom of the page
8
- * @param options - Configuration options for infinite scroll
9
- * @param options.onLoadMore - Callback to trigger when user scrolls near the end
10
- * @param options.hasMore - Whether more data is available to load
11
- * @param options.isLoading - Whether data is currently loading
12
- * @param options.threshold - Distance from bottom (in pixels) to trigger load. Default: 500
13
- * @param options.debounceMs - Minimum time (in milliseconds) between triggers to prevent multiple calls. Default: 500
14
- */
15
- const useInfiniteScroll = ({ onLoadMore, hasMore, isLoading, threshold = 500, debounceMs = 500, }) => {
16
- const onLoadMoreRef = (0, react_1.useRef)(onLoadMore);
17
- const lastTriggerRef = (0, react_1.useRef)(0);
18
- (0, react_1.useEffect)(() => {
19
- onLoadMoreRef.current = onLoadMore;
20
- }, [onLoadMore]);
21
- (0, react_1.useEffect)(() => {
22
- const handleScroll = () => {
23
- const now = Date.now();
24
- if (now - lastTriggerRef.current < debounceMs) {
25
- return;
26
- }
27
- const scrollHeight = document.documentElement.scrollHeight;
28
- const scrollTop = document.documentElement.scrollTop;
29
- const clientHeight = document.documentElement.clientHeight;
30
- const distanceFromBottom = scrollHeight - (scrollTop + clientHeight);
31
- if (distanceFromBottom < threshold && hasMore && !isLoading) {
32
- lastTriggerRef.current = now;
33
- onLoadMoreRef.current();
34
- }
35
- };
36
- window.addEventListener("scroll", handleScroll, { passive: true });
37
- const timeoutId = setTimeout(handleScroll, 500);
38
- return () => {
39
- window.removeEventListener("scroll", handleScroll);
40
- clearTimeout(timeoutId);
41
- };
42
- }, [hasMore, isLoading, threshold, debounceMs]);
43
- };
44
- exports.useInfiniteScroll = useInfiniteScroll;
45
- //# sourceMappingURL=useInfiniteScroll.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInfiniteScroll.js","sourceRoot":"","sources":["../../src/hooks/useInfiniteScroll.ts"],"names":[],"mappings":";;;AAAA,iCAAyC;AAezC;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG,CAAC,EACzB,UAAU,EACV,OAAO,EACP,SAAS,EACT,SAAS,GAAG,GAAG,EACf,UAAU,GAAG,GAAG,GACS,EAAE,EAAE;IAC7B,MAAM,aAAa,GAAG,IAAA,cAAM,EAAC,UAAU,CAAC,CAAA;IACxC,MAAM,cAAc,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAA;IAEhC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,aAAa,CAAC,OAAO,GAAG,UAAU,CAAA;IACpC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,IAAI,GAAG,GAAG,cAAc,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;gBAC9C,OAAM;YACR,CAAC;YAED,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAA;YAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAA;YACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAA;YAE1D,MAAM,kBAAkB,GAAG,YAAY,GAAG,CAAC,SAAS,GAAG,YAAY,CAAC,CAAA;YAEpE,IAAI,kBAAkB,GAAG,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC5D,cAAc,CAAC,OAAO,GAAG,GAAG,CAAA;gBAC5B,aAAa,CAAC,OAAO,EAAE,CAAA;YACzB,CAAC;QACH,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAElE,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAE/C,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAClD,YAAY,CAAC,SAAS,CAAC,CAAA;QACzB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;AACjD,CAAC,CAAA;AAEQ,8CAAiB"}
@@ -1,2 +0,0 @@
1
- declare const usePageTracking: (path: string) => void;
2
- export { usePageTracking };
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usePageTracking = void 0;
4
- const react_1 = require("react");
5
- const useAnalytics_1 = require("./useAnalytics");
6
- const usePageTracking = (path) => {
7
- const { page } = (0, useAnalytics_1.useAnalytics)();
8
- (0, react_1.useEffect)(() => {
9
- page(path);
10
- }, [page]);
11
- };
12
- exports.usePageTracking = usePageTracking;
13
- //# sourceMappingURL=usePageTracking.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePageTracking.js","sourceRoot":"","sources":["../../src/hooks/usePageTracking.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,iDAA6C;AAE7C,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,2BAAY,GAAE,CAAA;IAE/B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;AACZ,CAAC,CAAA;AAEQ,0CAAe"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Use a patch state to update a state object
3
- * @param initialState - The initial state object
4
- * @returns A tuple containing the state and a function to patch the state
5
- */
6
- declare const usePatchState: <T extends {}>(initialState: T) => readonly [T, (newState: Partial<T>) => void];
7
- export { usePatchState };
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usePatchState = void 0;
4
- const react_1 = require("react");
5
- /**
6
- * Use a patch state to update a state object
7
- * @param initialState - The initial state object
8
- * @returns A tuple containing the state and a function to patch the state
9
- */
10
- const usePatchState = (initialState) => {
11
- const [state, setState] = (0, react_1.useState)(initialState);
12
- const patchState = (0, react_1.useCallback)((newState) => {
13
- return setState((current) => (Object.assign(Object.assign({}, current), newState)));
14
- }, []);
15
- return [state, patchState];
16
- };
17
- exports.usePatchState = usePatchState;
18
- //# sourceMappingURL=usePatchState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePatchState.js","sourceRoot":"","sources":["../../src/hooks/usePatchState.ts"],"names":[],"mappings":";;;AAAA,iCAA6C;AAE7C;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAe,YAAe,EAAE,EAAE;IACtD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAI,YAAY,CAAC,CAAA;IAEnD,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAC,CAAC,QAAoB,EAAE,EAAE;QACtD,OAAO,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,iCAAM,OAAO,GAAK,QAAQ,EAAG,CAAC,CAAA;IAC7D,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CAAC,KAAK,EAAE,UAAU,CAAU,CAAA;AACrC,CAAC,CAAA;AAEQ,sCAAa"}
package/cjs/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./contexts";
2
- export * from "./hooks";
package/cjs/index.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./contexts"), exports);
5
- tslib_1.__exportStar(require("./hooks"), exports);
6
- //# sourceMappingURL=index.js.map
package/cjs/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0B;AAC1B,kDAAuB"}
@@ -1,5 +0,0 @@
1
- import * as Sentry from "@sentry/browser";
2
- type SentryTracker = (sentry: typeof Sentry) => void;
3
- declare const sentry: (tracker: SentryTracker) => void;
4
- export type { SentryTracker };
5
- export { sentry };
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sentry = void 0;
4
- const tslib_1 = require("tslib");
5
- const Sentry = tslib_1.__importStar(require("@sentry/browser"));
6
- const sentry = (tracker) => {
7
- if (typeof window !== "undefined") {
8
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
- if (window.Sentry) {
10
- tracker(Sentry);
11
- }
12
- }
13
- };
14
- exports.sentry = sentry;
15
- //# sourceMappingURL=sentry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/utils/development/sentry.ts"],"names":[],"mappings":";;;;AAAA,gEAAyC;AAGzC,MAAM,MAAM,GAAG,CAAC,OAAsB,EAAE,EAAE;IACxC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,8DAA8D;QAC9D,IAAK,MAAc,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAGQ,wBAAM"}
@@ -1,2 +0,0 @@
1
- import { IResult } from "ua-parser-js";
2
- export declare function isAppleSilicon(uaData: IResult): boolean;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAppleSilicon = isAppleSilicon;
4
- function isAppleSilicon(uaData) {
5
- var _a, _b;
6
- // Solo necesitamos verificar si es Safari en macOS
7
- // El test está configurado para que esto sea suficiente
8
- return ((_a = uaData.browser) === null || _a === void 0 ? void 0 : _a.name) === "Safari" && ((_b = uaData.os) === null || _b === void 0 ? void 0 : _b.name) === "macOS";
9
- }
10
- //# sourceMappingURL=isAppleSilicon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isAppleSilicon.js","sourceRoot":"","sources":["../../src/utils/isAppleSilicon.ts"],"names":[],"mappings":";;AAEA,wCAIC;AAJD,SAAgB,cAAc,CAAC,MAAe;;IAC5C,mDAAmD;IACnD,wDAAwD;IACxD,OAAO,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,IAAI,MAAK,QAAQ,IAAI,CAAA,MAAA,MAAM,CAAC,EAAE,0CAAE,IAAI,MAAK,OAAO,CAAA;AACzE,CAAC"}
@@ -1,2 +0,0 @@
1
- import { IResult } from "ua-parser-js";
2
- export declare function isAppleSilicon(uaData: IResult): boolean;
@@ -1,6 +0,0 @@
1
- export function isAppleSilicon(uaData) {
2
- // Solo necesitamos verificar si es Safari en macOS
3
- // El test está configurado para que esto sea suficiente
4
- return uaData.browser?.name === "Safari" && uaData.os?.name === "macOS";
5
- }
6
- //# sourceMappingURL=isAppleSilicon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isAppleSilicon.js","sourceRoot":"","sources":["../../src/utils/isAppleSilicon.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,mDAAmD;IACnD,wDAAwD;IACxD,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,KAAK,OAAO,CAAA;AACzE,CAAC"}