@matchain/matchid-sdk-react 0.1.48-alpha.20 → 0.1.48-alpha.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-WXPVHKGJ.mjs → chunk-FB5MHLWX.mjs} +3 -1
- package/dist/{chunk-3UVHHJP6.mjs → chunk-MUEDDGKX.mjs} +2 -2
- package/dist/{chunk-WHZ3HI4R.mjs → chunk-WPXA4QPX.mjs} +613 -562
- package/dist/chunk-WPXA4QPX.mjs.map +1 -0
- package/dist/components/index.js +456 -446
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +3 -3
- package/dist/hooks/api/index.js +38 -28
- package/dist/hooks/api/index.js.map +1 -1
- package/dist/hooks/api/index.mjs +3 -3
- package/dist/hooks/index.js +136 -132
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +3 -3
- package/dist/index.css +33 -0
- package/dist/index.js +267 -218
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/ui/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-WHZ3HI4R.mjs.map +0 -1
- /package/dist/{chunk-WXPVHKGJ.mjs.map → chunk-FB5MHLWX.mjs.map} +0 -0
- /package/dist/{chunk-3UVHHJP6.mjs.map → chunk-MUEDDGKX.mjs.map} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -57,7 +57,7 @@ __export(components_exports, {
|
|
|
57
57
|
module.exports = __toCommonJS(components_exports);
|
|
58
58
|
|
|
59
59
|
// src/components/EmailModal/index.tsx
|
|
60
|
-
var
|
|
60
|
+
var import_react24 = require("react");
|
|
61
61
|
|
|
62
62
|
// src/assets/icon/ArrowLeftIcon.tsx
|
|
63
63
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -1849,10 +1849,10 @@ var localStore = useLocalStore;
|
|
|
1849
1849
|
var useLocalStore_default = useLocalStore;
|
|
1850
1850
|
|
|
1851
1851
|
// src/hooks/useUserInfo.tsx
|
|
1852
|
-
var
|
|
1852
|
+
var import_react22 = require("react");
|
|
1853
1853
|
|
|
1854
1854
|
// src/MatchContext.tsx
|
|
1855
|
-
var
|
|
1855
|
+
var import_react21 = require("react");
|
|
1856
1856
|
|
|
1857
1857
|
// src/hooks/useMatchEvents.ts
|
|
1858
1858
|
var import_react5 = require("react");
|
|
@@ -2622,8 +2622,8 @@ function useMatchChain() {
|
|
|
2622
2622
|
|
|
2623
2623
|
// src/hooks/useMatchWallet.tsx
|
|
2624
2624
|
var import_react_qrcode = require("react-qrcode");
|
|
2625
|
-
var
|
|
2626
|
-
var
|
|
2625
|
+
var import_react15 = require("react");
|
|
2626
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
2627
2627
|
|
|
2628
2628
|
// src/config/index.tsx
|
|
2629
2629
|
var EMAIL_INTERVAL = 60;
|
|
@@ -2631,7 +2631,7 @@ var EMAIL_CODE_LENGTH = 6;
|
|
|
2631
2631
|
var NATIVE_TOKEN_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
2632
2632
|
|
|
2633
2633
|
// src/hooks/useMatchWallet.tsx
|
|
2634
|
-
var
|
|
2634
|
+
var import_viem7 = require("viem");
|
|
2635
2635
|
|
|
2636
2636
|
// src/store/useContractStore.ts
|
|
2637
2637
|
var import_zustand4 = require("zustand");
|
|
@@ -2690,15 +2690,24 @@ var useContractStore = (0, import_zustand4.create)((0, import_middleware3.devtoo
|
|
|
2690
2690
|
var useContractStore_default = useContractStore;
|
|
2691
2691
|
|
|
2692
2692
|
// src/hooks/useMatchWallet.tsx
|
|
2693
|
+
var import_react_intl3 = require("react-intl");
|
|
2694
|
+
|
|
2695
|
+
// src/components/ImportToken/index.tsx
|
|
2696
|
+
var import_react14 = require("react");
|
|
2693
2697
|
var import_react_intl2 = require("react-intl");
|
|
2698
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
2699
|
+
var import_viem6 = require("viem");
|
|
2694
2700
|
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
2701
|
+
|
|
2702
|
+
// src/hooks/useMatchWallet.tsx
|
|
2703
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
2695
2704
|
function useMatchWalletRecords() {
|
|
2696
|
-
const [hasMore, setHasMore] = (0,
|
|
2697
|
-
const [items, setItems] = (0,
|
|
2705
|
+
const [hasMore, setHasMore] = (0, import_react15.useState)(true);
|
|
2706
|
+
const [items, setItems] = (0, import_react15.useState)([]);
|
|
2698
2707
|
const { chainId, publicClient } = useMatchChain();
|
|
2699
2708
|
const { address } = useWallet();
|
|
2700
|
-
const hasMoreRef = (0,
|
|
2701
|
-
const nextPageParamsRef = (0,
|
|
2709
|
+
const hasMoreRef = (0, import_react15.useRef)(hasMore);
|
|
2710
|
+
const nextPageParamsRef = (0, import_react15.useRef)(void 0);
|
|
2702
2711
|
const { getContract, setContracts } = useContractStore_default();
|
|
2703
2712
|
const fetchMoreData = async () => {
|
|
2704
2713
|
const chainIdStr = chainId ? chainId.toString() : "";
|
|
@@ -2729,13 +2738,13 @@ function useMatchWalletRecords() {
|
|
|
2729
2738
|
for (const contract of contractUnique) {
|
|
2730
2739
|
calls.push({
|
|
2731
2740
|
address: contract,
|
|
2732
|
-
abi:
|
|
2741
|
+
abi: import_viem7.erc20Abi,
|
|
2733
2742
|
functionName: "symbol",
|
|
2734
2743
|
args: []
|
|
2735
2744
|
});
|
|
2736
2745
|
calls.push({
|
|
2737
2746
|
address: contract,
|
|
2738
|
-
abi:
|
|
2747
|
+
abi: import_viem7.erc20Abi,
|
|
2739
2748
|
functionName: "decimals",
|
|
2740
2749
|
args: []
|
|
2741
2750
|
});
|
|
@@ -2774,17 +2783,15 @@ function useMatchWalletRecords() {
|
|
|
2774
2783
|
hasMoreRef.current = true;
|
|
2775
2784
|
fetchMoreData();
|
|
2776
2785
|
};
|
|
2777
|
-
(0,
|
|
2786
|
+
(0, import_react15.useEffect)(() => {
|
|
2778
2787
|
if (chainId && address) {
|
|
2779
2788
|
onInit();
|
|
2780
2789
|
}
|
|
2781
2790
|
}, [chainId, address]);
|
|
2782
2791
|
const { getTransactions, removeTransaction } = useTransactionStore_default();
|
|
2783
|
-
const
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
(0, import_react14.useEffect)(() => {
|
|
2787
|
-
const removeList = localTransaction.filter((n) => items.findIndex((m) => m.hash == n.hash) >= 0);
|
|
2792
|
+
const list = (0, import_react15.useMemo)(() => {
|
|
2793
|
+
const localTransactions = getTransactions(chainId || 0, address) || [];
|
|
2794
|
+
const removeList = localTransactions.filter((n) => items.findIndex((m) => m.hash == n.hash) >= 0);
|
|
2788
2795
|
removeList.forEach((item) => {
|
|
2789
2796
|
removeTransaction({
|
|
2790
2797
|
chainId: chainId || 0,
|
|
@@ -2792,16 +2799,18 @@ function useMatchWalletRecords() {
|
|
|
2792
2799
|
address
|
|
2793
2800
|
});
|
|
2794
2801
|
});
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
...getTransactions(chainId || 0, address) || [],
|
|
2802
|
+
const saveList = localTransactions.filter((n) => items.findIndex((m) => m.hash == n.hash) < 0);
|
|
2803
|
+
return [
|
|
2804
|
+
...saveList,
|
|
2799
2805
|
...items
|
|
2800
2806
|
].sort((a, b) => {
|
|
2801
2807
|
const btimestamp = typeof b.timestamp === "string" ? parseInt(b.timestamp) : b.timestamp;
|
|
2802
2808
|
const atimestamp = typeof a.timestamp === "string" ? parseInt(a.timestamp) : a.timestamp;
|
|
2803
2809
|
return btimestamp - atimestamp;
|
|
2804
|
-
})
|
|
2810
|
+
});
|
|
2811
|
+
}, [getTransactions, chainId, items, address]);
|
|
2812
|
+
return {
|
|
2813
|
+
items: list,
|
|
2805
2814
|
fetchMoreData,
|
|
2806
2815
|
hasMore
|
|
2807
2816
|
};
|
|
@@ -2819,7 +2828,7 @@ function useMatchWalletAssets({
|
|
|
2819
2828
|
chainId: chainId || 0,
|
|
2820
2829
|
...assetListOptions
|
|
2821
2830
|
});
|
|
2822
|
-
const mergedAssets = (0,
|
|
2831
|
+
const mergedAssets = (0, import_react15.useMemo)(() => {
|
|
2823
2832
|
if (!assetListQuery.data && !importTokenQuery.data) return [];
|
|
2824
2833
|
const assetList = (assetListQuery.data || []).map((asset) => ({
|
|
2825
2834
|
...asset,
|
|
@@ -2887,7 +2896,7 @@ function useMatchWalletAssetList({
|
|
|
2887
2896
|
name: chain?.nativeCurrency.name,
|
|
2888
2897
|
balance: 0
|
|
2889
2898
|
};
|
|
2890
|
-
const nativeBalanceQuery = (0,
|
|
2899
|
+
const nativeBalanceQuery = (0, import_react_query4.useQuery)({
|
|
2891
2900
|
queryKey: ["nativeBalance", nativeToken?.chain_id],
|
|
2892
2901
|
queryFn: async () => {
|
|
2893
2902
|
if (!nativeToken || !publicClient) return null;
|
|
@@ -2906,8 +2915,8 @@ function useMatchWalletAssetList({
|
|
|
2906
2915
|
retry: 3
|
|
2907
2916
|
// Retry up to 3 times if failed
|
|
2908
2917
|
});
|
|
2909
|
-
const erc20Tokens = (0,
|
|
2910
|
-
const
|
|
2918
|
+
const erc20Tokens = (0, import_react15.useMemo)(() => list.filter((asset) => asset.address !== NATIVE_TOKEN_ADDRESS), [list]);
|
|
2919
|
+
const erc20Abi4 = [
|
|
2911
2920
|
{
|
|
2912
2921
|
"constant": true,
|
|
2913
2922
|
"inputs": [
|
|
@@ -2928,13 +2937,13 @@ function useMatchWalletAssetList({
|
|
|
2928
2937
|
"type": "function"
|
|
2929
2938
|
}
|
|
2930
2939
|
];
|
|
2931
|
-
const erc20BalanceQuery = (0,
|
|
2940
|
+
const erc20BalanceQuery = (0, import_react_query4.useQuery)({
|
|
2932
2941
|
queryKey: ["erc20Balances", erc20Tokens.map((token) => token.address)],
|
|
2933
2942
|
queryFn: async () => {
|
|
2934
2943
|
if (!erc20Tokens.length || !publicClient) return [];
|
|
2935
2944
|
const calls = erc20Tokens.map((token) => ({
|
|
2936
2945
|
address: token.address,
|
|
2937
|
-
abi:
|
|
2946
|
+
abi: erc20Abi4,
|
|
2938
2947
|
functionName: "balanceOf",
|
|
2939
2948
|
args: [address]
|
|
2940
2949
|
}));
|
|
@@ -2955,7 +2964,7 @@ function useMatchWalletAssetList({
|
|
|
2955
2964
|
// Refresh every 15 seconds
|
|
2956
2965
|
retry: 3
|
|
2957
2966
|
});
|
|
2958
|
-
const enrichedAssets = (0,
|
|
2967
|
+
const enrichedAssets = (0, import_react15.useMemo)(() => {
|
|
2959
2968
|
if (!list) return [];
|
|
2960
2969
|
const erc20Balances = erc20BalanceQuery.data || [];
|
|
2961
2970
|
return list.map((asset) => {
|
|
@@ -2964,11 +2973,11 @@ function useMatchWalletAssetList({
|
|
|
2964
2973
|
const decimals = typeof asset.decimals === "string" ? parseInt(asset.decimals) : asset.decimals;
|
|
2965
2974
|
if (asset.address === NATIVE_TOKEN_ADDRESS) {
|
|
2966
2975
|
balanceValue = nativeBalanceQuery.data?.toString() || "0";
|
|
2967
|
-
balance = nativeBalanceQuery.data ? Number((0,
|
|
2976
|
+
balance = nativeBalanceQuery.data ? Number((0, import_viem7.formatUnits)(nativeBalanceQuery.data, decimals)) : 0;
|
|
2968
2977
|
} else {
|
|
2969
2978
|
const index = erc20Tokens.findIndex((t) => t.address === asset.address);
|
|
2970
2979
|
if (index !== -1 && erc20Balances[index] && erc20Balances[index].status === "success") {
|
|
2971
|
-
balance = Number((0,
|
|
2980
|
+
balance = Number((0, import_viem7.formatUnits)(erc20Balances[index].result, decimals));
|
|
2972
2981
|
balanceValue = erc20Balances[index].result?.toString() || "0";
|
|
2973
2982
|
}
|
|
2974
2983
|
}
|
|
@@ -2976,7 +2985,7 @@ function useMatchWalletAssetList({
|
|
|
2976
2985
|
return { ...asset, balance, value, balanceValue };
|
|
2977
2986
|
});
|
|
2978
2987
|
}, [list, nativeBalanceQuery.data, erc20BalanceQuery.data]);
|
|
2979
|
-
(0,
|
|
2988
|
+
(0, import_react15.useEffect)(() => {
|
|
2980
2989
|
const list2 = enrichedAssets.sort((a, b) => {
|
|
2981
2990
|
if (a.address === NATIVE_TOKEN_ADDRESS) return -1;
|
|
2982
2991
|
if (b.address === NATIVE_TOKEN_ADDRESS) return 1;
|
|
@@ -2998,54 +3007,54 @@ function useMatchWalletAssetList({
|
|
|
2998
3007
|
}
|
|
2999
3008
|
|
|
3000
3009
|
// src/hooks/useReceipt.tsx
|
|
3001
|
-
var import_react15 = require("react");
|
|
3002
|
-
var import_react_query4 = require("@tanstack/react-query");
|
|
3003
|
-
var import_viem7 = require("viem");
|
|
3004
|
-
var CACHE_TTL = 86400 * 30 * 1e3;
|
|
3005
|
-
|
|
3006
|
-
// src/hooks/useTransaction.tsx
|
|
3007
3010
|
var import_react16 = require("react");
|
|
3008
3011
|
var import_react_query5 = require("@tanstack/react-query");
|
|
3009
3012
|
var import_viem8 = require("viem");
|
|
3013
|
+
var CACHE_TTL = 86400 * 30 * 1e3;
|
|
3014
|
+
|
|
3015
|
+
// src/hooks/useTransaction.tsx
|
|
3016
|
+
var import_react17 = require("react");
|
|
3017
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
3018
|
+
var import_viem9 = require("viem");
|
|
3010
3019
|
var CACHE_TTL2 = 86400 * 30 * 1e3;
|
|
3011
3020
|
|
|
3012
3021
|
// src/store/useModalStore.ts
|
|
3013
3022
|
var import_zustand5 = require("zustand");
|
|
3014
3023
|
|
|
3015
3024
|
// src/hooks/useConfig.tsx
|
|
3016
|
-
var
|
|
3025
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
3017
3026
|
var DEFAULT_WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
|
|
3018
3027
|
var WALLET_METHODS = ["evm", "sol", "btc", "tron", "ton"];
|
|
3019
3028
|
function useWalletConfig() {
|
|
3020
3029
|
const isDownMd = useDownMd();
|
|
3021
3030
|
const walletMap = {
|
|
3022
3031
|
evm: {
|
|
3023
|
-
icon: /* @__PURE__ */ (0,
|
|
3024
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
3032
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(EVMDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
3033
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(EVMLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
3025
3034
|
name: "EVM",
|
|
3026
3035
|
method: "evm"
|
|
3027
3036
|
},
|
|
3028
3037
|
sol: {
|
|
3029
|
-
icon: /* @__PURE__ */ (0,
|
|
3030
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
3038
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SOLDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
3039
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SOLLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
3031
3040
|
name: "SOL",
|
|
3032
3041
|
method: "sol"
|
|
3033
3042
|
},
|
|
3034
3043
|
btc: {
|
|
3035
|
-
icon: /* @__PURE__ */ (0,
|
|
3036
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
3044
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(BTCDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
3045
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(BTCLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
3037
3046
|
name: "BTC",
|
|
3038
3047
|
method: "btc"
|
|
3039
3048
|
},
|
|
3040
3049
|
tron: {
|
|
3041
|
-
icon: /* @__PURE__ */ (0,
|
|
3042
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
3050
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(TRXDarkIcon, { size: isDownMd ? 36 : 40 }),
|
|
3051
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(TRXLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
3043
3052
|
name: "TRON",
|
|
3044
3053
|
method: "tron"
|
|
3045
3054
|
},
|
|
3046
3055
|
ton: {
|
|
3047
|
-
icon: /* @__PURE__ */ (0,
|
|
3048
|
-
activeIcon: /* @__PURE__ */ (0,
|
|
3056
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(TonLightIcon, { size: isDownMd ? 36 : 40 }),
|
|
3057
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(TonLightIcon2, { size: isDownMd ? 36 : 40 }),
|
|
3049
3058
|
name: "TON",
|
|
3050
3059
|
method: "ton"
|
|
3051
3060
|
}
|
|
@@ -3095,31 +3104,31 @@ var useWalletModalStore = (0, import_zustand5.create)((set) => ({
|
|
|
3095
3104
|
}));
|
|
3096
3105
|
|
|
3097
3106
|
// src/components/CEXBindModal/index.tsx
|
|
3098
|
-
var
|
|
3099
|
-
var
|
|
3100
|
-
var
|
|
3107
|
+
var import_react18 = require("react");
|
|
3108
|
+
var import_react_intl4 = require("react-intl");
|
|
3109
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
3101
3110
|
|
|
3102
3111
|
// src/context/BusinessProvider.tsx
|
|
3103
|
-
var
|
|
3112
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
3104
3113
|
|
|
3105
3114
|
// src/context/index.tsx
|
|
3106
|
-
var
|
|
3115
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
3107
3116
|
|
|
3108
3117
|
// src/hooks/useWalletInit.ts
|
|
3109
|
-
var
|
|
3118
|
+
var import_react19 = require("react");
|
|
3110
3119
|
var AppClientId2 = getAppClientId();
|
|
3111
3120
|
|
|
3112
3121
|
// src/hooks/useInit.tsx
|
|
3113
|
-
var
|
|
3122
|
+
var import_react20 = require("react");
|
|
3114
3123
|
|
|
3115
3124
|
// src/MatchContext.tsx
|
|
3116
|
-
var
|
|
3117
|
-
var
|
|
3118
|
-
var
|
|
3119
|
-
var queryClient = new
|
|
3120
|
-
var MatchContext = (0,
|
|
3125
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
3126
|
+
var import_react_intl5 = require("react-intl");
|
|
3127
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
3128
|
+
var queryClient = new import_react_query7.QueryClient();
|
|
3129
|
+
var MatchContext = (0, import_react21.createContext)(void 0);
|
|
3121
3130
|
var useMatch = () => {
|
|
3122
|
-
const context = (0,
|
|
3131
|
+
const context = (0, import_react21.useContext)(MatchContext);
|
|
3123
3132
|
if (context === void 0) {
|
|
3124
3133
|
throw new Error("useMatch must be used within a MatchProvider");
|
|
3125
3134
|
}
|
|
@@ -3148,7 +3157,7 @@ function useUserInfo() {
|
|
|
3148
3157
|
const { open: BTCOpen } = useBTCModalStore();
|
|
3149
3158
|
const { open: CEXBindOpen } = useCEXBindModalStore();
|
|
3150
3159
|
const walletModalStore = useWalletModalStore();
|
|
3151
|
-
const isLogin = (0,
|
|
3160
|
+
const isLogin = (0, import_react22.useMemo)(() => !!token && !!overview, [token, overview]);
|
|
3152
3161
|
const logout = async () => {
|
|
3153
3162
|
try {
|
|
3154
3163
|
await toLogoutApi();
|
|
@@ -3380,23 +3389,23 @@ function useUserInfo() {
|
|
|
3380
3389
|
}
|
|
3381
3390
|
|
|
3382
3391
|
// src/components/EmailModal/StepVerify.tsx
|
|
3383
|
-
var
|
|
3384
|
-
var
|
|
3385
|
-
var
|
|
3392
|
+
var import_react23 = require("react");
|
|
3393
|
+
var import_react_intl6 = require("react-intl");
|
|
3394
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
3386
3395
|
function StepVerify(props) {
|
|
3387
|
-
const intl = (0,
|
|
3396
|
+
const intl = (0, import_react_intl6.useIntl)();
|
|
3388
3397
|
const { getLoginEmailCode, loginByEmail } = useUserInfo();
|
|
3389
|
-
const [error, setError] = (0,
|
|
3390
|
-
const [code, setCode] = (0,
|
|
3391
|
-
const [sending, setSending] = (0,
|
|
3392
|
-
const [submitting, setSubmitting] = (0,
|
|
3393
|
-
const sendTimeRef = (0,
|
|
3394
|
-
const [sendBtnText, setSendBtnText] = (0,
|
|
3398
|
+
const [error, setError] = (0, import_react23.useState)("");
|
|
3399
|
+
const [code, setCode] = (0, import_react23.useState)("");
|
|
3400
|
+
const [sending, setSending] = (0, import_react23.useState)(false);
|
|
3401
|
+
const [submitting, setSubmitting] = (0, import_react23.useState)(false);
|
|
3402
|
+
const sendTimeRef = (0, import_react23.useRef)(0);
|
|
3403
|
+
const [sendBtnText, setSendBtnText] = (0, import_react23.useState)(intl.formatMessage({
|
|
3395
3404
|
id: "send"
|
|
3396
3405
|
}));
|
|
3397
3406
|
const intervalTime = EMAIL_INTERVAL;
|
|
3398
3407
|
const codeLength = EMAIL_CODE_LENGTH;
|
|
3399
|
-
const intervalRef = (0,
|
|
3408
|
+
const intervalRef = (0, import_react23.useRef)(null);
|
|
3400
3409
|
const isDownMd = useDownMd();
|
|
3401
3410
|
const onSend = async () => {
|
|
3402
3411
|
if (sendTimeRef.current > 0) {
|
|
@@ -3427,7 +3436,7 @@ function StepVerify(props) {
|
|
|
3427
3436
|
setSending(false);
|
|
3428
3437
|
}
|
|
3429
3438
|
};
|
|
3430
|
-
(0,
|
|
3439
|
+
(0, import_react23.useEffect)(() => {
|
|
3431
3440
|
onSend();
|
|
3432
3441
|
return () => {
|
|
3433
3442
|
if (intervalRef.current) {
|
|
@@ -3435,7 +3444,7 @@ function StepVerify(props) {
|
|
|
3435
3444
|
}
|
|
3436
3445
|
};
|
|
3437
3446
|
}, []);
|
|
3438
|
-
const canContinue = (0,
|
|
3447
|
+
const canContinue = (0, import_react23.useMemo)(() => {
|
|
3439
3448
|
return code.length === codeLength;
|
|
3440
3449
|
}, [code]);
|
|
3441
3450
|
const onContinue = async () => {
|
|
@@ -3459,17 +3468,17 @@ function StepVerify(props) {
|
|
|
3459
3468
|
setSubmitting(false);
|
|
3460
3469
|
}
|
|
3461
3470
|
};
|
|
3462
|
-
return /* @__PURE__ */ (0,
|
|
3463
|
-
/* @__PURE__ */ (0,
|
|
3464
|
-
/* @__PURE__ */ (0,
|
|
3465
|
-
/* @__PURE__ */ (0,
|
|
3466
|
-
/* @__PURE__ */ (0,
|
|
3467
|
-
/* @__PURE__ */ (0,
|
|
3471
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "matchid-email-verify-box", children: [
|
|
3472
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "matchid-email-verify-header", children: [
|
|
3473
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "matchid-email-verify-header-icon", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(EmailLineIcon, { size: isDownMd ? 19 : 24 }) }),
|
|
3474
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "matchid-email-verify-header-content", children: [
|
|
3475
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "matchid-email-verify-header-value", children: props.email }),
|
|
3476
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "matchid-email-verify-header-tips", children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_react_intl6.FormattedMessage, { id: "sendEmailTips" }) })
|
|
3468
3477
|
] })
|
|
3469
3478
|
] }),
|
|
3470
|
-
/* @__PURE__ */ (0,
|
|
3479
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Field, { label: intl.formatMessage({
|
|
3471
3480
|
id: "verificationCode"
|
|
3472
|
-
}), error, children: /* @__PURE__ */ (0,
|
|
3481
|
+
}), error, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
3473
3482
|
Input,
|
|
3474
3483
|
{
|
|
3475
3484
|
placeholder: intl.formatMessage({
|
|
@@ -3479,7 +3488,7 @@ function StepVerify(props) {
|
|
|
3479
3488
|
maxLength: codeLength,
|
|
3480
3489
|
onChange: (e) => setCode(e.target.value),
|
|
3481
3490
|
value: code,
|
|
3482
|
-
after: /* @__PURE__ */ (0,
|
|
3491
|
+
after: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
3483
3492
|
Button,
|
|
3484
3493
|
{
|
|
3485
3494
|
highlight: true,
|
|
@@ -3498,13 +3507,13 @@ function StepVerify(props) {
|
|
|
3498
3507
|
)
|
|
3499
3508
|
}
|
|
3500
3509
|
) }),
|
|
3501
|
-
/* @__PURE__ */ (0,
|
|
3510
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Button, { disabled: !canContinue, highlight: true, block: true, size: "lg", onClick: onContinue, children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_react_intl6.FormattedMessage, { id: "continue" }) })
|
|
3502
3511
|
] });
|
|
3503
3512
|
}
|
|
3504
3513
|
|
|
3505
3514
|
// src/components/EmailModal/index.tsx
|
|
3506
|
-
var
|
|
3507
|
-
var
|
|
3515
|
+
var import_react_intl7 = require("react-intl");
|
|
3516
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
3508
3517
|
function EmailModal({
|
|
3509
3518
|
isOpen = false,
|
|
3510
3519
|
width = 480,
|
|
@@ -3512,16 +3521,16 @@ function EmailModal({
|
|
|
3512
3521
|
onBack,
|
|
3513
3522
|
onLogin
|
|
3514
3523
|
}) {
|
|
3515
|
-
const [step, setStep] = (0,
|
|
3516
|
-
const [emailVal, setEmailVal] = (0,
|
|
3517
|
-
const intl = (0,
|
|
3518
|
-
(0,
|
|
3524
|
+
const [step, setStep] = (0, import_react24.useState)("input");
|
|
3525
|
+
const [emailVal, setEmailVal] = (0, import_react24.useState)("");
|
|
3526
|
+
const intl = (0, import_react_intl7.useIntl)();
|
|
3527
|
+
(0, import_react24.useEffect)(() => {
|
|
3519
3528
|
if (!isOpen) {
|
|
3520
3529
|
setStep("input");
|
|
3521
3530
|
setEmailVal("");
|
|
3522
3531
|
}
|
|
3523
3532
|
}, [isOpen]);
|
|
3524
|
-
return /* @__PURE__ */ (0,
|
|
3533
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
3525
3534
|
ModalWithHeader,
|
|
3526
3535
|
{
|
|
3527
3536
|
isOpen,
|
|
@@ -3531,22 +3540,22 @@ function EmailModal({
|
|
|
3531
3540
|
id: "email"
|
|
3532
3541
|
}),
|
|
3533
3542
|
onBack: step == "verify" ? () => setStep("input") : onBack,
|
|
3534
|
-
children: step === "input" ? /* @__PURE__ */ (0,
|
|
3543
|
+
children: step === "input" ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(StepEmail, { email: emailVal, onContinue: (email) => {
|
|
3535
3544
|
setEmailVal(email);
|
|
3536
3545
|
setStep("verify");
|
|
3537
|
-
} }) : /* @__PURE__ */ (0,
|
|
3546
|
+
} }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(StepVerify, { email: emailVal, onSuccess: onLogin })
|
|
3538
3547
|
}
|
|
3539
3548
|
);
|
|
3540
3549
|
}
|
|
3541
3550
|
|
|
3542
3551
|
// src/components/LoginBox/index.tsx
|
|
3543
|
-
var
|
|
3544
|
-
var
|
|
3552
|
+
var import_react25 = require("react");
|
|
3553
|
+
var import_react_intl8 = require("react-intl");
|
|
3545
3554
|
|
|
3546
3555
|
// src/hooks/useAppConfig.ts
|
|
3547
|
-
var
|
|
3556
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
3548
3557
|
function useAppConfig() {
|
|
3549
|
-
const query = (0,
|
|
3558
|
+
const query = (0, import_react_query8.useQuery)({
|
|
3550
3559
|
queryKey: ["appConfig"],
|
|
3551
3560
|
queryFn: async () => {
|
|
3552
3561
|
const res = await getAppConfigApi();
|
|
@@ -3564,7 +3573,7 @@ function useAppConfig() {
|
|
|
3564
3573
|
}
|
|
3565
3574
|
|
|
3566
3575
|
// src/components/LoginBox/index.tsx
|
|
3567
|
-
var
|
|
3576
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
3568
3577
|
var RecommendItem = ({
|
|
3569
3578
|
icon,
|
|
3570
3579
|
name,
|
|
@@ -3573,20 +3582,20 @@ var RecommendItem = ({
|
|
|
3573
3582
|
children,
|
|
3574
3583
|
footer
|
|
3575
3584
|
}) => {
|
|
3576
|
-
return /* @__PURE__ */ (0,
|
|
3577
|
-
/* @__PURE__ */ (0,
|
|
3578
|
-
/* @__PURE__ */ (0,
|
|
3579
|
-
/* @__PURE__ */ (0,
|
|
3580
|
-
/* @__PURE__ */ (0,
|
|
3585
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-login-recommend-method", children: [
|
|
3586
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-login-recommend-method-item", onClick, children: [
|
|
3587
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-login-recommend-method-content", children: [
|
|
3588
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-recommend-method-icon", children: icon }),
|
|
3589
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("span", { className: "matchid-login-recommend-method-name", children: name })
|
|
3581
3590
|
] }),
|
|
3582
|
-
footer ? footer : children ? /* @__PURE__ */ (0,
|
|
3591
|
+
footer ? footer : children ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3583
3592
|
ArrowDownIcon,
|
|
3584
3593
|
{
|
|
3585
3594
|
className: `matchid-login-recommend-method-arrow ${showChildren ? "matchid-login-recommend-method-arrow-active" : ""}`,
|
|
3586
3595
|
size: 20,
|
|
3587
3596
|
color: "var(--matchid-arrow-color)"
|
|
3588
3597
|
}
|
|
3589
|
-
) : /* @__PURE__ */ (0,
|
|
3598
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3590
3599
|
ArrowRightIcon,
|
|
3591
3600
|
{
|
|
3592
3601
|
className: "matchid-login-recommend-method-arrow",
|
|
@@ -3595,7 +3604,7 @@ var RecommendItem = ({
|
|
|
3595
3604
|
}
|
|
3596
3605
|
)
|
|
3597
3606
|
] }),
|
|
3598
|
-
children && /* @__PURE__ */ (0,
|
|
3607
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3599
3608
|
"div",
|
|
3600
3609
|
{
|
|
3601
3610
|
className: `matchid-login-recommend-method-popover ${showChildren ? "matchid-login-recommend-method-popover-active" : ""}`,
|
|
@@ -3611,7 +3620,7 @@ function LoginBox({
|
|
|
3611
3620
|
inModal = false
|
|
3612
3621
|
}) {
|
|
3613
3622
|
const config = useAppConfig();
|
|
3614
|
-
const methodConfig = (0,
|
|
3623
|
+
const methodConfig = (0, import_react25.useMemo)(() => {
|
|
3615
3624
|
if (recommendMethods || methods || walletMethods) {
|
|
3616
3625
|
return {
|
|
3617
3626
|
recommendMethods: recommendMethods ? recommendMethods : walletMethods ? ["wallet"] : [],
|
|
@@ -3653,82 +3662,82 @@ function LoginBox({
|
|
|
3653
3662
|
walletMethods: walletMethodList
|
|
3654
3663
|
};
|
|
3655
3664
|
}, [config.platform, recommendMethods, methods, walletMethods]);
|
|
3656
|
-
const [emailOpen, setEmailOpen] = (0,
|
|
3665
|
+
const [emailOpen, setEmailOpen] = (0, import_react25.useState)(false);
|
|
3657
3666
|
const { login } = useUserInfo();
|
|
3658
|
-
const [showWallet, setShowWallet] = (0,
|
|
3659
|
-
const intl = (0,
|
|
3667
|
+
const [showWallet, setShowWallet] = (0, import_react25.useState)(false);
|
|
3668
|
+
const intl = (0, import_react_intl8.useIntl)();
|
|
3660
3669
|
const isDownMd = useDownMd();
|
|
3661
3670
|
const methodMap = {
|
|
3662
3671
|
wallet: {
|
|
3663
|
-
icon: /* @__PURE__ */ (0,
|
|
3672
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(WalletIcon, { size: isDownMd ? 36 : 40 }),
|
|
3664
3673
|
name: intl.formatMessage({ id: "wallet" }),
|
|
3665
3674
|
onClick: () => setShowWallet(!showWallet),
|
|
3666
3675
|
type: "wallet"
|
|
3667
3676
|
},
|
|
3668
3677
|
email: {
|
|
3669
|
-
icon: /* @__PURE__ */ (0,
|
|
3678
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(EmailIcon, { size: isDownMd ? 36 : 40 }),
|
|
3670
3679
|
name: intl.formatMessage({ id: "email" }),
|
|
3671
3680
|
onClick: () => {
|
|
3672
3681
|
setEmailOpen(true);
|
|
3673
3682
|
}
|
|
3674
3683
|
},
|
|
3675
3684
|
google: {
|
|
3676
|
-
icon: /* @__PURE__ */ (0,
|
|
3685
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(GoogleIcon, { size: isDownMd ? 36 : 40 }),
|
|
3677
3686
|
name: "Google",
|
|
3678
3687
|
onClick: () => login("google")
|
|
3679
3688
|
},
|
|
3680
3689
|
twitter: {
|
|
3681
|
-
icon: /* @__PURE__ */ (0,
|
|
3690
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(XIcon, { size: isDownMd ? 36 : 40 }),
|
|
3682
3691
|
name: "X",
|
|
3683
3692
|
onClick: () => login("twitter")
|
|
3684
3693
|
},
|
|
3685
3694
|
telegram: {
|
|
3686
|
-
icon: /* @__PURE__ */ (0,
|
|
3695
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(TelegramIcon, { size: isDownMd ? 36 : 40 }),
|
|
3687
3696
|
name: "Telegram",
|
|
3688
3697
|
onClick: () => login("telegram")
|
|
3689
3698
|
},
|
|
3690
3699
|
github: {
|
|
3691
|
-
icon: /* @__PURE__ */ (0,
|
|
3700
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(GithubIcon, { size: isDownMd ? 36 : 40 }),
|
|
3692
3701
|
name: "Github",
|
|
3693
3702
|
onClick: () => login("github")
|
|
3694
3703
|
},
|
|
3695
3704
|
discord: {
|
|
3696
|
-
icon: /* @__PURE__ */ (0,
|
|
3705
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(DiscordIcon, { size: isDownMd ? 36 : 40 }),
|
|
3697
3706
|
name: "Discord",
|
|
3698
3707
|
onClick: () => login("discord")
|
|
3699
3708
|
},
|
|
3700
3709
|
linkedin: {
|
|
3701
|
-
icon: /* @__PURE__ */ (0,
|
|
3710
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(LinkedinIcon, { size: isDownMd ? 36 : 40 }),
|
|
3702
3711
|
name: "LinkedIn",
|
|
3703
3712
|
onClick: () => login("linkedin")
|
|
3704
3713
|
},
|
|
3705
3714
|
facebook: {
|
|
3706
|
-
icon: /* @__PURE__ */ (0,
|
|
3715
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(FacebookIcon, { size: isDownMd ? 36 : 40 }),
|
|
3707
3716
|
name: "Facebook",
|
|
3708
3717
|
onClick: () => login("facebook")
|
|
3709
3718
|
},
|
|
3710
3719
|
youtube: {
|
|
3711
|
-
icon: /* @__PURE__ */ (0,
|
|
3720
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(YoutubeIcon, { size: isDownMd ? 36 : 40 }),
|
|
3712
3721
|
name: "Youtube",
|
|
3713
3722
|
onClick: () => login("youtube")
|
|
3714
3723
|
}
|
|
3715
3724
|
};
|
|
3716
3725
|
const { walletMap } = useWalletConfig();
|
|
3717
|
-
return /* @__PURE__ */ (0,
|
|
3718
|
-
(!inModal || !emailOpen) && /* @__PURE__ */ (0,
|
|
3719
|
-
/* @__PURE__ */ (0,
|
|
3720
|
-
return /* @__PURE__ */ (0,
|
|
3726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
|
|
3727
|
+
(!inModal || !emailOpen) && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-login-box", children: [
|
|
3728
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-recommend-list", children: methodConfig.recommendMethods.map((m) => {
|
|
3729
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3721
3730
|
RecommendItem,
|
|
3722
3731
|
{
|
|
3723
3732
|
icon: methodMap[m]?.icon,
|
|
3724
3733
|
name: methodMap[m]?.name,
|
|
3725
3734
|
onClick: methodMap[m]?.onClick,
|
|
3726
3735
|
showChildren: m == "wallet" && showWallet,
|
|
3727
|
-
children: m == "wallet" && /* @__PURE__ */ (0,
|
|
3728
|
-
/* @__PURE__ */ (0,
|
|
3729
|
-
/* @__PURE__ */ (0,
|
|
3736
|
+
children: m == "wallet" && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_jsx_runtime76.Fragment, { children: [
|
|
3737
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-recommend-wallet-divider" }),
|
|
3738
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-recommend-wallet-list", children: methodConfig.walletMethods.map((n) => {
|
|
3730
3739
|
const m2 = walletMap[n];
|
|
3731
|
-
return /* @__PURE__ */ (0,
|
|
3740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
|
|
3732
3741
|
"div",
|
|
3733
3742
|
{
|
|
3734
3743
|
className: "matchid-login-recommend-wallet-item",
|
|
@@ -3736,16 +3745,16 @@ function LoginBox({
|
|
|
3736
3745
|
login(m2.method);
|
|
3737
3746
|
},
|
|
3738
3747
|
children: [
|
|
3739
|
-
/* @__PURE__ */ (0,
|
|
3740
|
-
/* @__PURE__ */ (0,
|
|
3741
|
-
/* @__PURE__ */ (0,
|
|
3748
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-login-recommend-wallet-item-content", children: [
|
|
3749
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-recommend-wallet-item-icon", children: m2.icon }),
|
|
3750
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3742
3751
|
"div",
|
|
3743
3752
|
{
|
|
3744
3753
|
className: "matchid-login-recommend-wallet-item-hover-icon",
|
|
3745
3754
|
children: m2.activeIcon
|
|
3746
3755
|
}
|
|
3747
3756
|
),
|
|
3748
|
-
/* @__PURE__ */ (0,
|
|
3757
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3749
3758
|
"span",
|
|
3750
3759
|
{
|
|
3751
3760
|
className: "matchid-login-recommend-wallet-item-name",
|
|
@@ -3753,7 +3762,7 @@ function LoginBox({
|
|
|
3753
3762
|
}
|
|
3754
3763
|
)
|
|
3755
3764
|
] }),
|
|
3756
|
-
/* @__PURE__ */ (0,
|
|
3765
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3757
3766
|
ArrowRightIcon,
|
|
3758
3767
|
{
|
|
3759
3768
|
className: "matchid-login-recommend-wallet-item-arrow",
|
|
@@ -3771,10 +3780,10 @@ function LoginBox({
|
|
|
3771
3780
|
m
|
|
3772
3781
|
);
|
|
3773
3782
|
}) }),
|
|
3774
|
-
methodConfig.methods.length > 0 && /* @__PURE__ */ (0,
|
|
3775
|
-
/* @__PURE__ */ (0,
|
|
3776
|
-
/* @__PURE__ */ (0,
|
|
3777
|
-
return /* @__PURE__ */ (0,
|
|
3783
|
+
methodConfig.methods.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", { className: "matchid-login-other", children: [
|
|
3784
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-other-text", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_react_intl8.FormattedMessage, { id: "otherLoginMethods" }) }),
|
|
3785
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "matchid-login-method-box", children: methodConfig.methods.map((m) => {
|
|
3786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3778
3787
|
"div",
|
|
3779
3788
|
{
|
|
3780
3789
|
className: "matchid-login-method-item",
|
|
@@ -3787,7 +3796,7 @@ function LoginBox({
|
|
|
3787
3796
|
}) })
|
|
3788
3797
|
] })
|
|
3789
3798
|
] }),
|
|
3790
|
-
/* @__PURE__ */ (0,
|
|
3799
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
3791
3800
|
EmailModal,
|
|
3792
3801
|
{
|
|
3793
3802
|
isOpen: emailOpen,
|
|
@@ -3803,56 +3812,56 @@ function LoginBox({
|
|
|
3803
3812
|
}
|
|
3804
3813
|
|
|
3805
3814
|
// src/components/LoginButton/index.tsx
|
|
3806
|
-
var
|
|
3815
|
+
var import_react27 = require("react");
|
|
3807
3816
|
|
|
3808
3817
|
// src/components/LoginPanel/index.tsx
|
|
3809
|
-
var
|
|
3810
|
-
var
|
|
3818
|
+
var import_react_intl9 = require("react-intl");
|
|
3819
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
3811
3820
|
function LoginPanel({
|
|
3812
3821
|
header,
|
|
3813
3822
|
onClose,
|
|
3814
3823
|
...props
|
|
3815
3824
|
}) {
|
|
3816
3825
|
const isDownMd = useDownMd();
|
|
3817
|
-
return /* @__PURE__ */ (0,
|
|
3818
|
-
header ? header : /* @__PURE__ */ (0,
|
|
3819
|
-
/* @__PURE__ */ (0,
|
|
3820
|
-
/* @__PURE__ */ (0,
|
|
3821
|
-
/* @__PURE__ */ (0,
|
|
3826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "matchid-login-panel", children: [
|
|
3827
|
+
header ? header : /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "matchid-login-panel-header", children: [
|
|
3828
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "matchid-login-panel-header-content", children: [
|
|
3829
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "matchid-login-panel-header-title", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_react_intl9.FormattedMessage, { id: "loginTitle" }) }),
|
|
3830
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "matchid-login-panel-header-subtilte", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_react_intl9.FormattedMessage, { id: "loginTips" }) })
|
|
3822
3831
|
] }),
|
|
3823
|
-
onClose && /* @__PURE__ */ (0,
|
|
3832
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "matchid-login-panel-header-close", onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(CloseRoundIcon, { size: isDownMd ? 24 : 30 }) })
|
|
3824
3833
|
] }),
|
|
3825
|
-
/* @__PURE__ */ (0,
|
|
3826
|
-
/* @__PURE__ */ (0,
|
|
3834
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "matchid-login-panel-divide" }),
|
|
3835
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "matchid-login-panel-box", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(LoginBox, { ...props }) })
|
|
3827
3836
|
] });
|
|
3828
3837
|
}
|
|
3829
3838
|
|
|
3830
3839
|
// src/components/LoginModal/index.tsx
|
|
3831
|
-
var
|
|
3840
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
3832
3841
|
function LoginModal({
|
|
3833
3842
|
isOpen = false,
|
|
3834
3843
|
width = 480,
|
|
3835
3844
|
...props
|
|
3836
3845
|
}) {
|
|
3837
3846
|
const { isLogin } = useUserInfo();
|
|
3838
|
-
return /* @__PURE__ */ (0,
|
|
3847
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
3839
3848
|
Modal,
|
|
3840
3849
|
{
|
|
3841
3850
|
isOpen: isOpen && !isLogin,
|
|
3842
3851
|
width,
|
|
3843
|
-
children: /* @__PURE__ */ (0,
|
|
3852
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(LoginPanel, { ...props, inModal: true })
|
|
3844
3853
|
}
|
|
3845
3854
|
);
|
|
3846
3855
|
}
|
|
3847
3856
|
|
|
3848
3857
|
// src/components/UserPopover/index.tsx
|
|
3849
|
-
var
|
|
3858
|
+
var import_react26 = require("react");
|
|
3850
3859
|
|
|
3851
3860
|
// src/assets/icon/ProfileIcon.tsx
|
|
3852
|
-
var
|
|
3861
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
3853
3862
|
function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
3854
|
-
return /* @__PURE__ */ (0,
|
|
3855
|
-
/* @__PURE__ */ (0,
|
|
3863
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
3864
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
3856
3865
|
"path",
|
|
3857
3866
|
{
|
|
3858
3867
|
fillRule: "evenodd",
|
|
@@ -3861,7 +3870,7 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
|
3861
3870
|
fill: color
|
|
3862
3871
|
}
|
|
3863
3872
|
),
|
|
3864
|
-
/* @__PURE__ */ (0,
|
|
3873
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
3865
3874
|
"path",
|
|
3866
3875
|
{
|
|
3867
3876
|
fillRule: "evenodd",
|
|
@@ -3874,11 +3883,11 @@ function ProfileIcon({ size = 24, color = "black", ...props }) {
|
|
|
3874
3883
|
}
|
|
3875
3884
|
|
|
3876
3885
|
// src/components/UserPopover/index.tsx
|
|
3877
|
-
var
|
|
3878
|
-
var
|
|
3886
|
+
var import_react_intl10 = require("react-intl");
|
|
3887
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
3879
3888
|
function UserContent() {
|
|
3880
3889
|
const { logout, address, username } = useUserInfo();
|
|
3881
|
-
const [logouting, setLogouting] = (0,
|
|
3890
|
+
const [logouting, setLogouting] = (0, import_react26.useState)(false);
|
|
3882
3891
|
const onLogout = async () => {
|
|
3883
3892
|
if (logouting) return;
|
|
3884
3893
|
try {
|
|
@@ -3896,34 +3905,34 @@ function UserContent() {
|
|
|
3896
3905
|
rightIcon,
|
|
3897
3906
|
onClick
|
|
3898
3907
|
}) => {
|
|
3899
|
-
return /* @__PURE__ */ (0,
|
|
3900
|
-
/* @__PURE__ */ (0,
|
|
3908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "matchid-user-popover-item", onClick, children: [
|
|
3909
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: `matchid-user-popover-item-content`, children: [
|
|
3901
3910
|
icon,
|
|
3902
|
-
/* @__PURE__ */ (0,
|
|
3911
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "matchid-user-popover-item-text", children })
|
|
3903
3912
|
] }),
|
|
3904
3913
|
rightIcon
|
|
3905
3914
|
] });
|
|
3906
3915
|
};
|
|
3907
3916
|
const UserDivider = () => {
|
|
3908
|
-
return /* @__PURE__ */ (0,
|
|
3917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: `matchid-user-popover-divider` });
|
|
3909
3918
|
};
|
|
3910
|
-
const [usernameOpen, setUsernameOpen] = (0,
|
|
3919
|
+
const [usernameOpen, setUsernameOpen] = (0, import_react26.useState)(false);
|
|
3911
3920
|
const [copied, setCopied] = useCopyClipboard();
|
|
3912
|
-
const intl = (0,
|
|
3913
|
-
return /* @__PURE__ */ (0,
|
|
3914
|
-
/* @__PURE__ */ (0,
|
|
3915
|
-
/* @__PURE__ */ (0,
|
|
3921
|
+
const intl = (0, import_react_intl10.useIntl)();
|
|
3922
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "matchid-user-popover-content", children: [
|
|
3923
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "matchid-user-popover-list", children: [
|
|
3924
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(UserItem, { onClick: () => {
|
|
3916
3925
|
setCopied(address);
|
|
3917
|
-
}, icon: copied ? /* @__PURE__ */ (0,
|
|
3918
|
-
/* @__PURE__ */ (0,
|
|
3919
|
-
/* @__PURE__ */ (0,
|
|
3926
|
+
}, icon: copied ? /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CheckIcon, { size: 20, color: "#0ecb81" }) : /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CopyIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(CheckIcon, { size: 20, color: "var(--icon-color)" }), children: truncateAddress(address) }),
|
|
3927
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(UserDivider, {}),
|
|
3928
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(UserItem, { onClick: () => {
|
|
3920
3929
|
setUsernameOpen(true);
|
|
3921
|
-
}, icon: /* @__PURE__ */ (0,
|
|
3930
|
+
}, icon: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(ProfileIcon, { size: 20, color: "var(--icon-color)" }), rightIcon: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(ArrowRightIcon, { size: 20, color: "var(--icon-color)" }), children: username || intl.formatMessage({
|
|
3922
3931
|
id: "setUsername"
|
|
3923
3932
|
}) })
|
|
3924
3933
|
] }),
|
|
3925
|
-
/* @__PURE__ */ (0,
|
|
3926
|
-
/* @__PURE__ */ (0,
|
|
3934
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Button, { onClick: onLogout, loading: logouting, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_react_intl10.FormattedMessage, { id: "disconnect" }) }),
|
|
3935
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(UsernameModal, { isOpen: usernameOpen, onClose: () => {
|
|
3927
3936
|
setUsernameOpen(false);
|
|
3928
3937
|
}, onSuccess: () => {
|
|
3929
3938
|
setUsernameOpen(false);
|
|
@@ -3934,12 +3943,12 @@ function UserPopover({
|
|
|
3934
3943
|
children,
|
|
3935
3944
|
...props
|
|
3936
3945
|
}) {
|
|
3937
|
-
return /* @__PURE__ */ (0,
|
|
3946
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Popover, { ...props, content: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(UserContent, {}), children });
|
|
3938
3947
|
}
|
|
3939
3948
|
|
|
3940
3949
|
// src/components/LoginButton/index.tsx
|
|
3941
|
-
var
|
|
3942
|
-
var
|
|
3950
|
+
var import_react_intl11 = require("react-intl");
|
|
3951
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
3943
3952
|
function LoginButton({
|
|
3944
3953
|
loginRender,
|
|
3945
3954
|
methods,
|
|
@@ -3951,12 +3960,12 @@ function LoginButton({
|
|
|
3951
3960
|
walletMethods,
|
|
3952
3961
|
...props
|
|
3953
3962
|
}) {
|
|
3954
|
-
const intl = (0,
|
|
3963
|
+
const intl = (0, import_react_intl11.useIntl)();
|
|
3955
3964
|
const { isLogin, username } = useUserInfo();
|
|
3956
|
-
const [loginOpen, setLoginOpen] = (0,
|
|
3965
|
+
const [loginOpen, setLoginOpen] = (0, import_react27.useState)(false);
|
|
3957
3966
|
if (!isLogin) {
|
|
3958
|
-
return /* @__PURE__ */ (0,
|
|
3959
|
-
/* @__PURE__ */ (0,
|
|
3967
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(import_jsx_runtime81.Fragment, { children: [
|
|
3968
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
3960
3969
|
LoginModal,
|
|
3961
3970
|
{
|
|
3962
3971
|
methods,
|
|
@@ -3966,32 +3975,32 @@ function LoginButton({
|
|
|
3966
3975
|
onClose: () => setLoginOpen(false)
|
|
3967
3976
|
}
|
|
3968
3977
|
),
|
|
3969
|
-
/* @__PURE__ */ (0,
|
|
3970
|
-
/* @__PURE__ */ (0,
|
|
3971
|
-
/* @__PURE__ */ (0,
|
|
3978
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(Button, { className: "matchid-unlogin-btn", ...props, highlight: true, onClick: () => setLoginOpen(true), children: [
|
|
3979
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(UnLoginIcon_default, {}),
|
|
3980
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_react_intl11.FormattedMessage, { id: "login" }) })
|
|
3972
3981
|
] })
|
|
3973
3982
|
] });
|
|
3974
3983
|
}
|
|
3975
|
-
return loginRender ? /* @__PURE__ */ (0,
|
|
3976
|
-
/* @__PURE__ */ (0,
|
|
3977
|
-
/* @__PURE__ */ (0,
|
|
3984
|
+
return loginRender ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_jsx_runtime81.Fragment, { children: loginRender }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(UserPopover, { position: popoverPosition, type: popoverType, gap: popoverGap, children: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(Button, { onClick: onLoginClick, className: "matchid-login-btn", ...props, children: [
|
|
3985
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(LoginIcon_default, {}),
|
|
3986
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { children: username ? truncateAddress(username) : "MatchID " + intl.formatMessage({
|
|
3978
3987
|
id: "user"
|
|
3979
3988
|
}) })
|
|
3980
3989
|
] }) });
|
|
3981
3990
|
}
|
|
3982
3991
|
|
|
3983
3992
|
// src/components/UsernameModal/index.tsx
|
|
3984
|
-
var
|
|
3985
|
-
var
|
|
3986
|
-
var
|
|
3993
|
+
var import_react28 = require("react");
|
|
3994
|
+
var import_react_intl12 = require("react-intl");
|
|
3995
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
3987
3996
|
var ValidItem = ({
|
|
3988
3997
|
success = false,
|
|
3989
3998
|
text
|
|
3990
3999
|
}) => {
|
|
3991
4000
|
const isDownMd = useDownMd();
|
|
3992
|
-
return /* @__PURE__ */ (0,
|
|
3993
|
-
success ? /* @__PURE__ */ (0,
|
|
3994
|
-
/* @__PURE__ */ (0,
|
|
4001
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: `matchid-valid-status-item matchid-valid-status-${success ? "success" : "error"}`, children: [
|
|
4002
|
+
success ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(CheckRoundIcon, { size: isDownMd ? 12 : 16 }) : /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(InfoLineIcon, { size: isDownMd ? 12 : 16 }),
|
|
4003
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { children: text })
|
|
3995
4004
|
] });
|
|
3996
4005
|
};
|
|
3997
4006
|
function UsernameModal({
|
|
@@ -4002,23 +4011,23 @@ function UsernameModal({
|
|
|
4002
4011
|
}) {
|
|
4003
4012
|
const { username, refreshOverview } = useUserInfo();
|
|
4004
4013
|
const { isLogin } = useUserInfo();
|
|
4005
|
-
const [val, setVal] = (0,
|
|
4006
|
-
const [error, setError] = (0,
|
|
4014
|
+
const [val, setVal] = (0, import_react28.useState)(username);
|
|
4015
|
+
const [error, setError] = (0, import_react28.useState)("");
|
|
4007
4016
|
const isDownMd = useDownMd();
|
|
4008
|
-
(0,
|
|
4017
|
+
(0, import_react28.useEffect)(() => {
|
|
4009
4018
|
if (isOpen) {
|
|
4010
4019
|
setVal(username);
|
|
4011
4020
|
setError("");
|
|
4012
4021
|
}
|
|
4013
4022
|
}, [isOpen]);
|
|
4014
|
-
const isValid = (0,
|
|
4023
|
+
const isValid = (0, import_react28.useMemo)(() => {
|
|
4015
4024
|
return isValidUsername(val);
|
|
4016
4025
|
}, [val]);
|
|
4017
|
-
const isLength = (0,
|
|
4026
|
+
const isLength = (0, import_react28.useMemo)(() => {
|
|
4018
4027
|
return val.length >= 2 && val.length <= 32;
|
|
4019
4028
|
}, [val]);
|
|
4020
4029
|
const isSafe = isValid && isLength;
|
|
4021
|
-
const [isSubmitting, setIsSubmitting] = (0,
|
|
4030
|
+
const [isSubmitting, setIsSubmitting] = (0, import_react28.useState)(false);
|
|
4022
4031
|
const onSubmit = async () => {
|
|
4023
4032
|
if (isSubmitting) return;
|
|
4024
4033
|
try {
|
|
@@ -4038,13 +4047,13 @@ function UsernameModal({
|
|
|
4038
4047
|
setIsSubmitting(false);
|
|
4039
4048
|
}
|
|
4040
4049
|
};
|
|
4041
|
-
const intl = (0,
|
|
4042
|
-
return /* @__PURE__ */ (0,
|
|
4050
|
+
const intl = (0, import_react_intl12.useIntl)();
|
|
4051
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ModalWithHeader, { isOpen: isOpen && isLogin, ...props, title: title || intl.formatMessage({
|
|
4043
4052
|
id: username ? "editUsernameTitle" : "setUsernameTitle"
|
|
4044
|
-
}), children: /* @__PURE__ */ (0,
|
|
4045
|
-
/* @__PURE__ */ (0,
|
|
4053
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "matchid-username-box", children: [
|
|
4054
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Field, { label: intl.formatMessage({
|
|
4046
4055
|
id: "username"
|
|
4047
|
-
}), error, children: /* @__PURE__ */ (0,
|
|
4056
|
+
}), error, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4048
4057
|
Input,
|
|
4049
4058
|
{
|
|
4050
4059
|
placeholder: intl.formatMessage({
|
|
@@ -4057,8 +4066,8 @@ function UsernameModal({
|
|
|
4057
4066
|
value: val
|
|
4058
4067
|
}
|
|
4059
4068
|
) }),
|
|
4060
|
-
/* @__PURE__ */ (0,
|
|
4061
|
-
/* @__PURE__ */ (0,
|
|
4069
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "matchid-valid", children: [
|
|
4070
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
4062
4071
|
ValidItem,
|
|
4063
4072
|
{
|
|
4064
4073
|
success: isValid,
|
|
@@ -4067,21 +4076,21 @@ function UsernameModal({
|
|
|
4067
4076
|
})
|
|
4068
4077
|
}
|
|
4069
4078
|
),
|
|
4070
|
-
/* @__PURE__ */ (0,
|
|
4079
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ValidItem, { success: isLength, text: intl.formatMessage({
|
|
4071
4080
|
id: "usernameLengthError"
|
|
4072
4081
|
}) })
|
|
4073
4082
|
] }),
|
|
4074
|
-
/* @__PURE__ */ (0,
|
|
4083
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Button, { disabled: !isSafe, loading: isSubmitting, style: {
|
|
4075
4084
|
marginTop: isDownMd ? "36px" : "64px"
|
|
4076
|
-
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0,
|
|
4077
|
-
/* @__PURE__ */ (0,
|
|
4085
|
+
}, onClick: onSubmit, size: "lg", block: true, highlight: true, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_react_intl12.FormattedMessage, { id: "confirm" }) }),
|
|
4086
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Button, { style: {
|
|
4078
4087
|
marginTop: isDownMd ? "12px" : "24px"
|
|
4079
|
-
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0,
|
|
4088
|
+
}, onClick: props.onClose, size: "lg", block: true, children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_react_intl12.FormattedMessage, { id: "cancel" }) })
|
|
4080
4089
|
] }) });
|
|
4081
4090
|
}
|
|
4082
4091
|
|
|
4083
4092
|
// src/components/SOLModal/index.tsx
|
|
4084
|
-
var
|
|
4093
|
+
var import_react30 = __toESM(require("react"));
|
|
4085
4094
|
var import_web3 = require("@solana/web3.js");
|
|
4086
4095
|
var import_wallet_adapter_react = require("@solana/wallet-adapter-react");
|
|
4087
4096
|
var import_wallet_adapter_react_ui = require("@solana/wallet-adapter-react-ui");
|
|
@@ -4097,10 +4106,10 @@ var WalletAdapterNetwork;
|
|
|
4097
4106
|
// src/components/SOLModal/index.tsx
|
|
4098
4107
|
var import_wallet_adapter_wallets = require("@solana/wallet-adapter-wallets");
|
|
4099
4108
|
var import_styles = require("@solana/wallet-adapter-react-ui/styles.css");
|
|
4100
|
-
var
|
|
4109
|
+
var import_react_intl13 = require("react-intl");
|
|
4101
4110
|
|
|
4102
4111
|
// src/components/WalletModalContent/index.tsx
|
|
4103
|
-
var
|
|
4112
|
+
var import_react29 = require("react");
|
|
4104
4113
|
|
|
4105
4114
|
// src/assets/wallet.ts
|
|
4106
4115
|
var walletErrorImage = "data:image/png;base64,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";
|
|
@@ -4110,7 +4119,7 @@ var walletConnectImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEA
|
|
|
4110
4119
|
var walletSigningImage = "data:image/png;base64,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";
|
|
4111
4120
|
|
|
4112
4121
|
// src/components/WalletModalContent/index.tsx
|
|
4113
|
-
var
|
|
4122
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
4114
4123
|
function WalletModalContent({
|
|
4115
4124
|
status,
|
|
4116
4125
|
error,
|
|
@@ -4121,7 +4130,7 @@ function WalletModalContent({
|
|
|
4121
4130
|
address,
|
|
4122
4131
|
connected
|
|
4123
4132
|
}) {
|
|
4124
|
-
const pageData = (0,
|
|
4133
|
+
const pageData = (0, import_react29.useMemo)(() => {
|
|
4125
4134
|
if (status == "success") {
|
|
4126
4135
|
return {
|
|
4127
4136
|
btnText: "Disconnect Wallet",
|
|
@@ -4180,12 +4189,12 @@ function WalletModalContent({
|
|
|
4180
4189
|
statusImage: walletConnectImage
|
|
4181
4190
|
};
|
|
4182
4191
|
}, [visible, connected, status, error, address]);
|
|
4183
|
-
return /* @__PURE__ */ (0,
|
|
4184
|
-
/* @__PURE__ */ (0,
|
|
4185
|
-
/* @__PURE__ */ (0,
|
|
4186
|
-
/* @__PURE__ */ (0,
|
|
4192
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "matchid-wallet-container", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: `matchid-wallet-box`, children: [
|
|
4193
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { className: `matchid-wallet-content`, children: [
|
|
4194
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("img", { src: pageData.statusImage }),
|
|
4195
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: pageData.isError ? "text-[#F7585E]" : "", children: pageData.text })
|
|
4187
4196
|
] }),
|
|
4188
|
-
/* @__PURE__ */ (0,
|
|
4197
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
4189
4198
|
Button,
|
|
4190
4199
|
{
|
|
4191
4200
|
block: true,
|
|
@@ -4200,7 +4209,7 @@ function WalletModalContent({
|
|
|
4200
4209
|
}
|
|
4201
4210
|
|
|
4202
4211
|
// src/components/SOLModal/index.tsx
|
|
4203
|
-
var
|
|
4212
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
4204
4213
|
function WalletContent({
|
|
4205
4214
|
onSuccess,
|
|
4206
4215
|
type
|
|
@@ -4208,17 +4217,17 @@ function WalletContent({
|
|
|
4208
4217
|
const { setVisible, visible } = (0, import_wallet_adapter_react_ui.useWalletModal)();
|
|
4209
4218
|
const wallet = (0, import_wallet_adapter_react.useWallet)();
|
|
4210
4219
|
const { events, login } = useMatch();
|
|
4211
|
-
const [status, setStatus] = (0,
|
|
4212
|
-
const statusRef =
|
|
4213
|
-
const [error, setError] = (0,
|
|
4214
|
-
(0,
|
|
4220
|
+
const [status, setStatus] = (0, import_react30.useState)("");
|
|
4221
|
+
const statusRef = import_react30.default.useRef(status);
|
|
4222
|
+
const [error, setError] = (0, import_react30.useState)("");
|
|
4223
|
+
(0, import_react30.useEffect)(() => {
|
|
4215
4224
|
const init = async () => {
|
|
4216
4225
|
await wallet.disconnect();
|
|
4217
4226
|
setVisible(true);
|
|
4218
4227
|
};
|
|
4219
4228
|
init();
|
|
4220
4229
|
}, []);
|
|
4221
|
-
(0,
|
|
4230
|
+
(0, import_react30.useEffect)(() => {
|
|
4222
4231
|
if (wallet.connected) {
|
|
4223
4232
|
console.log("wallet.connected", wallet.connected);
|
|
4224
4233
|
toLoginInWallet();
|
|
@@ -4282,7 +4291,7 @@ function WalletContent({
|
|
|
4282
4291
|
statusRef.current = "";
|
|
4283
4292
|
}
|
|
4284
4293
|
};
|
|
4285
|
-
return /* @__PURE__ */ (0,
|
|
4294
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
4286
4295
|
WalletModalContent,
|
|
4287
4296
|
{
|
|
4288
4297
|
connected: wallet.connected,
|
|
@@ -4342,20 +4351,20 @@ function SOLConnectModal({
|
|
|
4342
4351
|
onSuccess,
|
|
4343
4352
|
...props
|
|
4344
4353
|
}) {
|
|
4345
|
-
const intl = (0,
|
|
4346
|
-
return /* @__PURE__ */ (0,
|
|
4354
|
+
const intl = (0, import_react_intl13.useIntl)();
|
|
4355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4347
4356
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4348
4357
|
}, {
|
|
4349
4358
|
name: "SOL"
|
|
4350
|
-
}), children: /* @__PURE__ */ (0,
|
|
4359
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_wallet_adapter_react.ConnectionProvider, { endpoint: (0, import_web3.clusterApiUrl)("devnet"), children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_wallet_adapter_react.WalletProvider, { wallets, autoConnect: true, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_wallet_adapter_react_ui.WalletModalProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(WalletContent, { onSuccess, type }) }) }) }) });
|
|
4351
4360
|
}
|
|
4352
4361
|
function SOLModal(props) {
|
|
4353
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
4362
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(SOLConnectModal, { ...props });
|
|
4354
4363
|
}
|
|
4355
4364
|
|
|
4356
4365
|
// src/components/TRONModal/index.tsx
|
|
4357
|
-
var
|
|
4358
|
-
var
|
|
4366
|
+
var import_react32 = __toESM(require("react"));
|
|
4367
|
+
var import_react_intl14 = require("react-intl");
|
|
4359
4368
|
|
|
4360
4369
|
// src/lib/tron/TronLinkAdapter.ts
|
|
4361
4370
|
var TronLinkAdapter = class {
|
|
@@ -4388,7 +4397,7 @@ var TronLinkAdapter = class {
|
|
|
4388
4397
|
};
|
|
4389
4398
|
|
|
4390
4399
|
// src/hooks/useTRONWallet.ts
|
|
4391
|
-
var
|
|
4400
|
+
var import_react31 = require("react");
|
|
4392
4401
|
|
|
4393
4402
|
// src/lib/tron/BitgetAdapter.ts
|
|
4394
4403
|
var BitgetAdapter = class {
|
|
@@ -4433,9 +4442,9 @@ var OKXAdapter = class {
|
|
|
4433
4442
|
// src/hooks/useTRONWallet.ts
|
|
4434
4443
|
var useTRONWallet = () => {
|
|
4435
4444
|
const wallets2 = [new TronLinkAdapter(), new BitgetAdapter(), new OKXAdapter()];
|
|
4436
|
-
const [installedWallets, setInstalledWallets] = (0,
|
|
4437
|
-
const [address, setAddress] = (0,
|
|
4438
|
-
(0,
|
|
4445
|
+
const [installedWallets, setInstalledWallets] = (0, import_react31.useState)([]);
|
|
4446
|
+
const [address, setAddress] = (0, import_react31.useState)(null);
|
|
4447
|
+
(0, import_react31.useEffect)(() => {
|
|
4439
4448
|
const getInstalled = async () => {
|
|
4440
4449
|
const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
4441
4450
|
wallet: wallet2,
|
|
@@ -4445,11 +4454,11 @@ var useTRONWallet = () => {
|
|
|
4445
4454
|
};
|
|
4446
4455
|
getInstalled();
|
|
4447
4456
|
}, []);
|
|
4448
|
-
const [wallet, chooseWallet] = (0,
|
|
4457
|
+
const [wallet, chooseWallet] = (0, import_react31.useState)(null);
|
|
4449
4458
|
const onConnect = async () => {
|
|
4450
4459
|
setAddress(await wallet.connect());
|
|
4451
4460
|
};
|
|
4452
|
-
(0,
|
|
4461
|
+
(0, import_react31.useEffect)(() => {
|
|
4453
4462
|
if (!wallet) {
|
|
4454
4463
|
setAddress(null);
|
|
4455
4464
|
}
|
|
@@ -4465,25 +4474,25 @@ var useTRONWallet = () => {
|
|
|
4465
4474
|
};
|
|
4466
4475
|
|
|
4467
4476
|
// src/components/TRONModal/index.tsx
|
|
4468
|
-
var
|
|
4477
|
+
var import_jsx_runtime85 = require("react/jsx-runtime");
|
|
4469
4478
|
function TRONConnectModal({
|
|
4470
4479
|
type = "login",
|
|
4471
4480
|
onSuccess,
|
|
4472
4481
|
...props
|
|
4473
4482
|
}) {
|
|
4474
4483
|
const isDownMd = useDownMd();
|
|
4475
|
-
const intl = (0,
|
|
4484
|
+
const intl = (0, import_react_intl14.useIntl)();
|
|
4476
4485
|
const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useTRONWallet();
|
|
4477
4486
|
const iconMaps = {
|
|
4478
|
-
tronlink: /* @__PURE__ */ (0,
|
|
4479
|
-
bitget: /* @__PURE__ */ (0,
|
|
4480
|
-
okx: /* @__PURE__ */ (0,
|
|
4487
|
+
tronlink: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(TronLinkIcon, { size: isDownMd ? 36 : 40 }),
|
|
4488
|
+
bitget: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(BitgetIcon, { size: isDownMd ? 36 : 40 }),
|
|
4489
|
+
okx: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(OKXIcon, { size: isDownMd ? 36 : 40 })
|
|
4481
4490
|
};
|
|
4482
4491
|
const { events, login } = useMatch();
|
|
4483
|
-
const [status, setStatus] = (0,
|
|
4484
|
-
const statusRef =
|
|
4485
|
-
const [error, setError] = (0,
|
|
4486
|
-
const connected = (0,
|
|
4492
|
+
const [status, setStatus] = (0, import_react32.useState)("");
|
|
4493
|
+
const statusRef = import_react32.default.useRef(status);
|
|
4494
|
+
const [error, setError] = (0, import_react32.useState)("");
|
|
4495
|
+
const connected = (0, import_react32.useMemo)(() => {
|
|
4487
4496
|
return !!address;
|
|
4488
4497
|
}, [address]);
|
|
4489
4498
|
const disconnect = async () => {
|
|
@@ -4551,7 +4560,7 @@ function TRONConnectModal({
|
|
|
4551
4560
|
statusRef.current = "";
|
|
4552
4561
|
}
|
|
4553
4562
|
};
|
|
4554
|
-
(0,
|
|
4563
|
+
(0, import_react32.useEffect)(() => {
|
|
4555
4564
|
if (wallet) {
|
|
4556
4565
|
console.log("onConnect");
|
|
4557
4566
|
onConnect();
|
|
@@ -4559,21 +4568,21 @@ function TRONConnectModal({
|
|
|
4559
4568
|
setStatus("");
|
|
4560
4569
|
}
|
|
4561
4570
|
}, [wallet]);
|
|
4562
|
-
(0,
|
|
4571
|
+
(0, import_react32.useEffect)(() => {
|
|
4563
4572
|
if (address) {
|
|
4564
4573
|
toLoginInWallet();
|
|
4565
4574
|
}
|
|
4566
4575
|
}, [address]);
|
|
4567
|
-
(0,
|
|
4576
|
+
(0, import_react32.useEffect)(() => {
|
|
4568
4577
|
if (!props.isOpen) {
|
|
4569
4578
|
disconnect();
|
|
4570
4579
|
}
|
|
4571
4580
|
}, [props.isOpen]);
|
|
4572
|
-
return /* @__PURE__ */ (0,
|
|
4581
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4573
4582
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4574
4583
|
}, {
|
|
4575
4584
|
name: "TRON"
|
|
4576
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0,
|
|
4585
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
4577
4586
|
WalletModalContent,
|
|
4578
4587
|
{
|
|
4579
4588
|
error,
|
|
@@ -4586,9 +4595,9 @@ function TRONConnectModal({
|
|
|
4586
4595
|
setVisible: () => {
|
|
4587
4596
|
}
|
|
4588
4597
|
}
|
|
4589
|
-
) : /* @__PURE__ */ (0,
|
|
4598
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "matchid-login-recommend-list", children: [
|
|
4590
4599
|
installedWallets.map((wallet2) => {
|
|
4591
|
-
return /* @__PURE__ */ (0,
|
|
4600
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
4592
4601
|
RecommendItem,
|
|
4593
4602
|
{
|
|
4594
4603
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -4601,14 +4610,14 @@ function TRONConnectModal({
|
|
|
4601
4610
|
);
|
|
4602
4611
|
}),
|
|
4603
4612
|
wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
4604
|
-
return /* @__PURE__ */ (0,
|
|
4613
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
4605
4614
|
RecommendItem,
|
|
4606
4615
|
{
|
|
4607
4616
|
icon: iconMaps[wallet2.walletKey],
|
|
4608
4617
|
name: wallet2.name,
|
|
4609
4618
|
onClick: () => {
|
|
4610
4619
|
},
|
|
4611
|
-
footer: /* @__PURE__ */ (0,
|
|
4620
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Button, { size: "sm", onClick: () => {
|
|
4612
4621
|
window.open(wallet2.website);
|
|
4613
4622
|
}, children: "Install" })
|
|
4614
4623
|
},
|
|
@@ -4618,28 +4627,28 @@ function TRONConnectModal({
|
|
|
4618
4627
|
] }) }) });
|
|
4619
4628
|
}
|
|
4620
4629
|
function TRONModal(props) {
|
|
4621
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
4630
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(TRONConnectModal, { ...props, type: props.type });
|
|
4622
4631
|
}
|
|
4623
4632
|
|
|
4624
4633
|
// src/components/TONModal/index.tsx
|
|
4625
|
-
var
|
|
4626
|
-
var
|
|
4634
|
+
var import_react33 = __toESM(require("react"));
|
|
4635
|
+
var import_react_intl15 = require("react-intl");
|
|
4627
4636
|
var import_ui_react = require("@tonconnect/ui-react");
|
|
4628
|
-
var
|
|
4637
|
+
var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
4629
4638
|
function WalletContent2({
|
|
4630
4639
|
onSuccess,
|
|
4631
4640
|
type
|
|
4632
4641
|
}) {
|
|
4633
4642
|
const { events, login } = useMatch();
|
|
4634
|
-
const [connected, setConnected] = (0,
|
|
4643
|
+
const [connected, setConnected] = (0, import_react33.useState)(false);
|
|
4635
4644
|
const wallet = (0, import_ui_react.useTonWallet)();
|
|
4636
4645
|
const userFriendlyAddress = (0, import_ui_react.useTonAddress)();
|
|
4637
4646
|
const [tonConnectUI] = (0, import_ui_react.useTonConnectUI)();
|
|
4638
4647
|
const { state, open, close } = (0, import_ui_react.useTonConnectModal)();
|
|
4639
|
-
const [status, setStatus] = (0,
|
|
4640
|
-
const statusRef =
|
|
4641
|
-
const [error, setError] = (0,
|
|
4642
|
-
(0,
|
|
4648
|
+
const [status, setStatus] = (0, import_react33.useState)("");
|
|
4649
|
+
const statusRef = import_react33.default.useRef(status);
|
|
4650
|
+
const [error, setError] = (0, import_react33.useState)("");
|
|
4651
|
+
(0, import_react33.useEffect)(() => {
|
|
4643
4652
|
const init = async () => {
|
|
4644
4653
|
if (wallet) {
|
|
4645
4654
|
await tonConnectUI.disconnect();
|
|
@@ -4712,7 +4721,7 @@ function WalletContent2({
|
|
|
4712
4721
|
}
|
|
4713
4722
|
});
|
|
4714
4723
|
}, []);
|
|
4715
|
-
(0,
|
|
4724
|
+
(0, import_react33.useEffect)(() => {
|
|
4716
4725
|
if (wallet) {
|
|
4717
4726
|
setConnected(true);
|
|
4718
4727
|
console.log("Wallet connected:", wallet);
|
|
@@ -4723,7 +4732,7 @@ function WalletContent2({
|
|
|
4723
4732
|
setStatus("");
|
|
4724
4733
|
}
|
|
4725
4734
|
}, [wallet]);
|
|
4726
|
-
(0,
|
|
4735
|
+
(0, import_react33.useEffect)(() => {
|
|
4727
4736
|
console.log({
|
|
4728
4737
|
state,
|
|
4729
4738
|
wallet
|
|
@@ -4752,7 +4761,7 @@ function WalletContent2({
|
|
|
4752
4761
|
}
|
|
4753
4762
|
}
|
|
4754
4763
|
}, [state]);
|
|
4755
|
-
return /* @__PURE__ */ (0,
|
|
4764
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
4756
4765
|
WalletModalContent,
|
|
4757
4766
|
{
|
|
4758
4767
|
connected,
|
|
@@ -4783,28 +4792,28 @@ function TONConnectModal({
|
|
|
4783
4792
|
onSuccess,
|
|
4784
4793
|
...props
|
|
4785
4794
|
}) {
|
|
4786
|
-
const intl = (0,
|
|
4795
|
+
const intl = (0, import_react_intl15.useIntl)();
|
|
4787
4796
|
const { endpoints, appid } = useLocalStore_default();
|
|
4788
4797
|
const manifestUrl = `${endpoints.back}api/v1/wallet/ton?appid=${appid}&url=` + encodeURIComponent(window.location.origin);
|
|
4789
|
-
return /* @__PURE__ */ (0,
|
|
4798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
4790
4799
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
4791
4800
|
}, {
|
|
4792
4801
|
name: "TON"
|
|
4793
|
-
}), children: /* @__PURE__ */ (0,
|
|
4802
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
4794
4803
|
import_ui_react.TonConnectUIProvider,
|
|
4795
4804
|
{
|
|
4796
4805
|
manifestUrl,
|
|
4797
|
-
children: /* @__PURE__ */ (0,
|
|
4806
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(WalletContent2, { onSuccess, type })
|
|
4798
4807
|
}
|
|
4799
4808
|
) });
|
|
4800
4809
|
}
|
|
4801
4810
|
function TONModal(props) {
|
|
4802
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
4811
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(TONConnectModal, { ...props });
|
|
4803
4812
|
}
|
|
4804
4813
|
|
|
4805
4814
|
// src/components/BTCModal/index.tsx
|
|
4806
|
-
var
|
|
4807
|
-
var
|
|
4815
|
+
var import_react35 = __toESM(require("react"));
|
|
4816
|
+
var import_react_intl16 = require("react-intl");
|
|
4808
4817
|
|
|
4809
4818
|
// src/lib/btc/UnisatAdapter.ts
|
|
4810
4819
|
var UnisatAdapter = class {
|
|
@@ -4952,12 +4961,12 @@ var LeatherAdapter = class {
|
|
|
4952
4961
|
};
|
|
4953
4962
|
|
|
4954
4963
|
// src/hooks/useBTCWallet.ts
|
|
4955
|
-
var
|
|
4964
|
+
var import_react34 = require("react");
|
|
4956
4965
|
var useBTCWallet = () => {
|
|
4957
4966
|
const wallets2 = [new UnisatAdapter(), new XverseAdapter(), new LeatherAdapter()];
|
|
4958
|
-
const [installedWallets, setInstalledWallets] = (0,
|
|
4959
|
-
const [address, setAddress] = (0,
|
|
4960
|
-
(0,
|
|
4967
|
+
const [installedWallets, setInstalledWallets] = (0, import_react34.useState)([]);
|
|
4968
|
+
const [address, setAddress] = (0, import_react34.useState)(null);
|
|
4969
|
+
(0, import_react34.useEffect)(() => {
|
|
4961
4970
|
const getInstalled = async () => {
|
|
4962
4971
|
const installed = await Promise.all(wallets2.map((wallet2) => wallet2.isInstalled().then((isInstalled) => ({
|
|
4963
4972
|
wallet: wallet2,
|
|
@@ -4967,11 +4976,11 @@ var useBTCWallet = () => {
|
|
|
4967
4976
|
};
|
|
4968
4977
|
getInstalled();
|
|
4969
4978
|
}, []);
|
|
4970
|
-
const [wallet, chooseWallet] = (0,
|
|
4979
|
+
const [wallet, chooseWallet] = (0, import_react34.useState)(null);
|
|
4971
4980
|
const onConnect = async () => {
|
|
4972
4981
|
setAddress(await wallet.connect());
|
|
4973
4982
|
};
|
|
4974
|
-
(0,
|
|
4983
|
+
(0, import_react34.useEffect)(() => {
|
|
4975
4984
|
if (!wallet) {
|
|
4976
4985
|
setAddress(null);
|
|
4977
4986
|
}
|
|
@@ -4987,25 +4996,25 @@ var useBTCWallet = () => {
|
|
|
4987
4996
|
};
|
|
4988
4997
|
|
|
4989
4998
|
// src/components/BTCModal/index.tsx
|
|
4990
|
-
var
|
|
4999
|
+
var import_jsx_runtime87 = require("react/jsx-runtime");
|
|
4991
5000
|
function BTCConnectModal({
|
|
4992
5001
|
type = "login",
|
|
4993
5002
|
onSuccess,
|
|
4994
5003
|
...props
|
|
4995
5004
|
}) {
|
|
4996
5005
|
const isDownMd = useDownMd();
|
|
4997
|
-
const intl = (0,
|
|
5006
|
+
const intl = (0, import_react_intl16.useIntl)();
|
|
4998
5007
|
const { wallets: wallets2, installedWallets, chooseWallet, wallet, address, onConnect } = useBTCWallet();
|
|
4999
5008
|
const iconMaps = {
|
|
5000
|
-
leather: /* @__PURE__ */ (0,
|
|
5001
|
-
unisat: /* @__PURE__ */ (0,
|
|
5002
|
-
xverse: /* @__PURE__ */ (0,
|
|
5009
|
+
leather: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(LeatherIcon, { size: isDownMd ? 36 : 40 }),
|
|
5010
|
+
unisat: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(UnisatIcon, { size: isDownMd ? 36 : 40 }),
|
|
5011
|
+
xverse: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(XverseIcon, { size: isDownMd ? 36 : 40 })
|
|
5003
5012
|
};
|
|
5004
5013
|
const { events, login } = useMatch();
|
|
5005
|
-
const [status, setStatus] = (0,
|
|
5006
|
-
const statusRef =
|
|
5007
|
-
const [error, setError] = (0,
|
|
5008
|
-
const connected = (0,
|
|
5014
|
+
const [status, setStatus] = (0, import_react35.useState)("");
|
|
5015
|
+
const statusRef = import_react35.default.useRef(status);
|
|
5016
|
+
const [error, setError] = (0, import_react35.useState)("");
|
|
5017
|
+
const connected = (0, import_react35.useMemo)(() => {
|
|
5009
5018
|
return !!address;
|
|
5010
5019
|
}, [address]);
|
|
5011
5020
|
const disconnect = async () => {
|
|
@@ -5069,7 +5078,7 @@ function BTCConnectModal({
|
|
|
5069
5078
|
statusRef.current = "";
|
|
5070
5079
|
}
|
|
5071
5080
|
};
|
|
5072
|
-
(0,
|
|
5081
|
+
(0, import_react35.useEffect)(() => {
|
|
5073
5082
|
if (wallet) {
|
|
5074
5083
|
console.log("onConnect");
|
|
5075
5084
|
try {
|
|
@@ -5082,12 +5091,12 @@ function BTCConnectModal({
|
|
|
5082
5091
|
setStatus("");
|
|
5083
5092
|
}
|
|
5084
5093
|
}, [wallet]);
|
|
5085
|
-
(0,
|
|
5094
|
+
(0, import_react35.useEffect)(() => {
|
|
5086
5095
|
if (address) {
|
|
5087
5096
|
toLoginInWallet();
|
|
5088
5097
|
}
|
|
5089
5098
|
}, [address]);
|
|
5090
|
-
(0,
|
|
5099
|
+
(0, import_react35.useEffect)(() => {
|
|
5091
5100
|
if (!props.isOpen) {
|
|
5092
5101
|
disconnect();
|
|
5093
5102
|
}
|
|
@@ -5099,11 +5108,11 @@ function BTCConnectModal({
|
|
|
5099
5108
|
statusRef.current = "";
|
|
5100
5109
|
setError("");
|
|
5101
5110
|
};
|
|
5102
|
-
return /* @__PURE__ */ (0,
|
|
5111
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5103
5112
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5104
5113
|
}, {
|
|
5105
5114
|
name: "BTC"
|
|
5106
|
-
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0,
|
|
5115
|
+
}), onBack: wallet ? onBack : void 0, children: wallet ? /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
5107
5116
|
WalletModalContent,
|
|
5108
5117
|
{
|
|
5109
5118
|
error,
|
|
@@ -5116,9 +5125,9 @@ function BTCConnectModal({
|
|
|
5116
5125
|
setVisible: () => {
|
|
5117
5126
|
}
|
|
5118
5127
|
}
|
|
5119
|
-
) : /* @__PURE__ */ (0,
|
|
5128
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: "matchid-login-recommend-list", children: [
|
|
5120
5129
|
installedWallets.map((wallet2) => {
|
|
5121
|
-
return /* @__PURE__ */ (0,
|
|
5130
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
5122
5131
|
RecommendItem,
|
|
5123
5132
|
{
|
|
5124
5133
|
icon: iconMaps[wallet2.walletKey],
|
|
@@ -5131,14 +5140,14 @@ function BTCConnectModal({
|
|
|
5131
5140
|
);
|
|
5132
5141
|
}),
|
|
5133
5142
|
wallets2.filter((wallet2) => !installedWallets.find((installedWallet) => installedWallet.walletKey == wallet2.walletKey)).map((wallet2) => {
|
|
5134
|
-
return /* @__PURE__ */ (0,
|
|
5143
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
5135
5144
|
RecommendItem,
|
|
5136
5145
|
{
|
|
5137
5146
|
icon: iconMaps[wallet2.walletKey],
|
|
5138
5147
|
name: wallet2.name,
|
|
5139
5148
|
onClick: () => {
|
|
5140
5149
|
},
|
|
5141
|
-
footer: /* @__PURE__ */ (0,
|
|
5150
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Button, { size: "sm", onClick: () => {
|
|
5142
5151
|
window.open(wallet2.website);
|
|
5143
5152
|
}, children: "Install" })
|
|
5144
5153
|
},
|
|
@@ -5148,23 +5157,23 @@ function BTCConnectModal({
|
|
|
5148
5157
|
] }) }) });
|
|
5149
5158
|
}
|
|
5150
5159
|
function BTCModal(props) {
|
|
5151
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
5160
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(BTCConnectModal, { ...props });
|
|
5152
5161
|
}
|
|
5153
5162
|
|
|
5154
5163
|
// src/components/WalletModal/index.tsx
|
|
5155
|
-
var
|
|
5156
|
-
var
|
|
5157
|
-
var
|
|
5164
|
+
var import_react36 = require("react");
|
|
5165
|
+
var import_react_intl17 = require("react-intl");
|
|
5166
|
+
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
5158
5167
|
function WalletConnectModal({
|
|
5159
5168
|
type,
|
|
5160
5169
|
methods: _methods,
|
|
5161
5170
|
...props
|
|
5162
5171
|
}) {
|
|
5163
|
-
const intl = (0,
|
|
5172
|
+
const intl = (0, import_react_intl17.useIntl)();
|
|
5164
5173
|
const { walletMap } = useWalletConfig();
|
|
5165
5174
|
const { bind, login } = useUserInfo();
|
|
5166
5175
|
const config = useAppConfig();
|
|
5167
|
-
const methods = (0,
|
|
5176
|
+
const methods = (0, import_react36.useMemo)(() => {
|
|
5168
5177
|
if (_methods) return _methods;
|
|
5169
5178
|
if (!config.platform) {
|
|
5170
5179
|
return [];
|
|
@@ -5172,13 +5181,13 @@ function WalletConnectModal({
|
|
|
5172
5181
|
const platform = config.platform.map((p) => p.toLowerCase());
|
|
5173
5182
|
return WALLET_METHODS.filter((m) => platform.includes(m));
|
|
5174
5183
|
}, [config.platform, _methods]);
|
|
5175
|
-
return /* @__PURE__ */ (0,
|
|
5184
|
+
return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(ModalWithHeader, { ...props, title: props.title || intl.formatMessage({
|
|
5176
5185
|
id: type == "bind" ? "bindWith" : "loginWith"
|
|
5177
5186
|
}, {
|
|
5178
5187
|
name: ""
|
|
5179
|
-
}), children: /* @__PURE__ */ (0,
|
|
5188
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "matchid-login-box", children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "matchid-login-recommend-list", children: methods.map((method, index) => {
|
|
5180
5189
|
const m = walletMap[method];
|
|
5181
|
-
return /* @__PURE__ */ (0,
|
|
5190
|
+
return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
|
|
5182
5191
|
RecommendItem,
|
|
5183
5192
|
{
|
|
5184
5193
|
icon: m?.icon,
|
|
@@ -5192,21 +5201,21 @@ function WalletConnectModal({
|
|
|
5192
5201
|
}) }) }) });
|
|
5193
5202
|
}
|
|
5194
5203
|
function WalletModal(props) {
|
|
5195
|
-
return props.isOpen && /* @__PURE__ */ (0,
|
|
5204
|
+
return props.isOpen && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(WalletConnectModal, { ...props });
|
|
5196
5205
|
}
|
|
5197
5206
|
|
|
5198
5207
|
// src/components/AlphaAvatar/index.tsx
|
|
5199
|
-
var
|
|
5200
|
-
var
|
|
5208
|
+
var import_react37 = require("react");
|
|
5209
|
+
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
5201
5210
|
function AlphaAvatar2({ name, size = 40, className = "" }) {
|
|
5202
|
-
const [avatar, setAvatar] = (0,
|
|
5203
|
-
(0,
|
|
5211
|
+
const [avatar, setAvatar] = (0, import_react37.useState)(void 0);
|
|
5212
|
+
(0, import_react37.useEffect)(() => {
|
|
5204
5213
|
if (name) {
|
|
5205
5214
|
const char = name[0].toUpperCase();
|
|
5206
5215
|
setAvatar(char);
|
|
5207
5216
|
}
|
|
5208
5217
|
}, [name]);
|
|
5209
|
-
return /* @__PURE__ */ (0,
|
|
5218
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: `matchid-alpha-avatar ${className}`, style: {
|
|
5210
5219
|
width: size,
|
|
5211
5220
|
height: size,
|
|
5212
5221
|
fontSize: Math.ceil(size / 2)
|
|
@@ -5214,7 +5223,7 @@ function AlphaAvatar2({ name, size = 40, className = "" }) {
|
|
|
5214
5223
|
}
|
|
5215
5224
|
|
|
5216
5225
|
// src/components/WalletAsset/index.tsx
|
|
5217
|
-
var
|
|
5226
|
+
var import_jsx_runtime90 = require("react/jsx-runtime");
|
|
5218
5227
|
function WalletAsset({
|
|
5219
5228
|
onAssetClick,
|
|
5220
5229
|
matchWalletAssetsOptions
|
|
@@ -5224,7 +5233,7 @@ function WalletAsset({
|
|
|
5224
5233
|
list: walletAssets.mergedAssets
|
|
5225
5234
|
});
|
|
5226
5235
|
const { list } = useMatchChain();
|
|
5227
|
-
return /* @__PURE__ */ (0,
|
|
5236
|
+
return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "matchid-wallet-asset-list", children: matchWalletAssetList.list.map((n, index) => {
|
|
5228
5237
|
const clickFunc = onAssetClick && onAssetClick(n);
|
|
5229
5238
|
const chain = list?.find((m) => m.id.toString() === n.chain_id);
|
|
5230
5239
|
const getFooterColor = () => {
|
|
@@ -5239,11 +5248,11 @@ function WalletAsset({
|
|
|
5239
5248
|
}
|
|
5240
5249
|
return "";
|
|
5241
5250
|
};
|
|
5242
|
-
return /* @__PURE__ */ (0,
|
|
5251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: `matchid-wallet-asset-item`, onClick: clickFunc, style: {
|
|
5243
5252
|
cursor: clickFunc ? "pointer" : "default"
|
|
5244
5253
|
}, children: [
|
|
5245
|
-
/* @__PURE__ */ (0,
|
|
5246
|
-
n.icon ? /* @__PURE__ */ (0,
|
|
5254
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: "matchid-wallet-asset-logo", title: n.symbol || n.name || "", children: [
|
|
5255
|
+
n.icon ? /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("img", { src: n.icon, alt: n.symbol, className: `matchid-wallet-asset-icon` }) : /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
5247
5256
|
AlphaAvatar2,
|
|
5248
5257
|
{
|
|
5249
5258
|
className: `matchid-wallet-asset-icon`,
|
|
@@ -5251,12 +5260,12 @@ function WalletAsset({
|
|
|
5251
5260
|
name: n.symbol || n.name || ""
|
|
5252
5261
|
}
|
|
5253
5262
|
),
|
|
5254
|
-
chain?.iconUrl && /* @__PURE__ */ (0,
|
|
5263
|
+
chain?.iconUrl && /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("img", { src: chain.iconUrl, alt: chain.name, className: `matchid-wallet-asset-chain` })
|
|
5255
5264
|
] }),
|
|
5256
|
-
/* @__PURE__ */ (0,
|
|
5257
|
-
/* @__PURE__ */ (0,
|
|
5258
|
-
"price" in n && /* @__PURE__ */ (0,
|
|
5259
|
-
/* @__PURE__ */ (0,
|
|
5265
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: `matchid-wallet-asset-info`, children: [
|
|
5266
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: `matchid-wallet-asset-name`, children: n.symbol }),
|
|
5267
|
+
"price" in n && /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: `matchid-wallet-asset-content`, children: [
|
|
5268
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "matchid-wallet-asset-price", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
5260
5269
|
NumberFormatter,
|
|
5261
5270
|
{
|
|
5262
5271
|
value: n.price,
|
|
@@ -5264,7 +5273,7 @@ function WalletAsset({
|
|
|
5264
5273
|
tFixNum: 2
|
|
5265
5274
|
}
|
|
5266
5275
|
) }),
|
|
5267
|
-
/* @__PURE__ */ (0,
|
|
5276
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "matchid-wallet-asset-value", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
5268
5277
|
NumberFormatter,
|
|
5269
5278
|
{
|
|
5270
5279
|
value: n.value,
|
|
@@ -5273,15 +5282,15 @@ function WalletAsset({
|
|
|
5273
5282
|
}
|
|
5274
5283
|
) })
|
|
5275
5284
|
] }),
|
|
5276
|
-
/* @__PURE__ */ (0,
|
|
5277
|
-
/* @__PURE__ */ (0,
|
|
5285
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsxs)("div", { className: `matchid-wallet-asset-footer`, children: [
|
|
5286
|
+
/* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: `matchid-wallet-asset-balance`, children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
5278
5287
|
NumberFormatter,
|
|
5279
5288
|
{
|
|
5280
5289
|
value: n.balance,
|
|
5281
5290
|
tFixNum: 3
|
|
5282
5291
|
}
|
|
5283
5292
|
) }),
|
|
5284
|
-
"price_change_24h" in n && /* @__PURE__ */ (0,
|
|
5293
|
+
"price_change_24h" in n && /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: `matchid-wallet-asset-change ${getFooterColor()}`, children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
5285
5294
|
NumberFormatter,
|
|
5286
5295
|
{
|
|
5287
5296
|
prefix: `${(n?.price_change_24h || 0) < 0 ? "-" : "+"} `,
|
|
@@ -5297,10 +5306,10 @@ function WalletAsset({
|
|
|
5297
5306
|
}
|
|
5298
5307
|
|
|
5299
5308
|
// src/components/TokenSend/index.tsx
|
|
5300
|
-
var
|
|
5301
|
-
var
|
|
5302
|
-
var
|
|
5303
|
-
var
|
|
5309
|
+
var import_react38 = require("react");
|
|
5310
|
+
var import_viem10 = require("viem");
|
|
5311
|
+
var import_react_intl18 = require("react-intl");
|
|
5312
|
+
var import_jsx_runtime91 = require("react/jsx-runtime");
|
|
5304
5313
|
function Input2({
|
|
5305
5314
|
onChange,
|
|
5306
5315
|
placeholder,
|
|
@@ -5310,8 +5319,8 @@ function Input2({
|
|
|
5310
5319
|
error,
|
|
5311
5320
|
size = "df"
|
|
5312
5321
|
}) {
|
|
5313
|
-
return /* @__PURE__ */ (0,
|
|
5314
|
-
/* @__PURE__ */ (0,
|
|
5322
|
+
return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `matchid-token-input-box ${"matchid-token-input-" + size}`, children: [
|
|
5323
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
5315
5324
|
"input",
|
|
5316
5325
|
{
|
|
5317
5326
|
placeholder,
|
|
@@ -5322,7 +5331,7 @@ function Input2({
|
|
|
5322
5331
|
className: `matchid-token-input ${error ? "matchid-token-input-error" : ""}`
|
|
5323
5332
|
}
|
|
5324
5333
|
),
|
|
5325
|
-
error && /* @__PURE__ */ (0,
|
|
5334
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: "matchid-token-input-error-text", children: error })
|
|
5326
5335
|
] });
|
|
5327
5336
|
}
|
|
5328
5337
|
function TokenSend({
|
|
@@ -5332,25 +5341,25 @@ function TokenSend({
|
|
|
5332
5341
|
onBack
|
|
5333
5342
|
}) {
|
|
5334
5343
|
const { list: chainList } = useMatchChain();
|
|
5335
|
-
const intl = (0,
|
|
5344
|
+
const intl = (0, import_react_intl18.useIntl)();
|
|
5336
5345
|
const { createWalletClient: createWalletClient2 } = useWallet();
|
|
5337
5346
|
const isNative = token.address.toLowerCase() == NATIVE_TOKEN_ADDRESS;
|
|
5338
|
-
const chain = (0,
|
|
5347
|
+
const chain = (0, import_react38.useMemo)(() => {
|
|
5339
5348
|
return chainList?.find((m) => m.id.toString() === token.chain_id);
|
|
5340
5349
|
}, [chainList, token.chain_id]);
|
|
5341
|
-
const walletClient = (0,
|
|
5350
|
+
const walletClient = (0, import_react38.useMemo)(() => {
|
|
5342
5351
|
return createWalletClient2({
|
|
5343
5352
|
// @ts-ignore
|
|
5344
|
-
chain: (0,
|
|
5345
|
-
transport: (0,
|
|
5353
|
+
chain: (0, import_viem10.defineChain)(chain),
|
|
5354
|
+
transport: (0, import_viem10.http)()
|
|
5346
5355
|
});
|
|
5347
5356
|
}, [chain]);
|
|
5348
|
-
const [amount, setAmount] = (0,
|
|
5349
|
-
const [address, setAddress] = (0,
|
|
5350
|
-
const [loading, setLoading] = (0,
|
|
5351
|
-
const [sending, setSending] = (0,
|
|
5352
|
-
const [txError, setTxError] = (0,
|
|
5353
|
-
const transaction = (0,
|
|
5357
|
+
const [amount, setAmount] = (0, import_react38.useState)("");
|
|
5358
|
+
const [address, setAddress] = (0, import_react38.useState)("");
|
|
5359
|
+
const [loading, setLoading] = (0, import_react38.useState)(false);
|
|
5360
|
+
const [sending, setSending] = (0, import_react38.useState)(false);
|
|
5361
|
+
const [txError, setTxError] = (0, import_react38.useState)("");
|
|
5362
|
+
const transaction = (0, import_react38.useMemo)(() => {
|
|
5354
5363
|
if (!amount || !address) {
|
|
5355
5364
|
return;
|
|
5356
5365
|
}
|
|
@@ -5379,13 +5388,13 @@ function TokenSend({
|
|
|
5379
5388
|
"type": "function"
|
|
5380
5389
|
}
|
|
5381
5390
|
];
|
|
5382
|
-
const viemChain = (0,
|
|
5391
|
+
const viemChain = (0, import_viem10.defineChain)(chain);
|
|
5383
5392
|
const to = isNative ? address : token.address;
|
|
5384
|
-
const value = isNative ? (0,
|
|
5385
|
-
const data = isNative ? "0x" : (0,
|
|
5393
|
+
const value = isNative ? (0, import_viem10.parseUnits)(amount, parseInt(token?.decimals || "18")) : BigInt(0);
|
|
5394
|
+
const data = isNative ? "0x" : (0, import_viem10.encodeFunctionData)({
|
|
5386
5395
|
abi,
|
|
5387
5396
|
functionName: "transfer",
|
|
5388
|
-
args: [address, (0,
|
|
5397
|
+
args: [address, (0, import_viem10.parseUnits)(amount, parseInt(token?.decimals || "18"))]
|
|
5389
5398
|
});
|
|
5390
5399
|
return {
|
|
5391
5400
|
to,
|
|
@@ -5405,7 +5414,7 @@ function TokenSend({
|
|
|
5405
5414
|
setLoading(false);
|
|
5406
5415
|
}
|
|
5407
5416
|
};
|
|
5408
|
-
const error = (0,
|
|
5417
|
+
const error = (0, import_react38.useMemo)(() => {
|
|
5409
5418
|
setTxError("");
|
|
5410
5419
|
let amountError = "";
|
|
5411
5420
|
let addressError = "";
|
|
@@ -5448,7 +5457,7 @@ function TokenSend({
|
|
|
5448
5457
|
setAmount(value);
|
|
5449
5458
|
}
|
|
5450
5459
|
};
|
|
5451
|
-
const canSend = (0,
|
|
5460
|
+
const canSend = (0, import_react38.useMemo)(() => {
|
|
5452
5461
|
return !error.amount && !error.address && amount && address;
|
|
5453
5462
|
}, [error]);
|
|
5454
5463
|
const onNext = async () => {
|
|
@@ -5458,7 +5467,7 @@ function TokenSend({
|
|
|
5458
5467
|
}
|
|
5459
5468
|
onClose();
|
|
5460
5469
|
};
|
|
5461
|
-
(0,
|
|
5470
|
+
(0, import_react38.useEffect)(() => {
|
|
5462
5471
|
const receiveMessage = (event) => {
|
|
5463
5472
|
if (event.data) {
|
|
5464
5473
|
if (event.data.source == "match-wallet") {
|
|
@@ -5474,24 +5483,24 @@ function TokenSend({
|
|
|
5474
5483
|
window.removeEventListener("message", receiveMessage);
|
|
5475
5484
|
};
|
|
5476
5485
|
}, []);
|
|
5477
|
-
return /* @__PURE__ */ (0,
|
|
5478
|
-
/* @__PURE__ */ (0,
|
|
5479
|
-
/* @__PURE__ */ (0,
|
|
5480
|
-
/* @__PURE__ */ (0,
|
|
5481
|
-
/* @__PURE__ */ (0,
|
|
5482
|
-
/* @__PURE__ */ (0,
|
|
5483
|
-
token.icon ? /* @__PURE__ */ (0,
|
|
5486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(ModalDrawer, { isOpen: true, onClose, zIndex, title: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_react_intl18.FormattedMessage, { id: "send" }), onBack, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `matchid-token-send-box`, children: [
|
|
5487
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "matchid-token-send-content", children: [
|
|
5488
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `matchid-token-amount-content`, children: [
|
|
5489
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `matchid-token-amount-header`, children: [
|
|
5490
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: `matchid-token-amount-title`, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_react_intl18.FormattedMessage, { id: "amount" }) }),
|
|
5491
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `matchid-token-amount-chain`, children: [
|
|
5492
|
+
token.icon ? /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
5484
5493
|
"img",
|
|
5485
5494
|
{
|
|
5486
5495
|
src: token?.icon,
|
|
5487
5496
|
alt: token?.symbol,
|
|
5488
5497
|
className: `matchid-token-amount-chain-icon`
|
|
5489
5498
|
}
|
|
5490
|
-
) : /* @__PURE__ */ (0,
|
|
5491
|
-
/* @__PURE__ */ (0,
|
|
5499
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(AlphaAvatar, { name: token.symbol || token.name || "", size: 16 }),
|
|
5500
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)("span", { children: token?.symbol })
|
|
5492
5501
|
] })
|
|
5493
5502
|
] }),
|
|
5494
|
-
/* @__PURE__ */ (0,
|
|
5503
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
5495
5504
|
Input2,
|
|
5496
5505
|
{
|
|
5497
5506
|
type: "text",
|
|
@@ -5504,18 +5513,18 @@ function TokenSend({
|
|
|
5504
5513
|
error: error.amount || txError
|
|
5505
5514
|
}
|
|
5506
5515
|
),
|
|
5507
|
-
/* @__PURE__ */ (0,
|
|
5508
|
-
/* @__PURE__ */ (0,
|
|
5509
|
-
/* @__PURE__ */ (0,
|
|
5516
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `matchid-token-amount-footer`, children: [
|
|
5517
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `matchid-token-amount-title`, children: [
|
|
5518
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_react_intl18.FormattedMessage, { id: "balance" }),
|
|
5510
5519
|
":"
|
|
5511
5520
|
] }),
|
|
5512
|
-
/* @__PURE__ */ (0,
|
|
5521
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: `matchid-token-amount-value`, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(NumberFormatter, { value: token.balance, tFixNum: 10, suffix: " " + token.symbol }) })
|
|
5513
5522
|
] }),
|
|
5514
|
-
/* @__PURE__ */ (0,
|
|
5523
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(TransferIcon, { className: "matchid-token-amount-transfer" })
|
|
5515
5524
|
] }),
|
|
5516
|
-
/* @__PURE__ */ (0,
|
|
5517
|
-
/* @__PURE__ */ (0,
|
|
5518
|
-
/* @__PURE__ */ (0,
|
|
5525
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: `matchid-token-address-content`, children: [
|
|
5526
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: `matchid-token-address-header`, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("div", { className: `matchid-token-address-title`, children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_react_intl18.FormattedMessage, { id: "receiveTitle" }) }) }),
|
|
5527
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
5519
5528
|
Input2,
|
|
5520
5529
|
{
|
|
5521
5530
|
type: "text",
|
|
@@ -5531,7 +5540,7 @@ function TokenSend({
|
|
|
5531
5540
|
)
|
|
5532
5541
|
] })
|
|
5533
5542
|
] }),
|
|
5534
|
-
/* @__PURE__ */ (0,
|
|
5543
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
|
|
5535
5544
|
Button,
|
|
5536
5545
|
{
|
|
5537
5546
|
size: "lg",
|
|
@@ -5540,15 +5549,15 @@ function TokenSend({
|
|
|
5540
5549
|
disabled: !canSend || !!txError,
|
|
5541
5550
|
onClick: onNext,
|
|
5542
5551
|
loading: loading || sending,
|
|
5543
|
-
children: /* @__PURE__ */ (0,
|
|
5552
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_react_intl18.FormattedMessage, { id: "next" })
|
|
5544
5553
|
}
|
|
5545
5554
|
)
|
|
5546
5555
|
] }) });
|
|
5547
5556
|
}
|
|
5548
5557
|
|
|
5549
5558
|
// src/components/TokenDetail/index.tsx
|
|
5550
|
-
var
|
|
5551
|
-
var
|
|
5559
|
+
var import_react_intl19 = require("react-intl");
|
|
5560
|
+
var import_jsx_runtime92 = require("react/jsx-runtime");
|
|
5552
5561
|
function TokenDetail({
|
|
5553
5562
|
onClose,
|
|
5554
5563
|
token
|
|
@@ -5558,61 +5567,61 @@ function TokenDetail({
|
|
|
5558
5567
|
const chain = chainList?.find((m) => m.id.toString() === token.chain_id);
|
|
5559
5568
|
const onSend = () => {
|
|
5560
5569
|
modal.show((props) => {
|
|
5561
|
-
return /* @__PURE__ */ (0,
|
|
5570
|
+
return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(TokenSend, { onClose: () => {
|
|
5562
5571
|
props.close();
|
|
5563
5572
|
onClose();
|
|
5564
5573
|
}, onBack: props.close, zIndex: props.zIndex, token });
|
|
5565
5574
|
});
|
|
5566
5575
|
};
|
|
5567
|
-
const intl = (0,
|
|
5568
|
-
return /* @__PURE__ */ (0,
|
|
5576
|
+
const intl = (0, import_react_intl19.useIntl)();
|
|
5577
|
+
return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(ModalDrawer, { isOpen: true, title: intl.formatMessage({
|
|
5569
5578
|
id: "tokenDetails"
|
|
5570
|
-
}), onClose, children: /* @__PURE__ */ (0,
|
|
5571
|
-
/* @__PURE__ */ (0,
|
|
5572
|
-
/* @__PURE__ */ (0,
|
|
5573
|
-
/* @__PURE__ */ (0,
|
|
5574
|
-
token.icon ? /* @__PURE__ */ (0,
|
|
5575
|
-
chain?.iconUrl && /* @__PURE__ */ (0,
|
|
5579
|
+
}), onClose, children: /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: `matchid-token-detail`, children: [
|
|
5580
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: `matchid-token-main`, children: [
|
|
5581
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: `matchid-token-info`, children: [
|
|
5582
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: `matchid-token-logo`, children: [
|
|
5583
|
+
token.icon ? /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("img", { src: token.icon, alt: token.symbol, className: `matchid-token-icon` }) : /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(AlphaAvatar, { className: `matchid-token-icon`, size: 48, name: token.symbol || token.name || "" }),
|
|
5584
|
+
chain?.iconUrl && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("img", { src: chain.iconUrl, alt: chain.name, className: `matchid-token-chain` })
|
|
5576
5585
|
] }),
|
|
5577
|
-
/* @__PURE__ */ (0,
|
|
5578
|
-
/* @__PURE__ */ (0,
|
|
5586
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: `matchid-token-name`, children: [
|
|
5587
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsx)(NumberFormatter, { value: token.balance, tFixNum: 10 }),
|
|
5579
5588
|
" ",
|
|
5580
5589
|
token.symbol
|
|
5581
5590
|
] })
|
|
5582
5591
|
] }),
|
|
5583
|
-
token.address.toLowerCase() != NATIVE_TOKEN_ADDRESS && /* @__PURE__ */ (0,
|
|
5584
|
-
/* @__PURE__ */ (0,
|
|
5585
|
-
/* @__PURE__ */ (0,
|
|
5592
|
+
token.address.toLowerCase() != NATIVE_TOKEN_ADDRESS && /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: `matchid-token-contract`, children: [
|
|
5593
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsx)("div", { className: "matchid-token-contract-title", children: "Contract address" }),
|
|
5594
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsx)("div", { className: "matchid-token-contract-address", children: token.address })
|
|
5586
5595
|
] })
|
|
5587
5596
|
] }),
|
|
5588
|
-
/* @__PURE__ */ (0,
|
|
5597
|
+
/* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Button, { size: "lg", block: true, highlight: true, onClick: onSend, children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_react_intl19.FormattedMessage, { id: "send" }) })
|
|
5589
5598
|
] }) });
|
|
5590
5599
|
}
|
|
5591
5600
|
|
|
5592
5601
|
// src/components/TokenSendList/index.tsx
|
|
5593
|
-
var
|
|
5594
|
-
var
|
|
5595
|
-
var
|
|
5602
|
+
var import_react39 = require("react");
|
|
5603
|
+
var import_react_intl20 = require("react-intl");
|
|
5604
|
+
var import_jsx_runtime93 = require("react/jsx-runtime");
|
|
5596
5605
|
function TokenSendList({ close }) {
|
|
5597
5606
|
const walletAssets = useMatchWalletAssets();
|
|
5598
5607
|
const matchWalletAssetList = useMatchWalletAssetList({
|
|
5599
5608
|
list: walletAssets.mergedAssets
|
|
5600
5609
|
});
|
|
5601
5610
|
const { list } = useMatchChain();
|
|
5602
|
-
const [checked, setChecked] = (0,
|
|
5611
|
+
const [checked, setChecked] = (0, import_react39.useState)();
|
|
5603
5612
|
const modal = useModal();
|
|
5604
5613
|
const onNext = () => {
|
|
5605
5614
|
checked && modal.show((props) => {
|
|
5606
|
-
return /* @__PURE__ */ (0,
|
|
5615
|
+
return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(TokenSend, { onClose: () => {
|
|
5607
5616
|
props.close();
|
|
5608
5617
|
close();
|
|
5609
5618
|
}, onBack: props.close, zIndex: props.zIndex, token: checked });
|
|
5610
5619
|
});
|
|
5611
5620
|
};
|
|
5612
|
-
return /* @__PURE__ */ (0,
|
|
5613
|
-
/* @__PURE__ */ (0,
|
|
5621
|
+
return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "matchid-token-send-list-box", children: [
|
|
5622
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className: "matchid-token-send-list", children: matchWalletAssetList.list.map((n, index) => {
|
|
5614
5623
|
const chain = list?.find((m) => m.id.toString() === n.chain_id);
|
|
5615
|
-
return /* @__PURE__ */ (0,
|
|
5624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(
|
|
5616
5625
|
"div",
|
|
5617
5626
|
{
|
|
5618
5627
|
className: `matchid-token-send-item ${checked?.address == n.address ? "matchid-token-send-chekced" : ""}`,
|
|
@@ -5620,10 +5629,10 @@ function TokenSendList({ close }) {
|
|
|
5620
5629
|
setChecked(n);
|
|
5621
5630
|
},
|
|
5622
5631
|
children: [
|
|
5623
|
-
/* @__PURE__ */ (0,
|
|
5624
|
-
/* @__PURE__ */ (0,
|
|
5625
|
-
/* @__PURE__ */ (0,
|
|
5626
|
-
n.icon ? /* @__PURE__ */ (0,
|
|
5632
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Radio, { checked: checked?.address == n.address }),
|
|
5633
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "matchid-token-send-content", children: [
|
|
5634
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: "matchid-token-send-logo", children: [
|
|
5635
|
+
n.icon ? /* @__PURE__ */ (0, import_jsx_runtime93.jsx)("img", { src: n.icon, alt: n.symbol, className: `matchid-token-send-icon` }) : /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
5627
5636
|
AlphaAvatar2,
|
|
5628
5637
|
{
|
|
5629
5638
|
className: `matchid-token-send-icon`,
|
|
@@ -5631,7 +5640,7 @@ function TokenSendList({ close }) {
|
|
|
5631
5640
|
name: n.symbol || n.name || ""
|
|
5632
5641
|
}
|
|
5633
5642
|
),
|
|
5634
|
-
chain?.iconUrl && /* @__PURE__ */ (0,
|
|
5643
|
+
chain?.iconUrl && /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
5635
5644
|
"img",
|
|
5636
5645
|
{
|
|
5637
5646
|
src: chain.iconUrl,
|
|
@@ -5640,9 +5649,9 @@ function TokenSendList({ close }) {
|
|
|
5640
5649
|
}
|
|
5641
5650
|
)
|
|
5642
5651
|
] }),
|
|
5643
|
-
/* @__PURE__ */ (0,
|
|
5644
|
-
/* @__PURE__ */ (0,
|
|
5645
|
-
/* @__PURE__ */ (0,
|
|
5652
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsxs)("div", { className: `matchid-token-send-info`, children: [
|
|
5653
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className: `matchid-token-send-name`, children: n.symbol }),
|
|
5654
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)("div", { className: `matchid-token-send-balance`, children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(NumberFormatter, { value: n.balance, tFixNum: 3 }) })
|
|
5646
5655
|
] })
|
|
5647
5656
|
] })
|
|
5648
5657
|
]
|
|
@@ -5650,23 +5659,24 @@ function TokenSendList({ close }) {
|
|
|
5650
5659
|
index
|
|
5651
5660
|
);
|
|
5652
5661
|
}) }),
|
|
5653
|
-
/* @__PURE__ */ (0,
|
|
5662
|
+
/* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Button, { size: "lg", highlight: true, block: true, disabled: !checked, onClick: onNext, children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_react_intl20.FormattedMessage, { id: "next" }) })
|
|
5654
5663
|
] });
|
|
5655
5664
|
}
|
|
5656
5665
|
|
|
5657
5666
|
// src/components/TransactionList/index.tsx
|
|
5658
5667
|
var import_react_infinite_scroll_component = __toESM(require("react-infinite-scroll-component"));
|
|
5659
|
-
var
|
|
5660
|
-
var import_viem10 = require("viem");
|
|
5668
|
+
var import_react40 = require("react");
|
|
5661
5669
|
var import_viem11 = require("viem");
|
|
5662
|
-
var
|
|
5670
|
+
var import_viem12 = require("viem");
|
|
5671
|
+
var import_react_intl21 = require("react-intl");
|
|
5672
|
+
var import_jsx_runtime94 = require("react/jsx-runtime");
|
|
5663
5673
|
var Item = ({ data }) => {
|
|
5664
5674
|
const { address } = useWallet();
|
|
5665
5675
|
const isOut = data.from == address;
|
|
5666
5676
|
const { chain, chainId, explorerLink, formatUnits: chainFormatUnits } = useMatchChain();
|
|
5667
5677
|
const { getContract } = useContractStore_default();
|
|
5668
|
-
const [shouldRefetch, setShouldRefetch] = (0,
|
|
5669
|
-
const transferType = (0,
|
|
5678
|
+
const [shouldRefetch, setShouldRefetch] = (0, import_react40.useState)(true);
|
|
5679
|
+
const transferType = (0, import_react40.useMemo)(() => {
|
|
5670
5680
|
const methodId = data.input.substring(2, 10);
|
|
5671
5681
|
if (methodId == "095ea7b3") {
|
|
5672
5682
|
return "erc20_approve";
|
|
@@ -5676,28 +5686,28 @@ var Item = ({ data }) => {
|
|
|
5676
5686
|
}
|
|
5677
5687
|
return "unknown";
|
|
5678
5688
|
}, [data.input]);
|
|
5679
|
-
const to = (0,
|
|
5689
|
+
const to = (0, import_react40.useMemo)(() => {
|
|
5680
5690
|
if (transferType == "erc20_transfer") {
|
|
5681
|
-
const decodeData = (0,
|
|
5682
|
-
abi:
|
|
5691
|
+
const decodeData = (0, import_viem11.decodeFunctionData)({
|
|
5692
|
+
abi: import_viem12.erc20Abi,
|
|
5683
5693
|
data: data.input
|
|
5684
5694
|
});
|
|
5685
5695
|
return decodeData.args[0];
|
|
5686
5696
|
}
|
|
5687
5697
|
return data.to;
|
|
5688
5698
|
}, [data.input, transferType, data.to]);
|
|
5689
|
-
const amount = (0,
|
|
5699
|
+
const amount = (0, import_react40.useMemo)(() => {
|
|
5690
5700
|
if (transferType == "erc20_transfer") {
|
|
5691
|
-
const decodeData = (0,
|
|
5692
|
-
abi:
|
|
5701
|
+
const decodeData = (0, import_viem11.decodeFunctionData)({
|
|
5702
|
+
abi: import_viem12.erc20Abi,
|
|
5693
5703
|
data: data.input
|
|
5694
5704
|
});
|
|
5695
5705
|
const value = decodeData.args[1];
|
|
5696
|
-
return (0,
|
|
5706
|
+
return (0, import_viem11.formatUnits)(value, getContract(chainId || 0, data.to)?.decimals || 18);
|
|
5697
5707
|
}
|
|
5698
5708
|
return chainFormatUnits(BigInt(data.value));
|
|
5699
5709
|
}, [data.input, transferType, data.value, getContract, chainId, data.to]);
|
|
5700
|
-
(0,
|
|
5710
|
+
(0, import_react40.useEffect)(() => {
|
|
5701
5711
|
if (data.hash) {
|
|
5702
5712
|
setShouldRefetch(true);
|
|
5703
5713
|
}
|
|
@@ -5705,11 +5715,11 @@ var Item = ({ data }) => {
|
|
|
5705
5715
|
const hashQuery = useHash({
|
|
5706
5716
|
hash: data.hash,
|
|
5707
5717
|
//@ts-ignore
|
|
5708
|
-
chain: (0,
|
|
5718
|
+
chain: (0, import_viem11.defineChain)(chain),
|
|
5709
5719
|
refetchInterval: shouldRefetch ? 3e3 : false,
|
|
5710
5720
|
enabled: shouldRefetch
|
|
5711
5721
|
});
|
|
5712
|
-
const status = (0,
|
|
5722
|
+
const status = (0, import_react40.useMemo)(() => {
|
|
5713
5723
|
if (data.source == "matchain") {
|
|
5714
5724
|
switch (data.extra.status) {
|
|
5715
5725
|
case "ok":
|
|
@@ -5736,27 +5746,27 @@ var Item = ({ data }) => {
|
|
|
5736
5746
|
}
|
|
5737
5747
|
return "loading";
|
|
5738
5748
|
}, [data.extra?.status, data.source, hashQuery.data]);
|
|
5739
|
-
(0,
|
|
5749
|
+
(0, import_react40.useEffect)(() => {
|
|
5740
5750
|
setShouldRefetch(status == "loading");
|
|
5741
5751
|
}, [status]);
|
|
5742
|
-
const symbol = (0,
|
|
5752
|
+
const symbol = (0, import_react40.useMemo)(() => {
|
|
5743
5753
|
if (transferType == "erc20_transfer") {
|
|
5744
5754
|
return getContract(chainId || 0, data.to)?.symbol || getContract(chainId || 0, data.to)?.name || "unknown";
|
|
5745
5755
|
}
|
|
5746
5756
|
return chain?.nativeCurrency.symbol || chain?.nativeCurrency.name;
|
|
5747
5757
|
}, [transferType, chain, getContract, chainId, data.to]);
|
|
5748
|
-
return /* @__PURE__ */ (0,
|
|
5758
|
+
return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
|
|
5749
5759
|
"a",
|
|
5750
5760
|
{
|
|
5751
5761
|
href: explorerLink(`tx/${data.hash}`),
|
|
5752
5762
|
target: "_blank",
|
|
5753
5763
|
className: `matchid-transaction-item`,
|
|
5754
5764
|
children: [
|
|
5755
|
-
/* @__PURE__ */ (0,
|
|
5756
|
-
/* @__PURE__ */ (0,
|
|
5757
|
-
/* @__PURE__ */ (0,
|
|
5758
|
-
/* @__PURE__ */ (0,
|
|
5759
|
-
/* @__PURE__ */ (0,
|
|
5765
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: `matchid-transacton-item-container`, children: [
|
|
5766
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "matchid-transaction-item-icon", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(ArrowSendIcon, { className: !isOut ? "rotate-180" : "" }) }),
|
|
5767
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: `matchid-transaction-item-details`, children: [
|
|
5768
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: `matchid-transaction-item-address`, children: formatAddress(to, 6, 4) }),
|
|
5769
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
5760
5770
|
"div",
|
|
5761
5771
|
{
|
|
5762
5772
|
className: `matchid-transaction-item-timestamp`,
|
|
@@ -5765,11 +5775,11 @@ var Item = ({ data }) => {
|
|
|
5765
5775
|
)
|
|
5766
5776
|
] })
|
|
5767
5777
|
] }),
|
|
5768
|
-
/* @__PURE__ */ (0,
|
|
5769
|
-
/* @__PURE__ */ (0,
|
|
5770
|
-
status == "loading" && /* @__PURE__ */ (0,
|
|
5771
|
-
status == "success" && /* @__PURE__ */ (0,
|
|
5772
|
-
status == "error" && /* @__PURE__ */ (0,
|
|
5778
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: `matchid-transaction-item-amount ${"matchid-transaction-item-" + status}`, children: [
|
|
5779
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)(NumberFormatter, { value: amount, tFixNum: 6, prefix: isOut ? "-" : "+", suffix: " " + symbol }),
|
|
5780
|
+
status == "loading" && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(LoadingIcon_default, { color: "#000000", size: 16, rotate: true }),
|
|
5781
|
+
status == "success" && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(CheckRoundIcon, { size: 16 }),
|
|
5782
|
+
status == "error" && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(InfoRoundIcon, { size: 16 })
|
|
5773
5783
|
] })
|
|
5774
5784
|
]
|
|
5775
5785
|
}
|
|
@@ -5779,19 +5789,19 @@ function TransactionList({
|
|
|
5779
5789
|
scrollableTarget
|
|
5780
5790
|
}) {
|
|
5781
5791
|
const { fetchMoreData, hasMore, items } = useMatchWalletRecords();
|
|
5782
|
-
return /* @__PURE__ */ (0,
|
|
5792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
5783
5793
|
import_react_infinite_scroll_component.default,
|
|
5784
5794
|
{
|
|
5785
5795
|
scrollableTarget,
|
|
5786
5796
|
dataLength: items.length,
|
|
5787
5797
|
next: fetchMoreData,
|
|
5788
5798
|
hasMore,
|
|
5789
|
-
loader: /* @__PURE__ */ (0,
|
|
5790
|
-
/* @__PURE__ */ (0,
|
|
5799
|
+
loader: /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "matchid-list-nomore", children: [
|
|
5800
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)(LoadingIcon_default, { rotate: true, size: 16, color: "black" }),
|
|
5791
5801
|
"Loading..."
|
|
5792
5802
|
] }),
|
|
5793
|
-
endMessage: items.length > 0 ? /* @__PURE__ */ (0,
|
|
5794
|
-
children: items.length == 0 && !hasMore ? /* @__PURE__ */ (0,
|
|
5803
|
+
endMessage: items.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_react_intl21.FormattedMessage, { id: "noMoreRecords" }) }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: `matchid-list-nomore`, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_react_intl21.FormattedMessage, { id: "noRecords" }) }),
|
|
5804
|
+
children: items.length == 0 && !hasMore ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "mt-[150px]" }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: `matchid-transaction-list`, children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Item, { data: item }, index)) })
|
|
5795
5805
|
}
|
|
5796
5806
|
);
|
|
5797
5807
|
}
|