@dfx.swiss/react 1.0.0-beta.1

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 (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/dist/contexts/asset.context.d.ts +15 -0
  4. package/dist/contexts/asset.context.d.ts.map +1 -0
  5. package/dist/contexts/asset.context.js +50 -0
  6. package/dist/contexts/asset.context.js.map +1 -0
  7. package/dist/contexts/auth.context.d.ts +12 -0
  8. package/dist/contexts/auth.context.d.ts.map +1 -0
  9. package/dist/contexts/auth.context.js +77 -0
  10. package/dist/contexts/auth.context.js.map +1 -0
  11. package/dist/contexts/buy.context.d.ts +17 -0
  12. package/dist/contexts/buy.context.d.ts.map +1 -0
  13. package/dist/contexts/buy.context.js +116 -0
  14. package/dist/contexts/buy.context.js.map +1 -0
  15. package/dist/contexts/dfx.context.d.ts +6 -0
  16. package/dist/contexts/dfx.context.d.ts.map +1 -0
  17. package/dist/contexts/dfx.context.js +21 -0
  18. package/dist/contexts/dfx.context.js.map +1 -0
  19. package/dist/contexts/session.context.d.ts +25 -0
  20. package/dist/contexts/session.context.d.ts.map +1 -0
  21. package/dist/contexts/session.context.js +155 -0
  22. package/dist/contexts/session.context.js.map +1 -0
  23. package/dist/contexts/user.context.d.ts +17 -0
  24. package/dist/contexts/user.context.d.ts.map +1 -0
  25. package/dist/contexts/user.context.js +108 -0
  26. package/dist/contexts/user.context.js.map +1 -0
  27. package/dist/definitions/asset.d.ts +23 -0
  28. package/dist/definitions/asset.d.ts.map +1 -0
  29. package/dist/definitions/asset.js +8 -0
  30. package/dist/definitions/asset.js.map +1 -0
  31. package/dist/definitions/auth.d.ts +12 -0
  32. package/dist/definitions/auth.d.ts.map +1 -0
  33. package/dist/definitions/auth.js +2 -0
  34. package/dist/definitions/auth.js.map +1 -0
  35. package/dist/definitions/bank-account.d.ts +14 -0
  36. package/dist/definitions/bank-account.d.ts.map +1 -0
  37. package/dist/definitions/bank-account.js +6 -0
  38. package/dist/definitions/bank-account.js.map +1 -0
  39. package/dist/definitions/blockchain.d.ts +11 -0
  40. package/dist/definitions/blockchain.d.ts.map +1 -0
  41. package/dist/definitions/blockchain.js +12 -0
  42. package/dist/definitions/blockchain.js.map +1 -0
  43. package/dist/definitions/buy.d.ts +29 -0
  44. package/dist/definitions/buy.d.ts.map +1 -0
  45. package/dist/definitions/buy.js +2 -0
  46. package/dist/definitions/buy.js.map +1 -0
  47. package/dist/definitions/country.d.ts +9 -0
  48. package/dist/definitions/country.d.ts.map +1 -0
  49. package/dist/definitions/country.js +2 -0
  50. package/dist/definitions/country.js.map +1 -0
  51. package/dist/definitions/error.d.ts +5 -0
  52. package/dist/definitions/error.d.ts.map +1 -0
  53. package/dist/definitions/error.js +2 -0
  54. package/dist/definitions/error.js.map +1 -0
  55. package/dist/definitions/fiat.d.ts +10 -0
  56. package/dist/definitions/fiat.d.ts.map +1 -0
  57. package/dist/definitions/fiat.js +2 -0
  58. package/dist/definitions/fiat.js.map +1 -0
  59. package/dist/definitions/jwt.d.ts +8 -0
  60. package/dist/definitions/jwt.d.ts.map +1 -0
  61. package/dist/definitions/jwt.js +2 -0
  62. package/dist/definitions/jwt.js.map +1 -0
  63. package/dist/definitions/kyc.d.ts +43 -0
  64. package/dist/definitions/kyc.d.ts.map +1 -0
  65. package/dist/definitions/kyc.js +25 -0
  66. package/dist/definitions/kyc.js.map +1 -0
  67. package/dist/definitions/sell.d.ts +24 -0
  68. package/dist/definitions/sell.d.ts.map +1 -0
  69. package/dist/definitions/sell.js +2 -0
  70. package/dist/definitions/sell.js.map +1 -0
  71. package/dist/definitions/session.d.ts +6 -0
  72. package/dist/definitions/session.d.ts.map +1 -0
  73. package/dist/definitions/session.js +2 -0
  74. package/dist/definitions/session.js.map +1 -0
  75. package/dist/definitions/user.d.ts +24 -0
  76. package/dist/definitions/user.d.ts.map +1 -0
  77. package/dist/definitions/user.js +2 -0
  78. package/dist/definitions/user.js.map +1 -0
  79. package/dist/hooks/api-session.hook.d.ts +9 -0
  80. package/dist/hooks/api-session.hook.d.ts.map +1 -0
  81. package/dist/hooks/api-session.hook.js +69 -0
  82. package/dist/hooks/api-session.hook.js.map +1 -0
  83. package/dist/hooks/api.hook.d.ts +17 -0
  84. package/dist/hooks/api.hook.d.ts.map +1 -0
  85. package/dist/hooks/api.hook.js +90 -0
  86. package/dist/hooks/api.hook.js.map +1 -0
  87. package/dist/hooks/asset.hook.d.ts +6 -0
  88. package/dist/hooks/asset.hook.d.ts.map +1 -0
  89. package/dist/hooks/asset.hook.js +50 -0
  90. package/dist/hooks/asset.hook.js.map +1 -0
  91. package/dist/hooks/auth.hook.d.ts +8 -0
  92. package/dist/hooks/auth.hook.d.ts.map +1 -0
  93. package/dist/hooks/auth.hook.js +64 -0
  94. package/dist/hooks/auth.hook.js.map +1 -0
  95. package/dist/hooks/bank-account.hook.d.ts +18 -0
  96. package/dist/hooks/bank-account.hook.d.ts.map +1 -0
  97. package/dist/hooks/bank-account.hook.js +64 -0
  98. package/dist/hooks/bank-account.hook.js.map +1 -0
  99. package/dist/hooks/buy.hook.d.ts +6 -0
  100. package/dist/hooks/buy.hook.d.ts.map +1 -0
  101. package/dist/hooks/buy.hook.js +50 -0
  102. package/dist/hooks/buy.hook.js.map +1 -0
  103. package/dist/hooks/country.hook.d.ts +6 -0
  104. package/dist/hooks/country.hook.d.ts.map +1 -0
  105. package/dist/hooks/country.hook.js +50 -0
  106. package/dist/hooks/country.hook.js.map +1 -0
  107. package/dist/hooks/fiat.hook.d.ts +9 -0
  108. package/dist/hooks/fiat.hook.d.ts.map +1 -0
  109. package/dist/hooks/fiat.hook.js +70 -0
  110. package/dist/hooks/fiat.hook.js.map +1 -0
  111. package/dist/hooks/kyc.hook.d.ts +7 -0
  112. package/dist/hooks/kyc.hook.d.ts.map +1 -0
  113. package/dist/hooks/kyc.hook.js +54 -0
  114. package/dist/hooks/kyc.hook.js.map +1 -0
  115. package/dist/hooks/sell.hook.d.ts +6 -0
  116. package/dist/hooks/sell.hook.d.ts.map +1 -0
  117. package/dist/hooks/sell.hook.js +50 -0
  118. package/dist/hooks/sell.hook.js.map +1 -0
  119. package/dist/hooks/store.hook.d.ts +9 -0
  120. package/dist/hooks/store.hook.d.ts.map +1 -0
  121. package/dist/hooks/store.hook.js +25 -0
  122. package/dist/hooks/store.hook.js.map +1 -0
  123. package/dist/hooks/user.hook.d.ts +7 -0
  124. package/dist/hooks/user.hook.d.ts.map +1 -0
  125. package/dist/hooks/user.hook.js +75 -0
  126. package/dist/hooks/user.hook.js.map +1 -0
  127. package/dist/index.d.ts +30 -0
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +22 -0
  130. package/dist/index.js.map +1 -0
  131. package/dist/utils.d.ts +9 -0
  132. package/dist/utils.d.ts.map +1 -0
  133. package/dist/utils.js +15 -0
  134. package/dist/utils.js.map +1 -0
  135. package/package.json +24 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 DFX
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # React
2
+
3
+ React logic for DFX.swiss
@@ -0,0 +1,15 @@
1
+ import { PropsWithChildren } from "react";
2
+ import { Asset } from "../definitions/asset";
3
+ import { Blockchain } from "../definitions/blockchain";
4
+ interface AssetInterface {
5
+ assets: Map<Blockchain, Asset[]>;
6
+ assetsLoading: boolean;
7
+ getAsset: (id: number, filter?: {
8
+ buyable?: boolean;
9
+ sellable?: boolean;
10
+ }) => Asset | undefined;
11
+ }
12
+ export declare function useAssetContext(): AssetInterface;
13
+ export declare function AssetContextProvider(props: PropsWithChildren): JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=asset.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.context.d.ts","sourceRoot":"","sources":["../../src/contexts/asset.context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,UAAU,cAAc;IACtB,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,CACR,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAC/C,KAAK,GAAG,SAAS,CAAC;CACxB;AAID,wBAAgB,eAAe,IAAI,cAAc,CAEhD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAiD1E"}
@@ -0,0 +1,50 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { createContext, useContext, useEffect, useMemo, useState, } from "react";
14
+ import { useAsset } from "../hooks/asset.hook";
15
+ import { useAuthContext } from "./auth.context";
16
+ import { Utils } from "../utils";
17
+ var AssetContext = createContext(undefined);
18
+ export function useAssetContext() {
19
+ return useContext(AssetContext);
20
+ }
21
+ export function AssetContextProvider(props) {
22
+ var isLoggedIn = useAuthContext().isLoggedIn;
23
+ var getAssets = useAsset().getAssets;
24
+ var _a = useState(new Map()), assets = _a[0], setAssets = _a[1];
25
+ var _b = useState(false), assetsLoading = _b[0], setAssetsLoading = _b[1];
26
+ useEffect(function () {
27
+ setAssetsLoading(true);
28
+ getAssets()
29
+ .then(updateAssets)
30
+ .finally(function () { return setAssetsLoading(false); });
31
+ }, [isLoggedIn]);
32
+ function updateAssets(assets) {
33
+ setAssets(Utils.groupBy(assets
34
+ .filter(function (a) { return a.buyable || a.comingSoon; })
35
+ .sort(function (a, b) { var _a, _b; return ((_a = a.sortOrder) !== null && _a !== void 0 ? _a : 1) - ((_b = b.sortOrder) !== null && _b !== void 0 ? _b : 1); }), "blockchain"));
36
+ }
37
+ function getAsset(id, filter) {
38
+ return Array.from(assets.values())
39
+ .reduce(function (prev, curr) { return prev.concat(curr); }, [])
40
+ .filter(function (asset) {
41
+ return filter === undefined ||
42
+ ((filter === null || filter === void 0 ? void 0 : filter.buyable) !== undefined && filter.buyable === asset.buyable) ||
43
+ ((filter === null || filter === void 0 ? void 0 : filter.sellable) !== undefined && filter.sellable === asset.sellable);
44
+ })
45
+ .find(function (asset) { return asset.id === id; });
46
+ }
47
+ var context = useMemo(function () { return ({ assets: assets, assetsLoading: assetsLoading, getAsset: getAsset }); }, [assets, assetsLoading, getAsset]);
48
+ return (_jsx(AssetContext.Provider, __assign({ value: context }, { children: props.children })));
49
+ }
50
+ //# sourceMappingURL=asset.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.context.js","sourceRoot":"","sources":["../../src/contexts/asset.context.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,aAAa,EAEb,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAWjC,IAAM,YAAY,GAAG,aAAa,CAAiB,SAAgB,CAAC,CAAC;AAErE,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IACnD,IAAA,UAAU,GAAK,cAAc,EAAE,WAArB,CAAsB;IAChC,IAAA,SAAS,GAAK,QAAQ,EAAE,UAAf,CAAgB;IAC3B,IAAA,KAAsB,QAAQ,CAA2B,IAAI,GAAG,EAAE,CAAC,EAAlE,MAAM,QAAA,EAAE,SAAS,QAAiD,CAAC;IACpE,IAAA,KAAoC,QAAQ,CAAU,KAAK,CAAC,EAA3D,aAAa,QAAA,EAAE,gBAAgB,QAA4B,CAAC;IAEnE,SAAS,CAAC;QACR,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,SAAS,EAAE;aACR,IAAI,CAAC,YAAY,CAAC;aAClB,OAAO,CAAC,cAAM,OAAA,gBAAgB,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,SAAS,YAAY,CAAC,MAAe;QACnC,SAAS,CACP,KAAK,CAAC,OAAO,CACX,MAAM;aACH,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,EAAzB,CAAyB,CAAC;aACxC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,gBAAK,OAAA,CAAC,MAAA,CAAC,CAAC,SAAS,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,SAAS,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC,EAC1D,YAAY,CACb,CACF,CAAC;IACJ,CAAC;IAED,SAAS,QAAQ,CACf,EAAU,EACV,MAAkD;QAElD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aAC/B,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAjB,CAAiB,EAAE,EAAE,CAAC;aAC7C,MAAM,CACL,UAAC,KAAK;YACJ,OAAA,MAAM,KAAK,SAAS;gBACpB,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,MAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC;gBACnE,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,MAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;QAFtE,CAEsE,CACzE;aACA,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,EAAE,EAAf,CAAe,CAAC,CAAC;IACtC,CAAC;IAED,IAAM,OAAO,GAAmB,OAAO,CACrC,cAAM,OAAA,CAAC,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,EAArC,CAAqC,EAC3C,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAClC,CAAC;IAEF,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,aAAC,KAAK,EAAE,OAAO,gBAClC,KAAK,CAAC,QAAQ,IACO,CACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { PropsWithChildren } from "react";
2
+ import { Session } from "../definitions/session";
3
+ interface AuthInterface {
4
+ authenticationToken?: string;
5
+ session?: Session;
6
+ setAuthenticationToken: (authenticationToken?: string) => void;
7
+ isLoggedIn: boolean;
8
+ }
9
+ export declare function useAuthContext(): AuthInterface;
10
+ export declare function AuthContextProvider(props: PropsWithChildren): JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=auth.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.context.d.ts","sourceRoot":"","sources":["../../src/contexts/auth.context.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EAKlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,UAAU,aAAa;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,UAAU,EAAE,OAAO,CAAC;CACrB;AAID,wBAAgB,cAAc,IAAI,aAAa,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAqEzE"}
@@ -0,0 +1,77 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import jwtDecode from "jwt-decode";
14
+ import { createContext, useContext, useEffect, useMemo, useState, } from "react";
15
+ import { Utils } from "../utils";
16
+ import { useStore } from "../hooks/store.hook";
17
+ var AuthContext = createContext(undefined);
18
+ export function useAuthContext() {
19
+ return useContext(AuthContext);
20
+ }
21
+ export function AuthContextProvider(props) {
22
+ var _a = useState(), token = _a[0], setToken = _a[1];
23
+ var _b = useState(), jwt = _b[0], setJwt = _b[1];
24
+ var authenticationToken = useStore().authenticationToken;
25
+ var tokenWithFallback = token !== null && token !== void 0 ? token : authenticationToken.get();
26
+ var isLoggedIn = tokenWithFallback != undefined && !isExpired();
27
+ var session = useMemo(function () {
28
+ return jwt
29
+ ? { address: jwt === null || jwt === void 0 ? void 0 : jwt.address, blockchains: jwt === null || jwt === void 0 ? void 0 : jwt.blockchains }
30
+ : undefined;
31
+ }, [jwt]);
32
+ useEffect(function () {
33
+ if (!token)
34
+ setAuthenticationToken(authenticationToken.get());
35
+ }, []);
36
+ function isExpired() {
37
+ if (!tokenWithFallback)
38
+ return true;
39
+ try {
40
+ var decoded = jwt !== null && jwt !== void 0 ? jwt : jwtDecode(tokenWithFallback);
41
+ return ((decoded === null || decoded === void 0 ? void 0 : decoded.exp) != null &&
42
+ Date.now() > new Date((decoded === null || decoded === void 0 ? void 0 : decoded.exp) * 1000).getTime());
43
+ }
44
+ catch (_a) {
45
+ authenticationToken.remove();
46
+ setToken(undefined);
47
+ setJwt(undefined);
48
+ return true;
49
+ }
50
+ }
51
+ function setAuthenticationToken(token) {
52
+ token ? authenticationToken.set(token) : authenticationToken.remove();
53
+ setToken(token);
54
+ if (token && Utils.isJwt(token)) {
55
+ setJwt(jwtDecode(token));
56
+ }
57
+ else {
58
+ setJwt(undefined);
59
+ }
60
+ }
61
+ var context = useMemo(function () { return ({
62
+ authenticationToken: tokenWithFallback,
63
+ session: session,
64
+ setAuthenticationToken: setAuthenticationToken,
65
+ isLoggedIn: isLoggedIn,
66
+ }); }, [
67
+ tokenWithFallback,
68
+ token,
69
+ session,
70
+ jwt,
71
+ setAuthenticationToken,
72
+ authenticationToken,
73
+ isLoggedIn,
74
+ ]);
75
+ return (_jsx(AuthContext.Provider, __assign({ value: context }, { children: props.children })));
76
+ }
77
+ //# sourceMappingURL=auth.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.context.js","sourceRoot":"","sources":["../../src/contexts/auth.context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { Fiat } from '../definitions/fiat';
3
+ import { CreateBankAccount, UpdateBankAccount } from '../hooks/bank-account.hook';
4
+ import { BankAccount } from '../definitions/bank-account';
5
+ import { Buy, BuyPaymentInfo } from '../definitions/buy';
6
+ interface BuyInterface {
7
+ currencies?: Fiat[];
8
+ bankAccounts?: BankAccount[];
9
+ isAccountLoading: boolean;
10
+ createAccount: (newAccount: CreateBankAccount) => Promise<BankAccount>;
11
+ updateAccount: (id: number, changedAccount: UpdateBankAccount) => Promise<BankAccount>;
12
+ receiveFor: (info: BuyPaymentInfo) => Promise<Buy>;
13
+ }
14
+ export declare function useBuyContext(): BuyInterface;
15
+ export declare function BuyContextProvider(props: PropsWithChildren): JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=buy.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buy.context.d.ts","sourceRoot":"","sources":["../../src/contexts/buy.context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAA4C,MAAM,OAAO,CAAC;AACnG,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAkB,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACvE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACvF,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACpD;AAID,wBAAgB,aAAa,IAAI,YAAY,CAE5C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAwDxE"}
@@ -0,0 +1,116 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { jsx as _jsx } from "react/jsx-runtime";
49
+ import { createContext, useContext, useEffect, useMemo, useState } from 'react';
50
+ import { useFiat } from '../hooks/fiat.hook';
51
+ import { useAuthContext } from './auth.context';
52
+ import { useBankAccount } from '../hooks/bank-account.hook';
53
+ import { useBuy } from '../hooks/buy.hook';
54
+ var BuyContext = createContext(undefined);
55
+ export function useBuyContext() {
56
+ return useContext(BuyContext);
57
+ }
58
+ export function BuyContextProvider(props) {
59
+ var isLoggedIn = useAuthContext().isLoggedIn;
60
+ var _a = useState(), currencies = _a[0], setCurrencies = _a[1];
61
+ var _b = useState(), bankAccounts = _b[0], setBankAccounts = _b[1];
62
+ var _c = useState(false), isAccountLoading = _c[0], setIsAccountLoading = _c[1];
63
+ var getCurrencies = useFiat().getCurrencies;
64
+ var _d = useBankAccount(), getAccounts = _d.getAccounts, createAccount = _d.createAccount, updateAccount = _d.updateAccount;
65
+ var receiveFor = useBuy().receiveFor;
66
+ useEffect(function () {
67
+ if (isLoggedIn) {
68
+ Promise.all([getCurrencies(), getAccounts()])
69
+ .then(function (_a) {
70
+ var currencies = _a[0], bankAccounts = _a[1];
71
+ setCurrencies(currencies.filter(function (c) { return c.sellable; }));
72
+ setBankAccounts(bankAccounts);
73
+ })
74
+ .catch(console.error); // TODO: (Krysh) add real error handling
75
+ }
76
+ }, [isLoggedIn]);
77
+ function addNewAccount(newAccount) {
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ return __generator(this, function (_a) {
80
+ setIsAccountLoading(true);
81
+ return [2 /*return*/, createAccount(newAccount)
82
+ .then(function (b) {
83
+ setBankAccounts((bankAccounts !== null && bankAccounts !== void 0 ? bankAccounts : []).concat(b));
84
+ return b;
85
+ })
86
+ .finally(function () { return setIsAccountLoading(false); })];
87
+ });
88
+ });
89
+ }
90
+ function updateExistingAccount(id, changedAccount) {
91
+ return __awaiter(this, void 0, void 0, function () {
92
+ return __generator(this, function (_a) {
93
+ return [2 /*return*/, updateAccount(id, changedAccount).then(function (b) {
94
+ setBankAccounts(replace(b, bankAccounts));
95
+ return b;
96
+ })];
97
+ });
98
+ });
99
+ }
100
+ function replace(account, accounts) {
101
+ var index = accounts === null || accounts === void 0 ? void 0 : accounts.findIndex(function (b) { return b.id === account.id; });
102
+ if (index && accounts)
103
+ accounts[index] = account;
104
+ return accounts;
105
+ }
106
+ var context = useMemo(function () { return ({
107
+ currencies: currencies,
108
+ bankAccounts: bankAccounts,
109
+ isAccountLoading: isAccountLoading,
110
+ createAccount: addNewAccount,
111
+ updateAccount: updateExistingAccount,
112
+ receiveFor: receiveFor,
113
+ }); }, [currencies, bankAccounts, isAccountLoading, addNewAccount, updateExistingAccount, receiveFor]);
114
+ return _jsx(BuyContext.Provider, __assign({ value: context }, { children: props.children }));
115
+ }
116
+ //# sourceMappingURL=buy.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buy.context.js","sourceRoot":"","sources":["../../src/contexts/buy.context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { SessionContextProviderProps } from './session.context';
3
+ type DfxContextProviderProps = SessionContextProviderProps & PropsWithChildren;
4
+ export declare function DfxContextProvider(props: DfxContextProviderProps): JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=dfx.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dfx.context.d.ts","sourceRoot":"","sources":["../../src/contexts/dfx.context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,EAA0B,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGxF,KAAK,uBAAuB,GAAG,2BAA2B,GAAG,iBAAiB,CAAC;AAE/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAY9E"}
@@ -0,0 +1,21 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { AssetContextProvider } from './asset.context';
14
+ import { AuthContextProvider } from './auth.context';
15
+ import { BuyContextProvider } from './buy.context';
16
+ import { SessionContextProvider } from './session.context';
17
+ import { UserContextProvider } from './user.context';
18
+ export function DfxContextProvider(props) {
19
+ return (_jsx(AuthContextProvider, { children: _jsx(SessionContextProvider, __assign({ api: props.api, data: props.data }, { children: _jsx(UserContextProvider, { children: _jsx(AssetContextProvider, { children: _jsx(BuyContextProvider, { children: props.children }) }) }) })) }));
20
+ }
21
+ //# sourceMappingURL=dfx.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dfx.context.js","sourceRoot":"","sources":["../../src/contexts/dfx.context.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAA+B,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAIrD,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,OAAO,CACL,KAAC,mBAAmB,cAClB,KAAC,sBAAsB,aAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,gBACtD,KAAC,mBAAmB,cAClB,KAAC,oBAAoB,cACnB,KAAC,kBAAkB,cAAE,KAAK,CAAC,QAAQ,GAAsB,GACpC,GACH,IACC,GACL,CACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { Blockchain } from '../definitions/blockchain';
3
+ export interface SessionInterface {
4
+ address?: string;
5
+ blockchain?: Blockchain;
6
+ availableBlockchains?: Blockchain[];
7
+ isLoggedIn: boolean;
8
+ needsSignUp: boolean;
9
+ isProcessing: boolean;
10
+ login: () => Promise<void>;
11
+ signUp: () => Promise<void>;
12
+ logout: () => Promise<void>;
13
+ }
14
+ export declare function useSessionContext(): SessionInterface;
15
+ export interface SessionContextProviderProps extends PropsWithChildren {
16
+ api: {
17
+ signMessage?: (message: string, address: string) => Promise<string>;
18
+ };
19
+ data: {
20
+ address?: string;
21
+ blockchain?: Blockchain;
22
+ };
23
+ }
24
+ export declare function SessionContextProvider({ api, data, children }: SessionContextProviderProps): JSX.Element;
25
+ //# sourceMappingURL=session.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.context.d.ts","sourceRoot":"","sources":["../../src/contexts/session.context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAAoD,MAAM,OAAO,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAKvD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAID,wBAAgB,iBAAiB,IAAI,gBAAgB,CAEpD;AAED,MAAM,WAAW,2BAA4B,SAAQ,iBAAiB;IACpE,GAAG,EAAE;QACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KACrE,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB,CAAC;CACH;AAED,wBAAgB,sBAAsB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,CAyExG"}
@@ -0,0 +1,155 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { jsx as _jsx } from "react/jsx-runtime";
49
+ import { createContext, useContext, useEffect, useMemo, useRef, useState } from 'react';
50
+ import { useApiSession } from '../hooks/api-session.hook';
51
+ import { useAuthContext } from './auth.context';
52
+ var SessionContext = createContext(undefined);
53
+ export function useSessionContext() {
54
+ return useContext(SessionContext);
55
+ }
56
+ export function SessionContextProvider(_a) {
57
+ var api = _a.api, data = _a.data, children = _a.children;
58
+ var session = useAuthContext().session;
59
+ var _b = useApiSession(), isLoggedIn = _b.isLoggedIn, getSignMessage = _b.getSignMessage, createSession = _b.createSession, deleteSession = _b.deleteSession;
60
+ var _c = useState(false), needsSignUp = _c[0], setNeedsSignUp = _c[1];
61
+ var _d = useState(false), isProcessing = _d[0], setIsProcessing = _d[1];
62
+ var _e = useState(), signature = _e[0], setSignature = _e[1];
63
+ var firstRender = useRef(true);
64
+ useEffect(function () {
65
+ if (firstRender.current) {
66
+ firstRender.current = false;
67
+ return;
68
+ }
69
+ if (data.address) {
70
+ createApiSession(data.address);
71
+ }
72
+ else {
73
+ deleteSession();
74
+ }
75
+ }, [data.address]);
76
+ function login() {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ return __generator(this, function (_a) {
79
+ // if (!isConnected) {
80
+ // await connect();
81
+ // }
82
+ if (!data.address)
83
+ return [2 /*return*/]; // TODO: (Krysh) add real error handling
84
+ createApiSession(data.address);
85
+ return [2 /*return*/];
86
+ });
87
+ });
88
+ }
89
+ function createApiSession(address) {
90
+ return __awaiter(this, void 0, void 0, function () {
91
+ var message, signature;
92
+ return __generator(this, function (_a) {
93
+ switch (_a.label) {
94
+ case 0:
95
+ if (isLoggedIn || !api.signMessage)
96
+ return [2 /*return*/];
97
+ return [4 /*yield*/, getSignMessage(address)];
98
+ case 1:
99
+ message = _a.sent();
100
+ return [4 /*yield*/, api.signMessage(message, address)];
101
+ case 2:
102
+ signature = _a.sent();
103
+ setIsProcessing(true);
104
+ return [2 /*return*/, createSession(address, signature, false)
105
+ .catch(function (error) {
106
+ if (error.statusCode === 404) {
107
+ setSignature(signature);
108
+ setNeedsSignUp(true);
109
+ }
110
+ })
111
+ .finally(function () { return setIsProcessing(false); })];
112
+ }
113
+ });
114
+ });
115
+ }
116
+ function signUp() {
117
+ return __awaiter(this, void 0, void 0, function () {
118
+ return __generator(this, function (_a) {
119
+ if (!data.address || !signature)
120
+ return [2 /*return*/]; // TODO: (Krysh) add real error handling
121
+ setIsProcessing(true);
122
+ return [2 /*return*/, createSession(data.address, signature, true).finally(function () {
123
+ setSignature(undefined);
124
+ setNeedsSignUp(false);
125
+ setIsProcessing(false);
126
+ })];
127
+ });
128
+ });
129
+ }
130
+ function logout() {
131
+ return __awaiter(this, void 0, void 0, function () {
132
+ return __generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0: return [4 /*yield*/, deleteSession()];
135
+ case 1:
136
+ _a.sent();
137
+ return [2 /*return*/];
138
+ }
139
+ });
140
+ });
141
+ }
142
+ var context = useMemo(function () { return ({
143
+ address: data.address,
144
+ blockchain: data.blockchain,
145
+ availableBlockchains: session === null || session === void 0 ? void 0 : session.blockchains,
146
+ isLoggedIn: isLoggedIn,
147
+ needsSignUp: needsSignUp,
148
+ isProcessing: isProcessing,
149
+ login: login,
150
+ signUp: signUp,
151
+ logout: logout,
152
+ }); }, [data.address, data.blockchain, session, isLoggedIn, needsSignUp, isProcessing, login, signUp, logout]);
153
+ return _jsx(SessionContext.Provider, __assign({ value: context }, { children: children }));
154
+ }
155
+ //# sourceMappingURL=session.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.context.js","sourceRoot":"","sources":["../../src/contexts/session.context.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { Country } from '../definitions/country';
3
+ import { User } from '../definitions/user';
4
+ interface UserInterface {
5
+ user?: User;
6
+ refLink?: string;
7
+ countries: Country[];
8
+ isUserLoading: boolean;
9
+ isUserUpdating: boolean;
10
+ changeMail: (mail: string) => Promise<void>;
11
+ register: (userLink: () => void) => void;
12
+ reloadUser: () => Promise<void>;
13
+ }
14
+ export declare function useUserContext(): UserInterface;
15
+ export declare function UserContextProvider(props: PropsWithChildren): JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=user.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.context.d.ts","sourceRoot":"","sources":["../../src/contexts/user.context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,EAA4C,MAAM,OAAO,CAAC;AACnG,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAK3C,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAID,wBAAgB,cAAc,IAAI,aAAa,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAkDzE"}