@cedros/login-react 0.0.13 → 0.0.15
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/AdminDepositList-CyT4VBH8.js +311 -0
- package/dist/AdminDepositList-CyT4VBH8.js.map +1 -0
- package/dist/AdminDepositList-b2AXtLg0.cjs +1 -0
- package/dist/AdminDepositList-b2AXtLg0.cjs.map +1 -0
- package/dist/{AdminWithdrawalHistory-BGjfrIe3.js → AdminWithdrawalHistory-Cud-yuWy.js} +295 -283
- package/dist/AdminWithdrawalHistory-Cud-yuWy.js.map +1 -0
- package/dist/AdminWithdrawalHistory-DL9zbu2b.cjs +1 -0
- package/dist/AdminWithdrawalHistory-DL9zbu2b.cjs.map +1 -0
- package/dist/{AuthenticationSettings-5Vi7Ib_A.cjs → AuthenticationSettings-CjGGqbcS.cjs} +1 -1
- package/dist/{AuthenticationSettings-5Vi7Ib_A.cjs.map → AuthenticationSettings-CjGGqbcS.cjs.map} +1 -1
- package/dist/{AuthenticationSettings-CJg8CJY9.js → AuthenticationSettings-DGWktSVw.js} +1 -1
- package/dist/{AuthenticationSettings-CJg8CJY9.js.map → AuthenticationSettings-DGWktSVw.js.map} +1 -1
- package/dist/{AuthenticationSettings-CR_i6TTS.js → AuthenticationSettings-Dg6ATgOl.js} +170 -140
- package/dist/{AuthenticationSettings-CR_i6TTS.js.map → AuthenticationSettings-Dg6ATgOl.js.map} +1 -1
- package/dist/AuthenticationSettings-HhrUAmM6.cjs +1 -0
- package/dist/{AuthenticationSettings-BPAh1my6.cjs.map → AuthenticationSettings-HhrUAmM6.cjs.map} +1 -1
- package/dist/AutosaveStatus-BDWxAg4U.cjs +1 -0
- package/dist/AutosaveStatus-BDWxAg4U.cjs.map +1 -0
- package/dist/{AutosaveStatus-N4uNS6-2.js → AutosaveStatus-DeViUyyI.js} +1 -7
- package/dist/AutosaveStatus-DeViUyyI.js.map +1 -0
- package/dist/{CreditSystemSettings-BnAOK_tT.cjs → CreditSystemSettings-BykhytcS.cjs} +1 -1
- package/dist/{CreditSystemSettings-BnAOK_tT.cjs.map → CreditSystemSettings-BykhytcS.cjs.map} +1 -1
- package/dist/{CreditSystemSettings-CePYGgev.js → CreditSystemSettings-CSlsQynZ.js} +1 -1
- package/dist/{CreditSystemSettings-CePYGgev.js.map → CreditSystemSettings-CSlsQynZ.js.map} +1 -1
- package/dist/{CreditSystemSettings-Ck5WIMp3.cjs → CreditSystemSettings-CyFQbXMh.cjs} +1 -1
- package/dist/{CreditSystemSettings-Ck5WIMp3.cjs.map → CreditSystemSettings-CyFQbXMh.cjs.map} +1 -1
- package/dist/{CreditSystemSettings-CIf_SfJq.js → CreditSystemSettings-DBr7QS59.js} +1 -1
- package/dist/{CreditSystemSettings-CIf_SfJq.js.map → CreditSystemSettings-DBr7QS59.js.map} +1 -1
- package/dist/DepositsSection-BkKUS4vk.cjs +1 -0
- package/dist/DepositsSection-BkKUS4vk.cjs.map +1 -0
- package/dist/{DepositsSection-DA89uR9A.js → DepositsSection-DD9MKUFt.js} +20 -14
- package/dist/DepositsSection-DD9MKUFt.js.map +1 -0
- package/dist/EmailRegisterForm-Pvm3I8GP.cjs +1 -0
- package/dist/{EmailRegisterForm-CxktR-4J.cjs.map → EmailRegisterForm-Pvm3I8GP.cjs.map} +1 -1
- package/dist/{EmailRegisterForm-BrDL3BZy.js → EmailRegisterForm-nI0BOIxR.js} +2 -2
- package/dist/{EmailRegisterForm-BrDL3BZy.js.map → EmailRegisterForm-nI0BOIxR.js.map} +1 -1
- package/dist/{EmailSettings-DZywTTRq.cjs → EmailSettings-Bup2rCgU.cjs} +1 -1
- package/dist/{EmailSettings-DZywTTRq.cjs.map → EmailSettings-Bup2rCgU.cjs.map} +1 -1
- package/dist/{EmailSettings-Bna7Z53E.js → EmailSettings-C04qdJCz.js} +1 -1
- package/dist/{EmailSettings-Bna7Z53E.js.map → EmailSettings-C04qdJCz.js.map} +1 -1
- package/dist/{EmailSettings-B8xwgd6_.cjs → EmailSettings-C0Ss6Cne.cjs} +1 -1
- package/dist/{EmailSettings-B8xwgd6_.cjs.map → EmailSettings-C0Ss6Cne.cjs.map} +1 -1
- package/dist/{EmailSettings-DbMDfVaM.js → EmailSettings-DAqH_xum.js} +1 -1
- package/dist/{EmailSettings-DbMDfVaM.js.map → EmailSettings-DAqH_xum.js.map} +1 -1
- package/dist/{EmbeddedWalletSettings-DivEPn39.cjs → EmbeddedWalletSettings-B0XkNuPR.cjs} +1 -1
- package/dist/{EmbeddedWalletSettings-DivEPn39.cjs.map → EmbeddedWalletSettings-B0XkNuPR.cjs.map} +1 -1
- package/dist/{EmbeddedWalletSettings-ANbhj3Lt.js → EmbeddedWalletSettings-DDFQhQOw.js} +1 -1
- package/dist/{EmbeddedWalletSettings-ANbhj3Lt.js.map → EmbeddedWalletSettings-DDFQhQOw.js.map} +1 -1
- package/dist/{EmbeddedWalletSettings-BEztqO19.js → EmbeddedWalletSettings-DYh884HP.js} +1 -1
- package/dist/{EmbeddedWalletSettings-BEztqO19.js.map → EmbeddedWalletSettings-DYh884HP.js.map} +1 -1
- package/dist/{EmbeddedWalletSettings-D6M7pwgk.cjs → EmbeddedWalletSettings-YX0Dk_b_.cjs} +1 -1
- package/dist/{EmbeddedWalletSettings-D6M7pwgk.cjs.map → EmbeddedWalletSettings-YX0Dk_b_.cjs.map} +1 -1
- package/dist/{GoogleLoginButton-B3uRMJ_n.js → GoogleLoginButton-CXwp4LsQ.js} +1 -1
- package/dist/{GoogleLoginButton-B3uRMJ_n.js.map → GoogleLoginButton-CXwp4LsQ.js.map} +1 -1
- package/dist/GoogleLoginButton-zS_69-KV.cjs +1 -0
- package/dist/{GoogleLoginButton-BydKswn4.cjs.map → GoogleLoginButton-zS_69-KV.cjs.map} +1 -1
- package/dist/PermissionsSection-BPbE-hNx.cjs +1 -0
- package/dist/{PermissionsSection-CKXXDfqi.cjs.map → PermissionsSection-BPbE-hNx.cjs.map} +1 -1
- package/dist/{PermissionsSection-BGaj_sI7.js → PermissionsSection-CighC1p6.js} +3 -3
- package/dist/{PermissionsSection-BGaj_sI7.js.map → PermissionsSection-CighC1p6.js.map} +1 -1
- package/dist/{ServerSettings-BZXlm1BX.cjs → ServerSettings-CInJe4jY.cjs} +1 -1
- package/dist/{ServerSettings-BZXlm1BX.cjs.map → ServerSettings-CInJe4jY.cjs.map} +1 -1
- package/dist/{ServerSettings-DZUKo6By.cjs → ServerSettings-CwnEI-PC.cjs} +1 -1
- package/dist/{ServerSettings-DZUKo6By.cjs.map → ServerSettings-CwnEI-PC.cjs.map} +1 -1
- package/dist/{ServerSettings-Bqm4-bt2.js → ServerSettings-DVEtfDQo.js} +1 -1
- package/dist/{ServerSettings-Bqm4-bt2.js.map → ServerSettings-DVEtfDQo.js.map} +1 -1
- package/dist/{ServerSettings-B2RKhJtZ.js → ServerSettings-DakhpYcO.js} +1 -1
- package/dist/{ServerSettings-B2RKhJtZ.js.map → ServerSettings-DakhpYcO.js.map} +1 -1
- package/dist/{SettingsPageLayout-COSYLMu7.cjs → SettingsPageLayout-C6DWgyXS.cjs} +1 -1
- package/dist/{SettingsPageLayout-COSYLMu7.cjs.map → SettingsPageLayout-C6DWgyXS.cjs.map} +1 -1
- package/dist/{SettingsPageLayout-DpgNEkuu.js → SettingsPageLayout-CLJI6hFQ.js} +1 -1
- package/dist/{SettingsPageLayout-DpgNEkuu.js.map → SettingsPageLayout-CLJI6hFQ.js.map} +1 -1
- package/dist/SolanaLoginButton-BjOxpE1C.cjs +1 -0
- package/dist/{SolanaLoginButton-fAW7kRUu.cjs.map → SolanaLoginButton-BjOxpE1C.cjs.map} +1 -1
- package/dist/{SolanaLoginButton-C_u9OppS.js → SolanaLoginButton-P22QjBaO.js} +1 -1
- package/dist/{SolanaLoginButton-C_u9OppS.js.map → SolanaLoginButton-P22QjBaO.js.map} +1 -1
- package/dist/{TeamSection-CvrCoa9D.js → TeamSection-BIECkp7g.js} +2 -2
- package/dist/{TeamSection-CvrCoa9D.js.map → TeamSection-BIECkp7g.js.map} +1 -1
- package/dist/{TeamSection-DlUD5kp5.cjs → TeamSection-BOH9pv_E.cjs} +1 -1
- package/dist/{TeamSection-DlUD5kp5.cjs.map → TeamSection-BOH9pv_E.cjs.map} +1 -1
- package/dist/UsersSection-e6q7FHzx.cjs +1 -0
- package/dist/UsersSection-e6q7FHzx.cjs.map +1 -0
- package/dist/UsersSection-t-zm0jZW.js +33 -0
- package/dist/UsersSection-t-zm0jZW.js.map +1 -0
- package/dist/{WebhookSettings-DXNH5bal.cjs → WebhookSettings-BMeykdRP.cjs} +1 -1
- package/dist/{WebhookSettings-DXNH5bal.cjs.map → WebhookSettings-BMeykdRP.cjs.map} +1 -1
- package/dist/{WebhookSettings-BWl_wsvg.cjs → WebhookSettings-BNVooF0B.cjs} +1 -1
- package/dist/{WebhookSettings-BWl_wsvg.cjs.map → WebhookSettings-BNVooF0B.cjs.map} +1 -1
- package/dist/{WebhookSettings-BT5q6AZ8.js → WebhookSettings-DXeDYhAe.js} +1 -1
- package/dist/{WebhookSettings-BT5q6AZ8.js.map → WebhookSettings-DXeDYhAe.js.map} +1 -1
- package/dist/{WebhookSettings-bUg2u_p0.js → WebhookSettings-DdbxNPZ9.js} +1 -1
- package/dist/{WebhookSettings-bUg2u_p0.js.map → WebhookSettings-DdbxNPZ9.js.map} +1 -1
- package/dist/WithdrawalsSection-sljIyeaz.cjs +1 -0
- package/dist/WithdrawalsSection-sljIyeaz.cjs.map +1 -0
- package/dist/WithdrawalsSection-yRDTVFsb.js +27 -0
- package/dist/WithdrawalsSection-yRDTVFsb.js.map +1 -0
- package/dist/admin-only.cjs +1 -1
- package/dist/admin-only.js +1 -1
- package/dist/email-only.cjs +1 -1
- package/dist/email-only.d.ts +13 -2
- package/dist/email-only.js +3 -3
- package/dist/google-only.cjs +1 -1
- package/dist/google-only.d.ts +13 -2
- package/dist/google-only.js +3 -3
- package/dist/index.cjs +12 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +31 -8
- package/dist/index.js +1066 -1098
- package/dist/index.js.map +1 -1
- package/dist/{plugin-5qRh-YhX.js → plugin-CW_ycXye.js} +1 -1
- package/dist/{plugin-5qRh-YhX.js.map → plugin-CW_ycXye.js.map} +1 -1
- package/dist/{plugin-BtYBW6JY.cjs → plugin-CnbFRy5o.cjs} +1 -1
- package/dist/{plugin-BtYBW6JY.cjs.map → plugin-CnbFRy5o.cjs.map} +1 -1
- package/dist/{shamir-AeLLfw0p.cjs → shamir-4DyQMJCk.cjs} +1 -1
- package/dist/{shamir-AeLLfw0p.cjs.map → shamir-4DyQMJCk.cjs.map} +1 -1
- package/dist/{shamir-B0wConeK.js → shamir-L-s-Tp1Z.js} +1 -1
- package/dist/{shamir-B0wConeK.js.map → shamir-L-s-Tp1Z.js.map} +1 -1
- package/dist/silentWalletEnroll-BgTb4H5I.cjs +1 -0
- package/dist/{silentWalletEnroll-B8pgdKZO.cjs.map → silentWalletEnroll-BgTb4H5I.cjs.map} +1 -1
- package/dist/{silentWalletEnroll-DR2kPw7W.js → silentWalletEnroll-DWt6Pr3B.js} +3 -3
- package/dist/{silentWalletEnroll-DR2kPw7W.js.map → silentWalletEnroll-DWt6Pr3B.js.map} +1 -1
- package/dist/solana-only.cjs +1 -1
- package/dist/solana-only.d.ts +13 -2
- package/dist/solana-only.js +3 -3
- package/dist/{useAdminDeposits-BDY5KJ0-.js → useAdminDeposits-BTSyeAfg.js} +1 -1
- package/dist/{useAdminDeposits-BDY5KJ0-.js.map → useAdminDeposits-BTSyeAfg.js.map} +1 -1
- package/dist/useAdminDeposits-BkkCwHWp.cjs +1 -0
- package/dist/{useAdminDeposits-Dvx3_UUE.cjs.map → useAdminDeposits-BkkCwHWp.cjs.map} +1 -1
- package/dist/{useAuth-Bge6KaWN.js → useAuth-C3dpk0po.js} +597 -561
- package/dist/useAuth-C3dpk0po.js.map +1 -0
- package/dist/useAuth-D3Pk_H3z.cjs +1 -0
- package/dist/useAuth-D3Pk_H3z.cjs.map +1 -0
- package/dist/useCedrosLogin-C9MrcZvh.cjs +1 -0
- package/dist/useCedrosLogin-C9MrcZvh.cjs.map +1 -0
- package/dist/{apiClient-B2JxVPlH.js → useCedrosLogin-_94MmGGq.js} +29 -29
- package/dist/useCedrosLogin-_94MmGGq.js.map +1 -0
- package/dist/{useOrgs-Be3KH4ib.js → useOrgs-C3pzMA9h.js} +1 -1
- package/dist/{useOrgs-Be3KH4ib.js.map → useOrgs-C3pzMA9h.js.map} +1 -1
- package/dist/useOrgs-DDVRCaVi.cjs +1 -0
- package/dist/{useOrgs-CVbacmaQ.cjs.map → useOrgs-DDVRCaVi.cjs.map} +1 -1
- package/dist/{useSystemSettings-DN5YqfNq.js → useSystemSettings-DBlAMjFi.js} +1 -1
- package/dist/{useSystemSettings-DN5YqfNq.js.map → useSystemSettings-DBlAMjFi.js.map} +1 -1
- package/dist/useSystemSettings-DRrreszl.cjs +1 -0
- package/dist/{useSystemSettings-D9Cr7ZTl.cjs.map → useSystemSettings-DRrreszl.cjs.map} +1 -1
- package/dist/useUsersStatsSummary-8qY7iP4G.cjs +1 -0
- package/dist/useUsersStatsSummary-8qY7iP4G.cjs.map +1 -0
- package/dist/{AdminUserDetail-DHFDzY8B.js → useUsersStatsSummary-NjEFvWuz.js} +431 -380
- package/dist/useUsersStatsSummary-NjEFvWuz.js.map +1 -0
- package/package.json +1 -1
- package/dist/AdminDepositList-Cx0xRwES.js +0 -305
- package/dist/AdminDepositList-Cx0xRwES.js.map +0 -1
- package/dist/AdminDepositList-UEcyRZkA.cjs +0 -1
- package/dist/AdminDepositList-UEcyRZkA.cjs.map +0 -1
- package/dist/AdminUserDetail-BzEIdNJh.cjs +0 -1
- package/dist/AdminUserDetail-BzEIdNJh.cjs.map +0 -1
- package/dist/AdminUserDetail-DHFDzY8B.js.map +0 -1
- package/dist/AdminWithdrawalHistory-0yxtMh6q.cjs +0 -1
- package/dist/AdminWithdrawalHistory-0yxtMh6q.cjs.map +0 -1
- package/dist/AdminWithdrawalHistory-BGjfrIe3.js.map +0 -1
- package/dist/AuthenticationSettings-BPAh1my6.cjs +0 -1
- package/dist/AutosaveStatus-CYkC2aI_.cjs +0 -1
- package/dist/AutosaveStatus-CYkC2aI_.cjs.map +0 -1
- package/dist/AutosaveStatus-N4uNS6-2.js.map +0 -1
- package/dist/DepositsSection-DA89uR9A.js.map +0 -1
- package/dist/DepositsSection-i6XdhLNs.cjs +0 -1
- package/dist/DepositsSection-i6XdhLNs.cjs.map +0 -1
- package/dist/EmailRegisterForm-CxktR-4J.cjs +0 -1
- package/dist/GoogleLoginButton-BydKswn4.cjs +0 -1
- package/dist/PermissionsSection-CKXXDfqi.cjs +0 -1
- package/dist/SolanaLoginButton-fAW7kRUu.cjs +0 -1
- package/dist/UsersSection-C2U8Tb7V.cjs +0 -1
- package/dist/UsersSection-C2U8Tb7V.cjs.map +0 -1
- package/dist/UsersSection-Dbh9PTSA.js +0 -83
- package/dist/UsersSection-Dbh9PTSA.js.map +0 -1
- package/dist/WithdrawalsSection-BL_LOUq8.cjs +0 -1
- package/dist/WithdrawalsSection-BL_LOUq8.cjs.map +0 -1
- package/dist/WithdrawalsSection-CN-lLnqX.js +0 -20
- package/dist/WithdrawalsSection-CN-lLnqX.js.map +0 -1
- package/dist/apiClient-B2JxVPlH.js.map +0 -1
- package/dist/apiClient-CTTKhsYb.cjs +0 -1
- package/dist/apiClient-CTTKhsYb.cjs.map +0 -1
- package/dist/silentWalletEnroll-B8pgdKZO.cjs +0 -1
- package/dist/useAdminDeposits-Dvx3_UUE.cjs +0 -1
- package/dist/useAuth-Bge6KaWN.js.map +0 -1
- package/dist/useAuth-DhIDTLRd.cjs +0 -1
- package/dist/useAuth-DhIDTLRd.cjs.map +0 -1
- package/dist/useOrgs-CVbacmaQ.cjs +0 -1
- package/dist/useSystemSettings-D9Cr7ZTl.cjs +0 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useState as N, useMemo as
|
|
3
|
-
import { A as we, h as D, u as ve } from "./
|
|
4
|
-
|
|
1
|
+
import { jsxs as s, jsx as e, Fragment as B } from "react/jsx-runtime";
|
|
2
|
+
import { useState as N, useMemo as z, useCallback as v, useEffect as q } from "react";
|
|
3
|
+
import { A as we, h as D, u as ve } from "./useCedrosLogin-_94MmGGq.js";
|
|
4
|
+
import { u as Ce } from "./useSystemSettings-DBlAMjFi.js";
|
|
5
|
+
class Se {
|
|
5
6
|
client;
|
|
6
|
-
constructor(a, n, r,
|
|
7
|
-
this.client = new we({ baseUrl: a, timeoutMs: n, retryAttempts: r, getAccessToken:
|
|
7
|
+
constructor(a, n, r, p) {
|
|
8
|
+
this.client = new we({ baseUrl: a, timeoutMs: n, retryAttempts: r, getAccessToken: p });
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
11
|
* List all users in the system
|
|
@@ -13,8 +14,8 @@ class Ce {
|
|
|
13
14
|
try {
|
|
14
15
|
const n = new URLSearchParams();
|
|
15
16
|
a?.limit && n.set("limit", String(a.limit)), a?.offset && n.set("offset", String(a.offset));
|
|
16
|
-
const r = n.toString(),
|
|
17
|
-
return await this.client.get(
|
|
17
|
+
const r = n.toString(), p = `/admin/users${r ? `?${r}` : ""}`;
|
|
18
|
+
return await this.client.get(p);
|
|
18
19
|
} catch (n) {
|
|
19
20
|
throw D(n, "Failed to list users");
|
|
20
21
|
}
|
|
@@ -86,8 +87,8 @@ class Ce {
|
|
|
86
87
|
try {
|
|
87
88
|
const r = new URLSearchParams();
|
|
88
89
|
n?.limit && r.set("limit", String(n.limit)), n?.offset && r.set("offset", String(n.offset));
|
|
89
|
-
const
|
|
90
|
-
return await this.client.get(
|
|
90
|
+
const p = r.toString(), g = `/admin/users/${a}/deposits${p ? `?${p}` : ""}`;
|
|
91
|
+
return await this.client.get(g);
|
|
91
92
|
} catch (r) {
|
|
92
93
|
throw D(r, "Failed to get user deposits");
|
|
93
94
|
}
|
|
@@ -99,8 +100,8 @@ class Ce {
|
|
|
99
100
|
try {
|
|
100
101
|
const r = new URLSearchParams();
|
|
101
102
|
n?.limit && r.set("limit", String(n.limit)), n?.offset && r.set("offset", String(n.offset));
|
|
102
|
-
const
|
|
103
|
-
return await this.client.get(
|
|
103
|
+
const p = r.toString(), g = `/admin/users/${a}/credits${p ? `?${p}` : ""}`;
|
|
104
|
+
return await this.client.get(g);
|
|
104
105
|
} catch (r) {
|
|
105
106
|
throw D(r, "Failed to get user credits");
|
|
106
107
|
}
|
|
@@ -112,8 +113,8 @@ class Ce {
|
|
|
112
113
|
try {
|
|
113
114
|
const r = new URLSearchParams();
|
|
114
115
|
n?.limit && r.set("limit", String(n.limit)), n?.offset && r.set("offset", String(n.offset));
|
|
115
|
-
const
|
|
116
|
-
return await this.client.get(
|
|
116
|
+
const p = r.toString(), g = `/admin/users/${a}/withdrawal-history${p ? `?${p}` : ""}`;
|
|
117
|
+
return await this.client.get(g);
|
|
117
118
|
} catch (r) {
|
|
118
119
|
throw D(r, "Failed to get user withdrawal history");
|
|
119
120
|
}
|
|
@@ -126,8 +127,8 @@ class Ce {
|
|
|
126
127
|
try {
|
|
127
128
|
const r = new URLSearchParams();
|
|
128
129
|
n?.limit && r.set("limit", String(n.limit)), n?.offset && r.set("offset", String(n.offset));
|
|
129
|
-
const
|
|
130
|
-
return await this.client.get(
|
|
130
|
+
const p = r.toString(), g = `/admin/users/${a}/chats${p ? `?${p}` : ""}`;
|
|
131
|
+
return await this.client.get(g);
|
|
131
132
|
} catch (r) {
|
|
132
133
|
throw D(r, "Failed to get user chat history");
|
|
133
134
|
}
|
|
@@ -143,21 +144,21 @@ class Ce {
|
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
146
|
}
|
|
146
|
-
function
|
|
147
|
-
const { config:
|
|
148
|
-
() => new
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
147
|
+
function ee() {
|
|
148
|
+
const { config: t, _internal: a } = ve(), [n, r] = N([]), [p, g] = N(0), [w, l] = N(!1), [u, h] = N(null), [$, P] = N({}), f = z(
|
|
149
|
+
() => new Se(
|
|
150
|
+
t.serverUrl,
|
|
151
|
+
t.requestTimeout,
|
|
152
|
+
t.retryAttempts,
|
|
152
153
|
a?.getAccessToken
|
|
153
154
|
),
|
|
154
|
-
[
|
|
155
|
-
),
|
|
156
|
-
async (
|
|
157
|
-
l(!0), h(null),
|
|
155
|
+
[t.serverUrl, t.requestTimeout, t.retryAttempts, a]
|
|
156
|
+
), R = v(
|
|
157
|
+
async (d) => {
|
|
158
|
+
l(!0), h(null), P(d || {});
|
|
158
159
|
try {
|
|
159
|
-
const i = await f.listUsers(
|
|
160
|
-
return r(i.users),
|
|
160
|
+
const i = await f.listUsers(d);
|
|
161
|
+
return r(i.users), g(i.total), i;
|
|
161
162
|
} catch (i) {
|
|
162
163
|
const o = i instanceof Error ? i : new Error("Failed to list users");
|
|
163
164
|
throw h(o), o;
|
|
@@ -166,11 +167,11 @@ function ne() {
|
|
|
166
167
|
}
|
|
167
168
|
},
|
|
168
169
|
[f]
|
|
169
|
-
),
|
|
170
|
-
async (
|
|
170
|
+
), C = v(
|
|
171
|
+
async (d) => {
|
|
171
172
|
l(!0), h(null);
|
|
172
173
|
try {
|
|
173
|
-
return await f.getUser(
|
|
174
|
+
return await f.getUser(d);
|
|
174
175
|
} catch (i) {
|
|
175
176
|
const o = i instanceof Error ? i : new Error("Failed to get user");
|
|
176
177
|
throw h(o), o;
|
|
@@ -179,40 +180,40 @@ function ne() {
|
|
|
179
180
|
}
|
|
180
181
|
},
|
|
181
182
|
[f]
|
|
182
|
-
),
|
|
183
|
-
async (
|
|
183
|
+
), c = v(
|
|
184
|
+
async (d, i) => {
|
|
184
185
|
l(!0), h(null);
|
|
185
186
|
try {
|
|
186
|
-
await f.setSystemAdmin(
|
|
187
|
-
(o) => o.map((
|
|
187
|
+
await f.setSystemAdmin(d, i), r(
|
|
188
|
+
(o) => o.map((b) => b.id === d ? { ...b, isSystemAdmin: i } : b)
|
|
188
189
|
);
|
|
189
190
|
} catch (o) {
|
|
190
|
-
const
|
|
191
|
-
throw h(
|
|
191
|
+
const b = o instanceof Error ? o : new Error("Failed to update admin status");
|
|
192
|
+
throw h(b), b;
|
|
192
193
|
} finally {
|
|
193
194
|
l(!1);
|
|
194
195
|
}
|
|
195
196
|
},
|
|
196
197
|
[f]
|
|
197
|
-
),
|
|
198
|
-
async (
|
|
198
|
+
), S = v(
|
|
199
|
+
async (d, i) => {
|
|
199
200
|
l(!0), h(null);
|
|
200
201
|
try {
|
|
201
|
-
const o = await f.updateUser(
|
|
202
|
-
return r((
|
|
202
|
+
const o = await f.updateUser(d, i);
|
|
203
|
+
return r((b) => b.map((x) => x.id === d ? o : x)), o;
|
|
203
204
|
} catch (o) {
|
|
204
|
-
const
|
|
205
|
-
throw h(
|
|
205
|
+
const b = o instanceof Error ? o : new Error("Failed to update user");
|
|
206
|
+
throw h(b), b;
|
|
206
207
|
} finally {
|
|
207
208
|
l(!1);
|
|
208
209
|
}
|
|
209
210
|
},
|
|
210
211
|
[f]
|
|
211
|
-
),
|
|
212
|
-
async (
|
|
212
|
+
), U = v(
|
|
213
|
+
async (d) => {
|
|
213
214
|
l(!0), h(null);
|
|
214
215
|
try {
|
|
215
|
-
await f.deleteUser(
|
|
216
|
+
await f.deleteUser(d), r((i) => i.filter((o) => o.id !== d)), g((i) => i - 1);
|
|
216
217
|
} catch (i) {
|
|
217
218
|
const o = i instanceof Error ? i : new Error("Failed to delete user");
|
|
218
219
|
throw h(o), o;
|
|
@@ -221,11 +222,11 @@ function ne() {
|
|
|
221
222
|
}
|
|
222
223
|
},
|
|
223
224
|
[f]
|
|
224
|
-
),
|
|
225
|
-
async (
|
|
225
|
+
), E = v(
|
|
226
|
+
async (d) => {
|
|
226
227
|
l(!0), h(null);
|
|
227
228
|
try {
|
|
228
|
-
await f.forcePasswordReset(
|
|
229
|
+
await f.forcePasswordReset(d);
|
|
229
230
|
} catch (i) {
|
|
230
231
|
const o = i instanceof Error ? i : new Error("Failed to send password reset");
|
|
231
232
|
throw h(o), o;
|
|
@@ -234,191 +235,191 @@ function ne() {
|
|
|
234
235
|
}
|
|
235
236
|
},
|
|
236
237
|
[f]
|
|
237
|
-
),
|
|
238
|
-
async (
|
|
238
|
+
), k = v(
|
|
239
|
+
async (d, i, o) => {
|
|
239
240
|
l(!0), h(null);
|
|
240
241
|
try {
|
|
241
|
-
await f.adjustCredits(
|
|
242
|
-
} catch (
|
|
243
|
-
const x =
|
|
242
|
+
await f.adjustCredits(d, { amount: i, reason: o });
|
|
243
|
+
} catch (b) {
|
|
244
|
+
const x = b instanceof Error ? b : new Error("Failed to adjust credits");
|
|
244
245
|
throw h(x), x;
|
|
245
246
|
} finally {
|
|
246
247
|
l(!1);
|
|
247
248
|
}
|
|
248
249
|
},
|
|
249
250
|
[f]
|
|
250
|
-
),
|
|
251
|
-
async (
|
|
251
|
+
), O = v(
|
|
252
|
+
async (d, i) => {
|
|
252
253
|
l(!0), h(null);
|
|
253
254
|
try {
|
|
254
|
-
return await f.getUserDeposits(
|
|
255
|
+
return await f.getUserDeposits(d, i);
|
|
255
256
|
} catch (o) {
|
|
256
|
-
const
|
|
257
|
-
throw h(
|
|
257
|
+
const b = o instanceof Error ? o : new Error("Failed to get user deposits");
|
|
258
|
+
throw h(b), b;
|
|
258
259
|
} finally {
|
|
259
260
|
l(!1);
|
|
260
261
|
}
|
|
261
262
|
},
|
|
262
263
|
[f]
|
|
263
|
-
),
|
|
264
|
-
async (
|
|
264
|
+
), M = v(
|
|
265
|
+
async (d, i) => {
|
|
265
266
|
l(!0), h(null);
|
|
266
267
|
try {
|
|
267
|
-
return await f.getUserCredits(
|
|
268
|
+
return await f.getUserCredits(d, i);
|
|
268
269
|
} catch (o) {
|
|
269
|
-
const
|
|
270
|
-
throw h(
|
|
270
|
+
const b = o instanceof Error ? o : new Error("Failed to get user credits");
|
|
271
|
+
throw h(b), b;
|
|
271
272
|
} finally {
|
|
272
273
|
l(!1);
|
|
273
274
|
}
|
|
274
275
|
},
|
|
275
276
|
[f]
|
|
276
|
-
),
|
|
277
|
-
async (
|
|
277
|
+
), F = v(
|
|
278
|
+
async (d, i) => {
|
|
278
279
|
l(!0), h(null);
|
|
279
280
|
try {
|
|
280
|
-
return await f.getUserWithdrawalHistory(
|
|
281
|
+
return await f.getUserWithdrawalHistory(d, i);
|
|
281
282
|
} catch (o) {
|
|
282
|
-
const
|
|
283
|
-
throw h(
|
|
283
|
+
const b = o instanceof Error ? o : new Error("Failed to get user withdrawal history");
|
|
284
|
+
throw h(b), b;
|
|
284
285
|
} finally {
|
|
285
286
|
l(!1);
|
|
286
287
|
}
|
|
287
288
|
},
|
|
288
289
|
[f]
|
|
289
|
-
),
|
|
290
|
-
async (
|
|
290
|
+
), L = v(
|
|
291
|
+
async (d, i) => {
|
|
291
292
|
l(!0), h(null);
|
|
292
293
|
try {
|
|
293
|
-
return await f.getUserChats(
|
|
294
|
+
return await f.getUserChats(d, i);
|
|
294
295
|
} catch (o) {
|
|
295
|
-
const
|
|
296
|
-
throw h(
|
|
296
|
+
const b = o instanceof Error ? o : new Error("Failed to get user chat history");
|
|
297
|
+
throw h(b), b;
|
|
297
298
|
} finally {
|
|
298
299
|
l(!1);
|
|
299
300
|
}
|
|
300
301
|
},
|
|
301
302
|
[f]
|
|
302
|
-
),
|
|
303
|
+
), T = v(async () => {
|
|
303
304
|
l(!0), h(null);
|
|
304
305
|
try {
|
|
305
306
|
return await f.getStats();
|
|
306
|
-
} catch (
|
|
307
|
-
const i =
|
|
307
|
+
} catch (d) {
|
|
308
|
+
const i = d instanceof Error ? d : new Error("Failed to get user stats");
|
|
308
309
|
throw h(i), i;
|
|
309
310
|
} finally {
|
|
310
311
|
l(!1);
|
|
311
312
|
}
|
|
312
|
-
}, [f]),
|
|
313
|
-
await
|
|
314
|
-
}, [
|
|
313
|
+
}, [f]), _ = v(async () => {
|
|
314
|
+
await R($);
|
|
315
|
+
}, [R, $]), m = v(() => {
|
|
315
316
|
h(null);
|
|
316
317
|
}, []);
|
|
317
318
|
return {
|
|
318
319
|
users: n,
|
|
319
|
-
total:
|
|
320
|
+
total: p,
|
|
320
321
|
isLoading: w,
|
|
321
322
|
error: u,
|
|
322
|
-
listUsers:
|
|
323
|
-
getUser:
|
|
324
|
-
setSystemAdmin:
|
|
325
|
-
updateUser:
|
|
326
|
-
deleteUser:
|
|
327
|
-
forcePasswordReset:
|
|
328
|
-
adjustCredits:
|
|
329
|
-
getUserDeposits:
|
|
330
|
-
getUserCredits:
|
|
331
|
-
getUserWithdrawalHistory:
|
|
332
|
-
getUserChats:
|
|
333
|
-
getStats:
|
|
334
|
-
refresh:
|
|
335
|
-
clearError:
|
|
323
|
+
listUsers: R,
|
|
324
|
+
getUser: C,
|
|
325
|
+
setSystemAdmin: c,
|
|
326
|
+
updateUser: S,
|
|
327
|
+
deleteUser: U,
|
|
328
|
+
forcePasswordReset: E,
|
|
329
|
+
adjustCredits: k,
|
|
330
|
+
getUserDeposits: O,
|
|
331
|
+
getUserCredits: M,
|
|
332
|
+
getUserWithdrawalHistory: F,
|
|
333
|
+
getUserChats: L,
|
|
334
|
+
getStats: T,
|
|
335
|
+
refresh: _,
|
|
336
|
+
clearError: m
|
|
336
337
|
};
|
|
337
338
|
}
|
|
338
|
-
function
|
|
339
|
-
return new Date(
|
|
339
|
+
function re(t) {
|
|
340
|
+
return new Date(t).toLocaleDateString(void 0, {
|
|
340
341
|
year: "numeric",
|
|
341
342
|
month: "short",
|
|
342
343
|
day: "numeric"
|
|
343
344
|
});
|
|
344
345
|
}
|
|
345
|
-
function
|
|
346
|
-
return
|
|
346
|
+
function Ue(t) {
|
|
347
|
+
return t.length <= 12 ? t : `${t.slice(0, 6)}...${t.slice(-4)}`;
|
|
347
348
|
}
|
|
348
|
-
function
|
|
349
|
-
return
|
|
349
|
+
function Ee(t) {
|
|
350
|
+
return t == null ? "-" : (t / 1e9).toFixed(4);
|
|
350
351
|
}
|
|
351
|
-
function
|
|
352
|
-
pageSize:
|
|
352
|
+
function qe({
|
|
353
|
+
pageSize: t = 20,
|
|
353
354
|
refreshInterval: a = 0,
|
|
354
355
|
currentUserId: n,
|
|
355
356
|
className: r = "",
|
|
356
|
-
onLoad:
|
|
357
|
-
onUserClick:
|
|
357
|
+
onLoad: p,
|
|
358
|
+
onUserClick: g
|
|
358
359
|
}) {
|
|
359
|
-
const { users: w, total: l, isLoading: u, error: h, listUsers:
|
|
360
|
-
|
|
361
|
-
},
|
|
360
|
+
const { users: w, total: l, isLoading: u, error: h, listUsers: $, clearError: P } = ee(), [f, R] = N(0), [C, c] = N(null), [S, U] = N("createdAt"), [E, k] = N("desc"), O = (m) => {
|
|
361
|
+
S === m ? k(E === "asc" ? "desc" : "asc") : (U(m), k("desc"));
|
|
362
|
+
}, M = z(() => [...w].sort((m, d) => {
|
|
362
363
|
let i, o;
|
|
363
|
-
switch (
|
|
364
|
+
switch (S) {
|
|
364
365
|
case "name":
|
|
365
|
-
i = (
|
|
366
|
+
i = (m.name || m.email || "").toLowerCase(), o = (d.name || d.email || "").toLowerCase();
|
|
366
367
|
break;
|
|
367
368
|
case "createdAt":
|
|
368
|
-
i = new Date(
|
|
369
|
+
i = new Date(m.createdAt).getTime(), o = new Date(d.createdAt).getTime();
|
|
369
370
|
break;
|
|
370
371
|
case "lastLoginAt":
|
|
371
|
-
i =
|
|
372
|
+
i = m.lastLoginAt ? new Date(m.lastLoginAt).getTime() : 0, o = d.lastLoginAt ? new Date(d.lastLoginAt).getTime() : 0;
|
|
372
373
|
break;
|
|
373
374
|
case "balanceLamports":
|
|
374
|
-
i =
|
|
375
|
+
i = m.balanceLamports ?? 0, o = d.balanceLamports ?? 0;
|
|
375
376
|
break;
|
|
376
377
|
default:
|
|
377
378
|
return 0;
|
|
378
379
|
}
|
|
379
|
-
return i < o ?
|
|
380
|
-
}), [w,
|
|
380
|
+
return i < o ? E === "asc" ? -1 : 1 : i > o ? E === "asc" ? 1 : -1 : 0;
|
|
381
|
+
}), [w, S, E]), F = v(async () => {
|
|
381
382
|
try {
|
|
382
|
-
const
|
|
383
|
-
|
|
384
|
-
} catch (
|
|
385
|
-
m
|
|
383
|
+
const m = await $({ limit: t, offset: f });
|
|
384
|
+
p?.(m), c(null);
|
|
385
|
+
} catch (m) {
|
|
386
|
+
c(m instanceof Error ? m.message : "Failed to load users");
|
|
386
387
|
}
|
|
387
|
-
}, [
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
}, [
|
|
391
|
-
|
|
392
|
-
}, [
|
|
388
|
+
}, [t, f, $, p]);
|
|
389
|
+
q(() => {
|
|
390
|
+
R(0);
|
|
391
|
+
}, [t]), q(() => {
|
|
392
|
+
F();
|
|
393
|
+
}, [F]), q(() => {
|
|
393
394
|
if (a <= 0) return;
|
|
394
|
-
const
|
|
395
|
-
return () => clearInterval(
|
|
396
|
-
}, [a,
|
|
397
|
-
const
|
|
398
|
-
const
|
|
399
|
-
|
|
395
|
+
const m = setInterval(F, a);
|
|
396
|
+
return () => clearInterval(m);
|
|
397
|
+
}, [a, F]);
|
|
398
|
+
const L = Math.ceil(l / t), T = Math.floor(f / t) + 1, _ = (m) => {
|
|
399
|
+
const d = (m - 1) * t;
|
|
400
|
+
R(Math.max(0, Math.min(d, Math.max(0, l - 1))));
|
|
400
401
|
};
|
|
401
|
-
return
|
|
402
|
-
/* @__PURE__ */ e("p", { className: "cedros-admin-error", children:
|
|
402
|
+
return C || h ? /* @__PURE__ */ s("div", { className: `cedros-admin-user-list cedros-admin-user-list-error ${r}`, children: [
|
|
403
|
+
/* @__PURE__ */ e("p", { className: "cedros-admin-error", children: C || h?.message }),
|
|
403
404
|
/* @__PURE__ */ e(
|
|
404
405
|
"button",
|
|
405
406
|
{
|
|
406
407
|
type: "button",
|
|
407
408
|
className: "cedros-button cedros-button-outline",
|
|
408
409
|
onClick: () => {
|
|
409
|
-
|
|
410
|
+
P(), c(null), F();
|
|
410
411
|
},
|
|
411
412
|
children: "Retry"
|
|
412
413
|
}
|
|
413
414
|
)
|
|
414
|
-
] }) : u && w.length === 0 ? /* @__PURE__ */
|
|
415
|
+
] }) : u && w.length === 0 ? /* @__PURE__ */ s("div", { className: `cedros-admin-user-list cedros-admin-user-list-loading ${r}`, children: [
|
|
415
416
|
/* @__PURE__ */ e("span", { className: "cedros-admin-loading-indicator" }),
|
|
416
417
|
/* @__PURE__ */ e("span", { className: "cedros-admin-loading-text", children: "Loading users..." })
|
|
417
|
-
] }) : /* @__PURE__ */
|
|
418
|
-
/* @__PURE__ */
|
|
418
|
+
] }) : /* @__PURE__ */ s("div", { className: `cedros-admin-user-list ${r}`, children: [
|
|
419
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-list-header", children: [
|
|
419
420
|
/* @__PURE__ */ e("h4", { className: "cedros-admin-user-list-title", children: "All Users" }),
|
|
420
|
-
/* @__PURE__ */
|
|
421
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-list-actions", children: [
|
|
422
|
+
/* @__PURE__ */ s("span", { className: "cedros-admin-queue-count", children: [
|
|
422
423
|
l,
|
|
423
424
|
" user",
|
|
424
425
|
l !== 1 ? "s" : ""
|
|
@@ -428,7 +429,7 @@ function Re({
|
|
|
428
429
|
{
|
|
429
430
|
type: "button",
|
|
430
431
|
className: "cedros-admin__stats-bar-refresh",
|
|
431
|
-
onClick:
|
|
432
|
+
onClick: F,
|
|
432
433
|
disabled: u,
|
|
433
434
|
title: "Refresh list",
|
|
434
435
|
"aria-label": "Refresh list",
|
|
@@ -437,122 +438,122 @@ function Re({
|
|
|
437
438
|
)
|
|
438
439
|
] })
|
|
439
440
|
] }),
|
|
440
|
-
w.length === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin-empty", children: /* @__PURE__ */ e("p", { className: "cedros-admin-empty-message", children: "No users found." }) }) : /* @__PURE__ */
|
|
441
|
-
/* @__PURE__ */
|
|
442
|
-
/* @__PURE__ */
|
|
443
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-th", children: /* @__PURE__ */
|
|
441
|
+
w.length === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin-empty", children: /* @__PURE__ */ e("p", { className: "cedros-admin-empty-message", children: "No users found." }) }) : /* @__PURE__ */ s(B, { children: [
|
|
442
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-table", children: [
|
|
443
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-thead", children: [
|
|
444
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-th", children: /* @__PURE__ */ s(
|
|
444
445
|
"button",
|
|
445
446
|
{
|
|
446
447
|
type: "button",
|
|
447
|
-
className: `cedros-admin-sort-button ${
|
|
448
|
-
onClick: () =>
|
|
448
|
+
className: `cedros-admin-sort-button ${S === "name" ? "cedros-admin-sort-active" : ""}`,
|
|
449
|
+
onClick: () => O("name"),
|
|
449
450
|
"aria-label": "Sort by user",
|
|
450
451
|
children: [
|
|
451
452
|
"User",
|
|
452
453
|
" ",
|
|
453
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-sort-icon", children:
|
|
454
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-sort-icon", children: S === "name" ? E === "asc" ? "↑" : "↓" : "↕" })
|
|
454
455
|
]
|
|
455
456
|
}
|
|
456
457
|
) }),
|
|
457
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-th", children: /* @__PURE__ */
|
|
458
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-th", children: /* @__PURE__ */ s(
|
|
458
459
|
"button",
|
|
459
460
|
{
|
|
460
461
|
type: "button",
|
|
461
|
-
className: `cedros-admin-sort-button ${
|
|
462
|
-
onClick: () =>
|
|
462
|
+
className: `cedros-admin-sort-button ${S === "createdAt" ? "cedros-admin-sort-active" : ""}`,
|
|
463
|
+
onClick: () => O("createdAt"),
|
|
463
464
|
"aria-label": "Sort by registered date",
|
|
464
465
|
children: [
|
|
465
466
|
"Registered",
|
|
466
467
|
" ",
|
|
467
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-sort-icon", children:
|
|
468
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-sort-icon", children: S === "createdAt" ? E === "asc" ? "↑" : "↓" : "↕" })
|
|
468
469
|
]
|
|
469
470
|
}
|
|
470
471
|
) }),
|
|
471
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-th", children: /* @__PURE__ */
|
|
472
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-th", children: /* @__PURE__ */ s(
|
|
472
473
|
"button",
|
|
473
474
|
{
|
|
474
475
|
type: "button",
|
|
475
|
-
className: `cedros-admin-sort-button ${
|
|
476
|
-
onClick: () =>
|
|
476
|
+
className: `cedros-admin-sort-button ${S === "lastLoginAt" ? "cedros-admin-sort-active" : ""}`,
|
|
477
|
+
onClick: () => O("lastLoginAt"),
|
|
477
478
|
"aria-label": "Sort by last login",
|
|
478
479
|
children: [
|
|
479
480
|
"Last Login",
|
|
480
481
|
" ",
|
|
481
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-sort-icon", children:
|
|
482
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-sort-icon", children: S === "lastLoginAt" ? E === "asc" ? "↑" : "↓" : "↕" })
|
|
482
483
|
]
|
|
483
484
|
}
|
|
484
485
|
) }),
|
|
485
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-th", children: /* @__PURE__ */
|
|
486
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-th", children: /* @__PURE__ */ s(
|
|
486
487
|
"button",
|
|
487
488
|
{
|
|
488
489
|
type: "button",
|
|
489
|
-
className: `cedros-admin-sort-button ${
|
|
490
|
-
onClick: () =>
|
|
490
|
+
className: `cedros-admin-sort-button ${S === "balanceLamports" ? "cedros-admin-sort-active" : ""}`,
|
|
491
|
+
onClick: () => O("balanceLamports"),
|
|
491
492
|
"aria-label": "Sort by balance",
|
|
492
493
|
children: [
|
|
493
494
|
"Balance",
|
|
494
495
|
" ",
|
|
495
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-sort-icon", children:
|
|
496
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-sort-icon", children: S === "balanceLamports" ? E === "asc" ? "↑" : "↓" : "↕" })
|
|
496
497
|
]
|
|
497
498
|
}
|
|
498
499
|
) })
|
|
499
500
|
] }),
|
|
500
|
-
|
|
501
|
-
const
|
|
502
|
-
return /* @__PURE__ */
|
|
501
|
+
M.map((m) => {
|
|
502
|
+
const d = m.id === n;
|
|
503
|
+
return /* @__PURE__ */ s(
|
|
503
504
|
"div",
|
|
504
505
|
{
|
|
505
|
-
className: `cedros-admin-user-row ${
|
|
506
|
-
onClick: () =>
|
|
506
|
+
className: `cedros-admin-user-row ${d ? "cedros-admin-user-row-current" : ""}`,
|
|
507
|
+
onClick: () => g?.(m),
|
|
507
508
|
onKeyDown: (i) => {
|
|
508
|
-
(i.key === "Enter" || i.key === " ") && (i.preventDefault(),
|
|
509
|
+
(i.key === "Enter" || i.key === " ") && (i.preventDefault(), g?.(m));
|
|
509
510
|
},
|
|
510
|
-
role:
|
|
511
|
-
tabIndex:
|
|
511
|
+
role: g ? "button" : void 0,
|
|
512
|
+
tabIndex: g ? 0 : void 0,
|
|
512
513
|
children: [
|
|
513
|
-
/* @__PURE__ */
|
|
514
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-avatar", children:
|
|
514
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-td cedros-admin-user-info", children: [
|
|
515
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-avatar", children: m.picture ? /* @__PURE__ */ e(
|
|
515
516
|
"img",
|
|
516
517
|
{
|
|
517
|
-
src:
|
|
518
|
-
alt:
|
|
518
|
+
src: m.picture,
|
|
519
|
+
alt: m.name || m.email || "User",
|
|
519
520
|
className: "cedros-admin-user-avatar-img",
|
|
520
521
|
referrerPolicy: "no-referrer"
|
|
521
522
|
}
|
|
522
|
-
) : /* @__PURE__ */ e("span", { className: "cedros-admin-user-avatar-placeholder", children: (
|
|
523
|
-
/* @__PURE__ */
|
|
524
|
-
/* @__PURE__ */
|
|
525
|
-
|
|
526
|
-
|
|
523
|
+
) : /* @__PURE__ */ e("span", { className: "cedros-admin-user-avatar-placeholder", children: (m.name?.[0] || m.email?.[0] || "?").toUpperCase() }) }),
|
|
524
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-details", children: [
|
|
525
|
+
/* @__PURE__ */ s("span", { className: "cedros-admin-user-name", children: [
|
|
526
|
+
m.name || "Unknown",
|
|
527
|
+
d && /* @__PURE__ */ e("span", { className: "cedros-admin-user-you", children: "(you)" })
|
|
527
528
|
] }),
|
|
528
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-user-email", title:
|
|
529
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-user-email", title: m.email, children: m.email || Ue(m.id) })
|
|
529
530
|
] })
|
|
530
531
|
] }),
|
|
531
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-td", children:
|
|
532
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-td", children:
|
|
533
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-td", children:
|
|
532
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-td", children: re(m.createdAt) }),
|
|
533
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-td", children: m.lastLoginAt ? re(m.lastLoginAt) : "-" }),
|
|
534
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-td", children: Ee(m.balanceLamports) })
|
|
534
535
|
]
|
|
535
536
|
},
|
|
536
|
-
|
|
537
|
+
m.id
|
|
537
538
|
);
|
|
538
539
|
})
|
|
539
540
|
] }),
|
|
540
|
-
|
|
541
|
+
L > 1 && /* @__PURE__ */ s("div", { className: "cedros-admin-pagination", children: [
|
|
541
542
|
/* @__PURE__ */ e(
|
|
542
543
|
"button",
|
|
543
544
|
{
|
|
544
545
|
type: "button",
|
|
545
546
|
className: "cedros-button cedros-button-outline cedros-button-sm",
|
|
546
|
-
onClick: () =>
|
|
547
|
-
disabled:
|
|
547
|
+
onClick: () => _(T - 1),
|
|
548
|
+
disabled: T <= 1,
|
|
548
549
|
children: "Previous"
|
|
549
550
|
}
|
|
550
551
|
),
|
|
551
|
-
/* @__PURE__ */
|
|
552
|
+
/* @__PURE__ */ s("span", { className: "cedros-admin-page-info", children: [
|
|
552
553
|
"Page ",
|
|
553
|
-
|
|
554
|
+
T,
|
|
554
555
|
" of ",
|
|
555
|
-
|
|
556
|
+
L,
|
|
556
557
|
" (",
|
|
557
558
|
l,
|
|
558
559
|
" total)"
|
|
@@ -562,8 +563,8 @@ function Re({
|
|
|
562
563
|
{
|
|
563
564
|
type: "button",
|
|
564
565
|
className: "cedros-button cedros-button-outline cedros-button-sm",
|
|
565
|
-
onClick: () =>
|
|
566
|
-
disabled:
|
|
566
|
+
onClick: () => _(T + 1),
|
|
567
|
+
disabled: T >= L,
|
|
567
568
|
children: "Next"
|
|
568
569
|
}
|
|
569
570
|
)
|
|
@@ -571,15 +572,15 @@ function Re({
|
|
|
571
572
|
] })
|
|
572
573
|
] });
|
|
573
574
|
}
|
|
574
|
-
function
|
|
575
|
-
return new Date(
|
|
575
|
+
function ne(t) {
|
|
576
|
+
return new Date(t).toLocaleDateString(void 0, {
|
|
576
577
|
year: "numeric",
|
|
577
578
|
month: "short",
|
|
578
579
|
day: "numeric"
|
|
579
580
|
});
|
|
580
581
|
}
|
|
581
|
-
function
|
|
582
|
-
return new Date(
|
|
582
|
+
function te(t) {
|
|
583
|
+
return new Date(t).toLocaleString(void 0, {
|
|
583
584
|
year: "numeric",
|
|
584
585
|
month: "short",
|
|
585
586
|
day: "numeric",
|
|
@@ -587,21 +588,21 @@ function z(s) {
|
|
|
587
588
|
minute: "2-digit"
|
|
588
589
|
});
|
|
589
590
|
}
|
|
590
|
-
function
|
|
591
|
-
return
|
|
591
|
+
function Le(t) {
|
|
592
|
+
return t == null ? "—" : `${(t / 1e9).toFixed(4)} SOL`;
|
|
592
593
|
}
|
|
593
|
-
function
|
|
594
|
-
return
|
|
594
|
+
function G(t) {
|
|
595
|
+
return t == null ? "—" : (t / 1e9).toFixed(4);
|
|
595
596
|
}
|
|
596
|
-
function
|
|
597
|
+
function Ae(t) {
|
|
597
598
|
return {
|
|
598
599
|
DEPOSIT: "Deposit",
|
|
599
600
|
SPEND: "Spend",
|
|
600
601
|
ADJUSTMENT: "Adjustment",
|
|
601
602
|
REFUND: "Refund"
|
|
602
|
-
}[
|
|
603
|
+
}[t.toUpperCase()] || t;
|
|
603
604
|
}
|
|
604
|
-
function De(
|
|
605
|
+
function De(t, a) {
|
|
605
606
|
return a ? {
|
|
606
607
|
deposit: "Credit deposit",
|
|
607
608
|
purchase: "Purchase",
|
|
@@ -616,103 +617,103 @@ function De(s, a) {
|
|
|
616
617
|
SPEND: "Credit used",
|
|
617
618
|
ADJUSTMENT: "Manual adjustment",
|
|
618
619
|
REFUND: "Credit refunded"
|
|
619
|
-
}[
|
|
620
|
+
}[t.toUpperCase()] || "—";
|
|
620
621
|
}
|
|
621
|
-
function
|
|
622
|
-
userId:
|
|
622
|
+
function je({
|
|
623
|
+
userId: t,
|
|
623
624
|
onBack: a,
|
|
624
625
|
currentUserId: n,
|
|
625
626
|
onEditUser: r,
|
|
626
|
-
onAdjustCredits:
|
|
627
|
-
cedrosPayEnabled:
|
|
627
|
+
onAdjustCredits: p,
|
|
628
|
+
cedrosPayEnabled: g = !1,
|
|
628
629
|
className: w = ""
|
|
629
630
|
}) {
|
|
630
631
|
const {
|
|
631
632
|
isLoading: l,
|
|
632
633
|
getUser: u,
|
|
633
634
|
getUserDeposits: h,
|
|
634
|
-
getUserCredits:
|
|
635
|
-
getUserChats:
|
|
635
|
+
getUserCredits: $,
|
|
636
|
+
getUserChats: P,
|
|
636
637
|
deleteUser: f,
|
|
637
|
-
forcePasswordReset:
|
|
638
|
-
clearError:
|
|
639
|
-
} =
|
|
638
|
+
forcePasswordReset: R,
|
|
639
|
+
clearError: C
|
|
640
|
+
} = ee(), [c, S] = N(null), [U, E] = N(null), [k, O] = N(null), [M, F] = N(null), [L, T] = N("deposits"), [_, m] = N(null), [d, i] = N(null), [o, b] = N(null), [x, J] = N(null), [V, H] = N(!1), [I, ie] = N(0), [K, oe] = N(0), [Y, ce] = N(0), A = 10, Q = v(async () => {
|
|
640
641
|
try {
|
|
641
|
-
const y = await u(
|
|
642
|
-
|
|
642
|
+
const y = await u(t);
|
|
643
|
+
S(y), m(null);
|
|
643
644
|
} catch (y) {
|
|
644
|
-
|
|
645
|
+
m(y instanceof Error ? y.message : "Failed to load user");
|
|
645
646
|
}
|
|
646
|
-
}, [
|
|
647
|
+
}, [t, u]), X = v(async () => {
|
|
647
648
|
try {
|
|
648
|
-
const j = await h(
|
|
649
|
-
|
|
649
|
+
const j = await h(t, { limit: A, offset: I });
|
|
650
|
+
O(j), b(null);
|
|
650
651
|
} catch (y) {
|
|
651
|
-
|
|
652
|
+
b(y instanceof Error ? y.message : "Failed to load deposits");
|
|
652
653
|
}
|
|
653
|
-
}, [
|
|
654
|
+
}, [t, h, I]), W = v(async () => {
|
|
654
655
|
try {
|
|
655
|
-
const j = await
|
|
656
|
-
|
|
656
|
+
const j = await $(t, { limit: A, offset: K });
|
|
657
|
+
E(j), i(null);
|
|
657
658
|
} catch (y) {
|
|
658
659
|
i(y instanceof Error ? y.message : "Failed to load credits");
|
|
659
660
|
}
|
|
660
|
-
}, [
|
|
661
|
-
if (
|
|
661
|
+
}, [t, $, K]), Z = v(async () => {
|
|
662
|
+
if (g)
|
|
662
663
|
try {
|
|
663
|
-
const j = await
|
|
664
|
-
|
|
664
|
+
const j = await P(t, { limit: A, offset: Y });
|
|
665
|
+
F(j), J(null);
|
|
665
666
|
} catch (y) {
|
|
666
|
-
|
|
667
|
+
J(y instanceof Error ? y.message : "Failed to load chat history");
|
|
667
668
|
}
|
|
668
|
-
}, [
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
}, [
|
|
669
|
+
}, [t, P, Y, g]);
|
|
670
|
+
q(() => {
|
|
671
|
+
Q(), X(), W(), g && Z();
|
|
672
|
+
}, [Q, X, W, Z, g]);
|
|
672
673
|
const de = async () => {
|
|
673
|
-
if (!
|
|
674
|
-
if (
|
|
674
|
+
if (!c) return;
|
|
675
|
+
if (c.id === n) {
|
|
675
676
|
alert("You cannot delete your own account");
|
|
676
677
|
return;
|
|
677
678
|
}
|
|
678
|
-
if (
|
|
679
|
+
if (c.isSystemAdmin) {
|
|
679
680
|
alert("Cannot delete a system admin. Remove admin status first.");
|
|
680
681
|
return;
|
|
681
682
|
}
|
|
682
683
|
if (window.confirm(
|
|
683
|
-
`Are you sure you want to delete ${
|
|
684
|
+
`Are you sure you want to delete ${c.name || c.email || "this user"}? This action cannot be undone.`
|
|
684
685
|
)) {
|
|
685
|
-
|
|
686
|
+
H(!0);
|
|
686
687
|
try {
|
|
687
|
-
await f(
|
|
688
|
+
await f(c.id), a();
|
|
688
689
|
} catch {
|
|
689
690
|
} finally {
|
|
690
|
-
|
|
691
|
+
H(!1);
|
|
691
692
|
}
|
|
692
693
|
}
|
|
693
694
|
}, le = async () => {
|
|
694
|
-
if (!
|
|
695
|
+
if (!c?.email) {
|
|
695
696
|
alert("User has no email address");
|
|
696
697
|
return;
|
|
697
698
|
}
|
|
698
|
-
if (window.confirm(`Send a password reset email to ${
|
|
699
|
-
|
|
699
|
+
if (window.confirm(`Send a password reset email to ${c.email}?`)) {
|
|
700
|
+
H(!0);
|
|
700
701
|
try {
|
|
701
|
-
await
|
|
702
|
+
await R(c.id), alert("Password reset email sent");
|
|
702
703
|
} catch {
|
|
703
704
|
} finally {
|
|
704
|
-
|
|
705
|
+
H(!1);
|
|
705
706
|
}
|
|
706
707
|
}
|
|
707
|
-
}, me =
|
|
708
|
-
ie((y - 1) *
|
|
708
|
+
}, me = k ? Math.ceil(k.total / A) : 0, ue = Math.floor(I / A) + 1, he = U ? Math.ceil(U.totalTransactions / A) : 0, fe = Math.floor(K / A) + 1, pe = (y) => {
|
|
709
|
+
ie((y - 1) * A);
|
|
709
710
|
}, ge = (y) => {
|
|
710
|
-
oe((y - 1) *
|
|
711
|
-
}, be =
|
|
712
|
-
ce((y - 1) *
|
|
711
|
+
oe((y - 1) * A);
|
|
712
|
+
}, be = M ? Math.ceil(M.total / A) : 0, ye = Math.floor(Y / A) + 1, Ne = (y) => {
|
|
713
|
+
ce((y - 1) * A);
|
|
713
714
|
};
|
|
714
|
-
if (
|
|
715
|
-
return /* @__PURE__ */
|
|
715
|
+
if (_)
|
|
716
|
+
return /* @__PURE__ */ s("div", { className: `cedros-admin-user-detail cedros-admin-user-detail-error ${w}`, children: [
|
|
716
717
|
/* @__PURE__ */ e(
|
|
717
718
|
"button",
|
|
718
719
|
{
|
|
@@ -722,26 +723,26 @@ function Me({
|
|
|
722
723
|
children: "Back"
|
|
723
724
|
}
|
|
724
725
|
),
|
|
725
|
-
/* @__PURE__ */ e("p", { className: "cedros-admin-error", children:
|
|
726
|
+
/* @__PURE__ */ e("p", { className: "cedros-admin-error", children: _ }),
|
|
726
727
|
/* @__PURE__ */ e(
|
|
727
728
|
"button",
|
|
728
729
|
{
|
|
729
730
|
type: "button",
|
|
730
731
|
className: "cedros-button cedros-button-outline",
|
|
731
732
|
onClick: () => {
|
|
732
|
-
|
|
733
|
+
C(), m(null), Q();
|
|
733
734
|
},
|
|
734
735
|
children: "Retry"
|
|
735
736
|
}
|
|
736
737
|
)
|
|
737
738
|
] });
|
|
738
|
-
if (l && !
|
|
739
|
-
return /* @__PURE__ */
|
|
739
|
+
if (l && !c)
|
|
740
|
+
return /* @__PURE__ */ s("div", { className: `cedros-admin-user-detail cedros-admin-user-detail-loading ${w}`, children: [
|
|
740
741
|
/* @__PURE__ */ e("span", { className: "cedros-admin-loading-indicator" }),
|
|
741
742
|
/* @__PURE__ */ e("span", { className: "cedros-admin-loading-text", children: "Loading user..." })
|
|
742
743
|
] });
|
|
743
|
-
if (!
|
|
744
|
-
return /* @__PURE__ */
|
|
744
|
+
if (!c)
|
|
745
|
+
return /* @__PURE__ */ s("div", { className: `cedros-admin-user-detail ${w}`, children: [
|
|
745
746
|
/* @__PURE__ */ e(
|
|
746
747
|
"button",
|
|
747
748
|
{
|
|
@@ -753,9 +754,9 @@ function Me({
|
|
|
753
754
|
),
|
|
754
755
|
/* @__PURE__ */ e("p", { className: "cedros-admin-empty-message", children: "User not found." })
|
|
755
756
|
] });
|
|
756
|
-
const
|
|
757
|
-
return /* @__PURE__ */
|
|
758
|
-
/* @__PURE__ */
|
|
757
|
+
const ae = c.id === n;
|
|
758
|
+
return /* @__PURE__ */ s("div", { className: `cedros-admin-user-detail ${w}`, children: [
|
|
759
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-detail-header", children: [
|
|
759
760
|
/* @__PURE__ */ e(
|
|
760
761
|
"button",
|
|
761
762
|
{
|
|
@@ -765,18 +766,18 @@ function Me({
|
|
|
765
766
|
children: "Back to Users"
|
|
766
767
|
}
|
|
767
768
|
),
|
|
768
|
-
/* @__PURE__ */
|
|
769
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-detail-actions", children: [
|
|
769
770
|
r && /* @__PURE__ */ e(
|
|
770
771
|
"button",
|
|
771
772
|
{
|
|
772
773
|
type: "button",
|
|
773
774
|
className: "cedros-button cedros-button-outline cedros-button-sm",
|
|
774
|
-
onClick: () => r(
|
|
775
|
+
onClick: () => r(c),
|
|
775
776
|
disabled: V,
|
|
776
777
|
children: "Edit"
|
|
777
778
|
}
|
|
778
779
|
),
|
|
779
|
-
|
|
780
|
+
c.email && /* @__PURE__ */ e(
|
|
780
781
|
"button",
|
|
781
782
|
{
|
|
782
783
|
type: "button",
|
|
@@ -786,17 +787,17 @@ function Me({
|
|
|
786
787
|
children: "Reset Password"
|
|
787
788
|
}
|
|
788
789
|
),
|
|
789
|
-
|
|
790
|
+
p && /* @__PURE__ */ e(
|
|
790
791
|
"button",
|
|
791
792
|
{
|
|
792
793
|
type: "button",
|
|
793
794
|
className: "cedros-button cedros-button-outline cedros-button-sm",
|
|
794
|
-
onClick: () =>
|
|
795
|
+
onClick: () => p(c),
|
|
795
796
|
disabled: V,
|
|
796
797
|
children: "Adjust Credits"
|
|
797
798
|
}
|
|
798
799
|
),
|
|
799
|
-
!
|
|
800
|
+
!ae && !c.isSystemAdmin && /* @__PURE__ */ e(
|
|
800
801
|
"button",
|
|
801
802
|
{
|
|
802
803
|
type: "button",
|
|
@@ -808,29 +809,29 @@ function Me({
|
|
|
808
809
|
)
|
|
809
810
|
] })
|
|
810
811
|
] }),
|
|
811
|
-
/* @__PURE__ */
|
|
812
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-user-detail-avatar", children:
|
|
812
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-detail-info", children: [
|
|
813
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-user-detail-avatar", children: c.picture ? /* @__PURE__ */ e(
|
|
813
814
|
"img",
|
|
814
815
|
{
|
|
815
|
-
src:
|
|
816
|
-
alt:
|
|
816
|
+
src: c.picture,
|
|
817
|
+
alt: c.name || c.email || "User",
|
|
817
818
|
className: "cedros-admin-user-detail-avatar-img",
|
|
818
819
|
referrerPolicy: "no-referrer"
|
|
819
820
|
}
|
|
820
|
-
) : /* @__PURE__ */ e("span", { className: "cedros-admin-user-detail-avatar-placeholder", children: (
|
|
821
|
-
/* @__PURE__ */
|
|
822
|
-
/* @__PURE__ */
|
|
823
|
-
|
|
824
|
-
|
|
821
|
+
) : /* @__PURE__ */ e("span", { className: "cedros-admin-user-detail-avatar-placeholder", children: (c.name?.[0] || c.email?.[0] || "?").toUpperCase() }) }),
|
|
822
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-detail-meta", children: [
|
|
823
|
+
/* @__PURE__ */ s("h2", { className: "cedros-admin-user-detail-name", children: [
|
|
824
|
+
c.name || "Unknown",
|
|
825
|
+
ae && /* @__PURE__ */ e("span", { className: "cedros-admin-user-you", children: "(you)" })
|
|
825
826
|
] }),
|
|
826
|
-
/* @__PURE__ */
|
|
827
|
-
|
|
828
|
-
|
|
827
|
+
/* @__PURE__ */ s("p", { className: "cedros-admin-user-detail-email", children: [
|
|
828
|
+
c.email || "No email",
|
|
829
|
+
c.emailVerified && /* @__PURE__ */ e("span", { className: "cedros-admin-verified-badge", title: "Email verified", children: "Verified" })
|
|
829
830
|
] }),
|
|
830
|
-
|
|
831
|
-
/* @__PURE__ */
|
|
831
|
+
c.isSystemAdmin && /* @__PURE__ */ e("div", { className: "cedros-admin-user-detail-badges", children: /* @__PURE__ */ e("span", { className: "cedros-admin-admin-badge cedros-admin-admin-badge-yes", children: "System Admin" }) }),
|
|
832
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-detail-methods", children: [
|
|
832
833
|
/* @__PURE__ */ e("span", { className: "cedros-admin-user-detail-methods-label", children: "Auth Methods:" }),
|
|
833
|
-
|
|
834
|
+
c.authMethods.length > 0 ? c.authMethods.map((y) => /* @__PURE__ */ e(
|
|
834
835
|
"span",
|
|
835
836
|
{
|
|
836
837
|
className: `cedros-admin-auth-badge cedros-admin-auth-badge-${y}`,
|
|
@@ -839,135 +840,135 @@ function Me({
|
|
|
839
840
|
y
|
|
840
841
|
)) : /* @__PURE__ */ e("span", { className: "cedros-admin-auth-badge cedros-admin-auth-badge-none", children: "none" })
|
|
841
842
|
] }),
|
|
842
|
-
/* @__PURE__ */
|
|
843
|
+
/* @__PURE__ */ s("p", { className: "cedros-admin-user-detail-dates", children: [
|
|
843
844
|
"Registered: ",
|
|
844
|
-
|
|
845
|
+
ne(c.createdAt),
|
|
845
846
|
" | Updated: ",
|
|
846
|
-
|
|
847
|
+
ne(c.updatedAt)
|
|
847
848
|
] })
|
|
848
849
|
] })
|
|
849
850
|
] }),
|
|
850
|
-
|
|
851
|
-
/* @__PURE__ */ e("p", { className: "cedros-admin-error-inline", children:
|
|
851
|
+
d ? /* @__PURE__ */ s("div", { className: "cedros-admin-stats-error", children: [
|
|
852
|
+
/* @__PURE__ */ e("p", { className: "cedros-admin-error-inline", children: d }),
|
|
852
853
|
/* @__PURE__ */ e(
|
|
853
854
|
"button",
|
|
854
855
|
{
|
|
855
856
|
type: "button",
|
|
856
857
|
className: "cedros-button cedros-button-outline cedros-button-sm",
|
|
857
858
|
onClick: () => {
|
|
858
|
-
i(null),
|
|
859
|
+
i(null), W();
|
|
859
860
|
},
|
|
860
861
|
children: "Retry"
|
|
861
862
|
}
|
|
862
863
|
)
|
|
863
|
-
] }) :
|
|
864
|
-
/* @__PURE__ */
|
|
864
|
+
] }) : U ? /* @__PURE__ */ s("div", { className: "cedros-admin-user-detail-stats", children: [
|
|
865
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-stat-card", children: [
|
|
865
866
|
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-label", children: "Credit Balance" }),
|
|
866
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children:
|
|
867
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children: G(U.stats.currentBalanceLamports) })
|
|
867
868
|
] }),
|
|
868
|
-
/* @__PURE__ */
|
|
869
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-stat-card", children: [
|
|
869
870
|
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-label", children: "Total Credited" }),
|
|
870
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children:
|
|
871
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children: G(U.stats.totalDepositedLamports) })
|
|
871
872
|
] }),
|
|
872
|
-
/* @__PURE__ */
|
|
873
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-stat-card", children: [
|
|
873
874
|
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-label", children: "Total Spent" }),
|
|
874
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children:
|
|
875
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children: G(U.stats.totalSpentLamports) })
|
|
875
876
|
] }),
|
|
876
|
-
/* @__PURE__ */
|
|
877
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-stat-card", children: [
|
|
877
878
|
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-label", children: "Deposits" }),
|
|
878
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children:
|
|
879
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children: U.stats.depositCount })
|
|
879
880
|
] }),
|
|
880
|
-
/* @__PURE__ */
|
|
881
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-stat-card", children: [
|
|
881
882
|
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-label", children: "Transactions" }),
|
|
882
|
-
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children:
|
|
883
|
+
/* @__PURE__ */ e("span", { className: "cedros-admin-stat-value", children: U.stats.spendCount })
|
|
883
884
|
] })
|
|
884
|
-
] }) : /* @__PURE__ */
|
|
885
|
+
] }) : /* @__PURE__ */ s("div", { className: "cedros-admin-stats-loading", children: [
|
|
885
886
|
/* @__PURE__ */ e("span", { className: "cedros-admin-loading-indicator" }),
|
|
886
887
|
/* @__PURE__ */ e("span", { children: "Loading credit stats..." })
|
|
887
888
|
] }),
|
|
888
|
-
/* @__PURE__ */
|
|
889
|
-
/* @__PURE__ */
|
|
889
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-detail-tabs", children: [
|
|
890
|
+
/* @__PURE__ */ s(
|
|
890
891
|
"button",
|
|
891
892
|
{
|
|
892
893
|
type: "button",
|
|
893
|
-
className: `cedros-admin-tab ${
|
|
894
|
-
onClick: () =>
|
|
894
|
+
className: `cedros-admin-tab ${L === "deposits" ? "cedros-admin-tab-active" : ""}`,
|
|
895
|
+
onClick: () => T("deposits"),
|
|
895
896
|
children: [
|
|
896
897
|
"Deposits (",
|
|
897
|
-
|
|
898
|
+
k?.total ?? 0,
|
|
898
899
|
")"
|
|
899
900
|
]
|
|
900
901
|
}
|
|
901
902
|
),
|
|
902
|
-
/* @__PURE__ */
|
|
903
|
+
/* @__PURE__ */ s(
|
|
903
904
|
"button",
|
|
904
905
|
{
|
|
905
906
|
type: "button",
|
|
906
|
-
className: `cedros-admin-tab ${
|
|
907
|
-
onClick: () =>
|
|
907
|
+
className: `cedros-admin-tab ${L === "transactions" ? "cedros-admin-tab-active" : ""}`,
|
|
908
|
+
onClick: () => T("transactions"),
|
|
908
909
|
children: [
|
|
909
910
|
"Credits (",
|
|
910
|
-
|
|
911
|
+
U?.totalTransactions ?? 0,
|
|
911
912
|
")"
|
|
912
913
|
]
|
|
913
914
|
}
|
|
914
915
|
),
|
|
915
|
-
|
|
916
|
+
g && /* @__PURE__ */ s(
|
|
916
917
|
"button",
|
|
917
918
|
{
|
|
918
919
|
type: "button",
|
|
919
|
-
className: `cedros-admin-tab ${
|
|
920
|
-
onClick: () =>
|
|
920
|
+
className: `cedros-admin-tab ${L === "chats" ? "cedros-admin-tab-active" : ""}`,
|
|
921
|
+
onClick: () => T("chats"),
|
|
921
922
|
children: [
|
|
922
923
|
"Chats (",
|
|
923
|
-
|
|
924
|
+
M?.total ?? 0,
|
|
924
925
|
")"
|
|
925
926
|
]
|
|
926
927
|
}
|
|
927
928
|
)
|
|
928
929
|
] }),
|
|
929
|
-
/* @__PURE__ */
|
|
930
|
-
|
|
931
|
-
|
|
930
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-user-detail-content", children: [
|
|
931
|
+
L === "deposits" && /* @__PURE__ */ e(
|
|
932
|
+
Te,
|
|
932
933
|
{
|
|
933
|
-
deposits:
|
|
934
|
-
total:
|
|
934
|
+
deposits: k?.deposits ?? [],
|
|
935
|
+
total: k?.total ?? 0,
|
|
935
936
|
currentPage: ue,
|
|
936
937
|
totalPages: me,
|
|
937
938
|
onPageChange: pe,
|
|
938
939
|
isLoading: l,
|
|
939
940
|
error: o,
|
|
940
941
|
onRetry: () => {
|
|
941
|
-
|
|
942
|
+
b(null), X();
|
|
942
943
|
}
|
|
943
944
|
}
|
|
944
945
|
),
|
|
945
|
-
|
|
946
|
+
L === "transactions" && /* @__PURE__ */ e(
|
|
946
947
|
$e,
|
|
947
948
|
{
|
|
948
|
-
transactions:
|
|
949
|
-
total:
|
|
949
|
+
transactions: U?.transactions ?? [],
|
|
950
|
+
total: U?.totalTransactions ?? 0,
|
|
950
951
|
currentPage: fe,
|
|
951
952
|
totalPages: he,
|
|
952
953
|
onPageChange: ge,
|
|
953
|
-
error:
|
|
954
|
+
error: d,
|
|
954
955
|
onRetry: () => {
|
|
955
|
-
i(null),
|
|
956
|
+
i(null), W();
|
|
956
957
|
},
|
|
957
958
|
isLoading: l
|
|
958
959
|
}
|
|
959
960
|
),
|
|
960
|
-
|
|
961
|
-
|
|
961
|
+
L === "chats" && g && /* @__PURE__ */ e(
|
|
962
|
+
ke,
|
|
962
963
|
{
|
|
963
|
-
sessions:
|
|
964
|
-
total:
|
|
964
|
+
sessions: M?.sessions ?? [],
|
|
965
|
+
total: M?.total ?? 0,
|
|
965
966
|
currentPage: ye,
|
|
966
967
|
totalPages: be,
|
|
967
968
|
onPageChange: Ne,
|
|
968
969
|
error: x,
|
|
969
970
|
onRetry: () => {
|
|
970
|
-
|
|
971
|
+
J(null), Z();
|
|
971
972
|
},
|
|
972
973
|
isLoading: l
|
|
973
974
|
}
|
|
@@ -975,17 +976,17 @@ function Me({
|
|
|
975
976
|
] })
|
|
976
977
|
] });
|
|
977
978
|
}
|
|
978
|
-
function
|
|
979
|
-
deposits:
|
|
979
|
+
function Te({
|
|
980
|
+
deposits: t,
|
|
980
981
|
total: a,
|
|
981
982
|
currentPage: n,
|
|
982
983
|
totalPages: r,
|
|
983
|
-
onPageChange:
|
|
984
|
-
isLoading:
|
|
984
|
+
onPageChange: p,
|
|
985
|
+
isLoading: g,
|
|
985
986
|
error: w,
|
|
986
987
|
onRetry: l
|
|
987
988
|
}) {
|
|
988
|
-
return w ? /* @__PURE__ */
|
|
989
|
+
return w ? /* @__PURE__ */ s("div", { className: "cedros-admin-tab-error", children: [
|
|
989
990
|
/* @__PURE__ */ e("p", { className: "cedros-admin-error-inline", children: w }),
|
|
990
991
|
/* @__PURE__ */ e(
|
|
991
992
|
"button",
|
|
@@ -996,23 +997,23 @@ function Ee({
|
|
|
996
997
|
children: "Retry"
|
|
997
998
|
}
|
|
998
999
|
)
|
|
999
|
-
] }) :
|
|
1000
|
+
] }) : g && t.length === 0 ? /* @__PURE__ */ s("div", { className: "cedros-admin-tab-loading", children: [
|
|
1000
1001
|
/* @__PURE__ */ e("span", { className: "cedros-admin-loading-indicator" }),
|
|
1001
1002
|
/* @__PURE__ */ e("span", { children: "Loading deposits..." })
|
|
1002
|
-
] }) : a === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin-empty-message", children: "No deposits found." }) : /* @__PURE__ */
|
|
1003
|
-
/* @__PURE__ */
|
|
1004
|
-
/* @__PURE__ */
|
|
1003
|
+
] }) : a === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin-empty-message", children: "No deposits found." }) : /* @__PURE__ */ s(B, { children: [
|
|
1004
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-list-table", children: [
|
|
1005
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-list-thead", children: [
|
|
1005
1006
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Date" }),
|
|
1006
1007
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Amount" }),
|
|
1007
1008
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Status" }),
|
|
1008
1009
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Transaction" })
|
|
1009
1010
|
] }),
|
|
1010
|
-
|
|
1011
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children:
|
|
1012
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children:
|
|
1011
|
+
t.map((u) => /* @__PURE__ */ s("div", { className: "cedros-admin-list-row", children: [
|
|
1012
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: te(u.createdAt) }),
|
|
1013
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: Le(u.amountLamports) }),
|
|
1013
1014
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: /* @__PURE__ */ e("span", { className: `cedros-admin-status-badge cedros-admin-status-${u.status}`, children: u.status }) }),
|
|
1014
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td cedros-admin-list-td-actions", children: u.txSignature ? /* @__PURE__ */
|
|
1015
|
-
/* @__PURE__ */
|
|
1015
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td cedros-admin-list-td-actions", children: u.txSignature ? /* @__PURE__ */ s(B, { children: [
|
|
1016
|
+
/* @__PURE__ */ s("span", { className: "cedros-admin-list-td-mono", title: u.txSignature, children: [
|
|
1016
1017
|
u.txSignature.slice(0, 8),
|
|
1017
1018
|
"..."
|
|
1018
1019
|
] }),
|
|
@@ -1032,27 +1033,27 @@ function Ee({
|
|
|
1032
1033
|
] }, u.id))
|
|
1033
1034
|
] }),
|
|
1034
1035
|
r > 1 && /* @__PURE__ */ e(
|
|
1035
|
-
|
|
1036
|
+
se,
|
|
1036
1037
|
{
|
|
1037
1038
|
currentPage: n,
|
|
1038
1039
|
totalPages: r,
|
|
1039
1040
|
total: a,
|
|
1040
|
-
onPageChange:
|
|
1041
|
+
onPageChange: p
|
|
1041
1042
|
}
|
|
1042
1043
|
)
|
|
1043
1044
|
] });
|
|
1044
1045
|
}
|
|
1045
1046
|
function $e({
|
|
1046
|
-
transactions:
|
|
1047
|
+
transactions: t,
|
|
1047
1048
|
total: a,
|
|
1048
1049
|
currentPage: n,
|
|
1049
1050
|
totalPages: r,
|
|
1050
|
-
onPageChange:
|
|
1051
|
-
isLoading:
|
|
1051
|
+
onPageChange: p,
|
|
1052
|
+
isLoading: g,
|
|
1052
1053
|
error: w,
|
|
1053
1054
|
onRetry: l
|
|
1054
1055
|
}) {
|
|
1055
|
-
return w ? /* @__PURE__ */
|
|
1056
|
+
return w ? /* @__PURE__ */ s("div", { className: "cedros-admin-tab-error", children: [
|
|
1056
1057
|
/* @__PURE__ */ e("p", { className: "cedros-admin-error-inline", children: w }),
|
|
1057
1058
|
/* @__PURE__ */ e(
|
|
1058
1059
|
"button",
|
|
@@ -1063,61 +1064,61 @@ function $e({
|
|
|
1063
1064
|
children: "Retry"
|
|
1064
1065
|
}
|
|
1065
1066
|
)
|
|
1066
|
-
] }) :
|
|
1067
|
+
] }) : g && t.length === 0 ? /* @__PURE__ */ s("div", { className: "cedros-admin-tab-loading", children: [
|
|
1067
1068
|
/* @__PURE__ */ e("span", { className: "cedros-admin-loading-indicator" }),
|
|
1068
1069
|
/* @__PURE__ */ e("span", { children: "Loading transactions..." })
|
|
1069
|
-
] }) : a === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin-empty-message", children: "No credit transactions found." }) : /* @__PURE__ */
|
|
1070
|
-
/* @__PURE__ */
|
|
1071
|
-
/* @__PURE__ */
|
|
1070
|
+
] }) : a === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin-empty-message", children: "No credit transactions found." }) : /* @__PURE__ */ s(B, { children: [
|
|
1071
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-list-table", children: [
|
|
1072
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-list-thead", children: [
|
|
1072
1073
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Date" }),
|
|
1073
1074
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Type" }),
|
|
1074
1075
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Description" }),
|
|
1075
1076
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Amount" })
|
|
1076
1077
|
] }),
|
|
1077
|
-
|
|
1078
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children:
|
|
1078
|
+
t.map((u) => /* @__PURE__ */ s("div", { className: "cedros-admin-list-row", children: [
|
|
1079
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: te(u.createdAt) }),
|
|
1079
1080
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: /* @__PURE__ */ e(
|
|
1080
1081
|
"span",
|
|
1081
1082
|
{
|
|
1082
1083
|
className: `cedros-admin-tx-type cedros-admin-tx-type-${u.txType.toLowerCase()}`,
|
|
1083
|
-
children:
|
|
1084
|
+
children: Ae(u.txType)
|
|
1084
1085
|
}
|
|
1085
1086
|
) }),
|
|
1086
1087
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: De(u.txType, u.referenceType) }),
|
|
1087
|
-
/* @__PURE__ */
|
|
1088
|
+
/* @__PURE__ */ s(
|
|
1088
1089
|
"div",
|
|
1089
1090
|
{
|
|
1090
1091
|
className: `cedros-admin-list-td ${u.amountLamports >= 0 ? "cedros-admin-amount-positive" : "cedros-admin-amount-negative"}`,
|
|
1091
1092
|
children: [
|
|
1092
1093
|
u.amountLamports >= 0 ? "+" : "",
|
|
1093
|
-
|
|
1094
|
+
G(u.amountLamports)
|
|
1094
1095
|
]
|
|
1095
1096
|
}
|
|
1096
1097
|
)
|
|
1097
1098
|
] }, u.id))
|
|
1098
1099
|
] }),
|
|
1099
1100
|
r > 1 && /* @__PURE__ */ e(
|
|
1100
|
-
|
|
1101
|
+
se,
|
|
1101
1102
|
{
|
|
1102
1103
|
currentPage: n,
|
|
1103
1104
|
totalPages: r,
|
|
1104
1105
|
total: a,
|
|
1105
|
-
onPageChange:
|
|
1106
|
+
onPageChange: p
|
|
1106
1107
|
}
|
|
1107
1108
|
)
|
|
1108
1109
|
] });
|
|
1109
1110
|
}
|
|
1110
|
-
function
|
|
1111
|
-
sessions:
|
|
1111
|
+
function ke({
|
|
1112
|
+
sessions: t,
|
|
1112
1113
|
total: a,
|
|
1113
1114
|
currentPage: n,
|
|
1114
1115
|
totalPages: r,
|
|
1115
|
-
onPageChange:
|
|
1116
|
-
isLoading:
|
|
1116
|
+
onPageChange: p,
|
|
1117
|
+
isLoading: g,
|
|
1117
1118
|
error: w,
|
|
1118
1119
|
onRetry: l
|
|
1119
1120
|
}) {
|
|
1120
|
-
return w ? /* @__PURE__ */
|
|
1121
|
+
return w ? /* @__PURE__ */ s("div", { className: "cedros-admin-tab-error", children: [
|
|
1121
1122
|
/* @__PURE__ */ e("p", { className: "cedros-admin-error-inline", children: w }),
|
|
1122
1123
|
/* @__PURE__ */ e(
|
|
1123
1124
|
"button",
|
|
@@ -1128,48 +1129,48 @@ function Te({
|
|
|
1128
1129
|
children: "Retry"
|
|
1129
1130
|
}
|
|
1130
1131
|
)
|
|
1131
|
-
] }) :
|
|
1132
|
+
] }) : g && t.length === 0 ? /* @__PURE__ */ s("div", { className: "cedros-admin-tab-loading", children: [
|
|
1132
1133
|
/* @__PURE__ */ e("span", { className: "cedros-admin-loading-indicator" }),
|
|
1133
1134
|
/* @__PURE__ */ e("span", { children: "Loading chat history..." })
|
|
1134
|
-
] }) : a === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin-empty-message", children: "No chat sessions found." }) : /* @__PURE__ */
|
|
1135
|
-
/* @__PURE__ */
|
|
1136
|
-
/* @__PURE__ */
|
|
1135
|
+
] }) : a === 0 ? /* @__PURE__ */ e("div", { className: "cedros-admin-empty-message", children: "No chat sessions found." }) : /* @__PURE__ */ s(B, { children: [
|
|
1136
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-list-table", children: [
|
|
1137
|
+
/* @__PURE__ */ s("div", { className: "cedros-admin-list-thead", children: [
|
|
1137
1138
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Date" }),
|
|
1138
1139
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Session" }),
|
|
1139
1140
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-th", children: "Messages" })
|
|
1140
1141
|
] }),
|
|
1141
|
-
|
|
1142
|
-
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children:
|
|
1142
|
+
t.map((u) => /* @__PURE__ */ s("div", { className: "cedros-admin-list-row", children: [
|
|
1143
|
+
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: te(u.createdAt) }),
|
|
1143
1144
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: u.title || `Chat ${u.id.slice(0, 8)}...` }),
|
|
1144
1145
|
/* @__PURE__ */ e("div", { className: "cedros-admin-list-td", children: u.messageCount })
|
|
1145
1146
|
] }, u.id))
|
|
1146
1147
|
] }),
|
|
1147
1148
|
r > 1 && /* @__PURE__ */ e(
|
|
1148
|
-
|
|
1149
|
+
se,
|
|
1149
1150
|
{
|
|
1150
1151
|
currentPage: n,
|
|
1151
1152
|
totalPages: r,
|
|
1152
1153
|
total: a,
|
|
1153
|
-
onPageChange:
|
|
1154
|
+
onPageChange: p
|
|
1154
1155
|
}
|
|
1155
1156
|
)
|
|
1156
1157
|
] });
|
|
1157
1158
|
}
|
|
1158
|
-
function
|
|
1159
|
-
return /* @__PURE__ */
|
|
1159
|
+
function se({ currentPage: t, totalPages: a, total: n, onPageChange: r }) {
|
|
1160
|
+
return /* @__PURE__ */ s("div", { className: "cedros-admin-pagination", children: [
|
|
1160
1161
|
/* @__PURE__ */ e(
|
|
1161
1162
|
"button",
|
|
1162
1163
|
{
|
|
1163
1164
|
type: "button",
|
|
1164
1165
|
className: "cedros-button cedros-button-outline cedros-button-sm",
|
|
1165
|
-
onClick: () => r(
|
|
1166
|
-
disabled:
|
|
1166
|
+
onClick: () => r(t - 1),
|
|
1167
|
+
disabled: t <= 1,
|
|
1167
1168
|
children: "Previous"
|
|
1168
1169
|
}
|
|
1169
1170
|
),
|
|
1170
|
-
/* @__PURE__ */
|
|
1171
|
+
/* @__PURE__ */ s("span", { className: "cedros-admin-page-info", children: [
|
|
1171
1172
|
"Page ",
|
|
1172
|
-
|
|
1173
|
+
t,
|
|
1173
1174
|
" of ",
|
|
1174
1175
|
a,
|
|
1175
1176
|
" (",
|
|
@@ -1181,15 +1182,65 @@ function ee({ currentPage: s, totalPages: a, total: n, onPageChange: r }) {
|
|
|
1181
1182
|
{
|
|
1182
1183
|
type: "button",
|
|
1183
1184
|
className: "cedros-button cedros-button-outline cedros-button-sm",
|
|
1184
|
-
onClick: () => r(
|
|
1185
|
-
disabled:
|
|
1185
|
+
onClick: () => r(t + 1),
|
|
1186
|
+
disabled: t >= a,
|
|
1186
1187
|
children: "Next"
|
|
1187
1188
|
}
|
|
1188
1189
|
)
|
|
1189
1190
|
] });
|
|
1190
1191
|
}
|
|
1192
|
+
const Fe = ["email", "google", "apple", "solana", "webauthn", "sso"], Pe = {
|
|
1193
|
+
email: "Email Users",
|
|
1194
|
+
google: "Google Users",
|
|
1195
|
+
apple: "Apple Users",
|
|
1196
|
+
solana: "Solana Users",
|
|
1197
|
+
webauthn: "Passkey Users",
|
|
1198
|
+
sso: "SSO Provider Users"
|
|
1199
|
+
}, Re = {
|
|
1200
|
+
email: "auth_email_enabled",
|
|
1201
|
+
google: "auth_google_enabled",
|
|
1202
|
+
apple: "auth_apple_enabled",
|
|
1203
|
+
solana: "auth_solana_enabled",
|
|
1204
|
+
webauthn: "auth_webauthn_enabled",
|
|
1205
|
+
sso: "feature_sso"
|
|
1206
|
+
};
|
|
1207
|
+
function Be() {
|
|
1208
|
+
const { getStats: t } = ee(), { fetchSettings: a, getValue: n } = Ce(), [r, p] = N(null), [g, w] = N(!1), [l, u] = N(null), [h, $] = N(!1);
|
|
1209
|
+
q(() => {
|
|
1210
|
+
h || (a(), $(!0));
|
|
1211
|
+
}, [a, h]);
|
|
1212
|
+
const P = v(
|
|
1213
|
+
(C) => {
|
|
1214
|
+
const c = n(C);
|
|
1215
|
+
return c === void 0 ? !1 : c === "true" || c === "1";
|
|
1216
|
+
},
|
|
1217
|
+
[n]
|
|
1218
|
+
), f = v(async () => {
|
|
1219
|
+
w(!0), u(null);
|
|
1220
|
+
try {
|
|
1221
|
+
const C = await t();
|
|
1222
|
+
p(C);
|
|
1223
|
+
} catch (C) {
|
|
1224
|
+
u(C instanceof Error ? C.message : "Failed to load user stats");
|
|
1225
|
+
} finally {
|
|
1226
|
+
w(!1);
|
|
1227
|
+
}
|
|
1228
|
+
}, [t]);
|
|
1229
|
+
return q(() => {
|
|
1230
|
+
f();
|
|
1231
|
+
}, [f]), { statsItems: z(() => {
|
|
1232
|
+
const C = [{ label: "Total Users", value: r?.total ?? "—" }];
|
|
1233
|
+
return Fe.forEach((c) => {
|
|
1234
|
+
P(Re[c]) && C.push({
|
|
1235
|
+
label: Pe[c],
|
|
1236
|
+
value: r?.authMethodCounts[c] ?? 0
|
|
1237
|
+
});
|
|
1238
|
+
}), C;
|
|
1239
|
+
}, [r, P]), isLoading: g, error: l, refresh: f };
|
|
1240
|
+
}
|
|
1191
1241
|
export {
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1242
|
+
je as A,
|
|
1243
|
+
qe as a,
|
|
1244
|
+
ee as b,
|
|
1245
|
+
Be as u
|
|
1195
1246
|
};
|