@xyo-network/react-connected-accounts 7.6.3 → 8.0.0
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/browser/components/ConnectedAccountsFlexbox.d.ts.map +1 -1
- package/dist/browser/components/wallet/dialogs/connect/LinkedProvidersFlexbox.d.ts.map +1 -1
- package/dist/browser/components/wallet/dialogs/connect/Permissions.d.ts.map +1 -1
- package/dist/browser/components/wallet/dialogs/revoke/Dialog.d.ts.map +1 -1
- package/dist/browser/components/wallet/table/ConnectedWalletsTable.d.ts.map +1 -1
- package/dist/browser/components/wallet/table/cells/Actions.d.ts.map +1 -1
- package/dist/browser/components/wallet/table/cells/Wallet.d.ts.map +1 -1
- package/dist/browser/index.mjs +149 -72
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +21 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedAccountsFlexbox.d.ts","sourceRoot":"","sources":["../../../src/components/ConnectedAccountsFlexbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAOzD,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CACnD;AAED,eAAO,MAAM,wBAAwB;oEAElC,6BAA6B;;
|
|
1
|
+
{"version":3,"file":"ConnectedAccountsFlexbox.d.ts","sourceRoot":"","sources":["../../../src/components/ConnectedAccountsFlexbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAOzD,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CACnD;AAED,eAAO,MAAM,wBAAwB;oEAElC,6BAA6B;;CAgC/B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedProvidersFlexbox.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/dialogs/connect/LinkedProvidersFlexbox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,
|
|
1
|
+
{"version":3,"file":"LinkedProvidersFlexbox.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/dialogs/connect/LinkedProvidersFlexbox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CA2BxE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/dialogs/connect/Permissions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,6BAA8B,SAAQ,YAAY;CAAG;AAEtE,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"Permissions.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/dialogs/connect/Permissions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,6BAA8B,SAAQ,YAAY;CAAG;AAEtE,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAiC5E,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/dialogs/revoke/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAMhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,WAAW,iCAAkC,SAAQ,WAAW;IACpE,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED,eAAO,MAAM,4BAA4B,EAAE,KAAK,CAAC,EAAE,CAAC,iCAAiC,
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/dialogs/revoke/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAMhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,WAAW,iCAAkC,SAAQ,WAAW;IACpE,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED,eAAO,MAAM,4BAA4B,EAAE,KAAK,CAAC,EAAE,CAAC,iCAAiC,CAmCpF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedWalletsTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/wallet/table/ConnectedWalletsTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,MAAM,WAAW,0BAA2B,SAAQ,UAAU;IAC5D,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAClD,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"ConnectedWalletsTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/wallet/table/ConnectedWalletsTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,MAAM,WAAW,0BAA2B,SAAQ,UAAU;IAC5D,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAClD,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAiDtE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/table/cells/Actions.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,gCAAgC,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/table/cells/Actions.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,gCAAgC,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAiCpF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/table/cells/Wallet.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../../../../../src/components/wallet/table/cells/Wallet.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAEnE,eAAO,MAAM,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAkBnF,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -192,25 +192,35 @@ var LinkedProvidersFlexbox = ({
|
|
|
192
192
|
providerName,
|
|
193
193
|
...props
|
|
194
194
|
}) => {
|
|
195
|
-
return /* @__PURE__ */ jsxs2(
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
{
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
195
|
+
return /* @__PURE__ */ jsxs2(
|
|
196
|
+
FlexRow,
|
|
197
|
+
{
|
|
198
|
+
...props,
|
|
199
|
+
sx: [{
|
|
200
|
+
gap: 4,
|
|
201
|
+
justifyContent: "space-evenly"
|
|
202
|
+
}, ...Array.isArray(props.sx) ? props.sx : [props.sx]],
|
|
203
|
+
children: [
|
|
204
|
+
/* @__PURE__ */ jsxs2(FlexCol, { sx: { gap: 0.5 }, children: [
|
|
205
|
+
/* @__PURE__ */ jsx2("img", { alt: "XYO Logo", src: xyo_color_logo_default, style: { height: "48px" } }),
|
|
206
|
+
/* @__PURE__ */ jsx2(Typography, { variant: "subtitle1", children: "XYO App" })
|
|
207
|
+
] }),
|
|
208
|
+
/* @__PURE__ */ jsx2(SyncAlt, { sx: { fontSize: "large" } }),
|
|
209
|
+
/* @__PURE__ */ jsxs2(FlexCol, { sx: { gap: 0.5 }, children: [
|
|
210
|
+
/* @__PURE__ */ jsx2(
|
|
211
|
+
ConstrainedImage,
|
|
212
|
+
{
|
|
213
|
+
constrainedValue: "48px",
|
|
214
|
+
src: icon,
|
|
215
|
+
alt: providerName,
|
|
216
|
+
style: { height: "48px", maxWidth: "48px" }
|
|
217
|
+
}
|
|
218
|
+
),
|
|
219
|
+
/* @__PURE__ */ jsx2(Typography, { variant: "subtitle1", children: providerName })
|
|
220
|
+
] })
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
);
|
|
214
224
|
};
|
|
215
225
|
|
|
216
226
|
// src/components/wallet/dialogs/connect/Permissions.tsx
|
|
@@ -218,27 +228,43 @@ import { Link, Typography as Typography2 } from "@mui/material";
|
|
|
218
228
|
import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
|
|
219
229
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
220
230
|
var WalletPermissionsFlexbox = (props) => {
|
|
221
|
-
return /* @__PURE__ */ jsxs3(
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
231
|
+
return /* @__PURE__ */ jsxs3(
|
|
232
|
+
FlexCol2,
|
|
233
|
+
{
|
|
234
|
+
...props,
|
|
235
|
+
sx: [{ gap: 4 }, ...Array.isArray(props.sx) ? props.sx : [props.sx]],
|
|
236
|
+
children: [
|
|
237
|
+
/* @__PURE__ */ jsx3(
|
|
238
|
+
Typography2,
|
|
239
|
+
{
|
|
240
|
+
sx: {
|
|
241
|
+
fontWeight: "bold",
|
|
242
|
+
textAlign: "center"
|
|
243
|
+
},
|
|
244
|
+
children: "This will allow XYO to:"
|
|
245
|
+
}
|
|
246
|
+
),
|
|
247
|
+
/* @__PURE__ */ jsxs3("ul", { children: [
|
|
248
|
+
/* @__PURE__ */ jsx3("li", { children: "View your wallet account(s) and address(es)" }),
|
|
249
|
+
/* @__PURE__ */ jsx3("li", { children: "Read-only access to browse the public blockchain(s) you select" })
|
|
250
|
+
] }),
|
|
251
|
+
/* @__PURE__ */ jsxs3(Typography2, { variant: "subtitle1", sx: { textAlign: "center" }, children: [
|
|
252
|
+
"You control what accounts to share and what blockchains to view. You can see or revoke access via your wallet's settings at anytime. View more on XYO's sovereign data philosophy",
|
|
253
|
+
" ",
|
|
254
|
+
/* @__PURE__ */ jsx3(
|
|
255
|
+
Link,
|
|
256
|
+
{
|
|
257
|
+
href: "https://cointelegraph.com/innovation-circle/decentralization-and-sovereignty-debunking-our-approach-to-digital-sovereignty",
|
|
258
|
+
sx: { fontWeight: "bold" },
|
|
259
|
+
target: "_blank",
|
|
260
|
+
children: "here"
|
|
261
|
+
}
|
|
262
|
+
),
|
|
263
|
+
"."
|
|
264
|
+
] })
|
|
265
|
+
]
|
|
266
|
+
}
|
|
267
|
+
);
|
|
242
268
|
};
|
|
243
269
|
|
|
244
270
|
// src/components/wallet/dialogs/connect/Dialog.tsx
|
|
@@ -302,15 +328,25 @@ import { FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
|
|
|
302
328
|
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
303
329
|
var RevokeWalletConnectionDialog = ({ activeProvider, ...props }) => {
|
|
304
330
|
return /* @__PURE__ */ jsxs5(Dialog2, { ...props, children: [
|
|
305
|
-
/* @__PURE__ */ jsxs5(
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
331
|
+
/* @__PURE__ */ jsxs5(
|
|
332
|
+
FlexRow2,
|
|
333
|
+
{
|
|
334
|
+
sx: {
|
|
335
|
+
gap: 2,
|
|
336
|
+
justifyContent: "start",
|
|
337
|
+
pl: 2
|
|
338
|
+
},
|
|
339
|
+
children: [
|
|
340
|
+
/* @__PURE__ */ jsx5(ConstrainedImage2, { src: activeProvider?.icon, constrainedValue: "24px" }),
|
|
341
|
+
/* @__PURE__ */ jsxs5(DialogTitle2, { sx: { pl: 0 }, children: [
|
|
342
|
+
"Revoke",
|
|
343
|
+
activeProvider?.providerName,
|
|
344
|
+
" ",
|
|
345
|
+
"Access"
|
|
346
|
+
] })
|
|
347
|
+
]
|
|
348
|
+
}
|
|
349
|
+
),
|
|
314
350
|
/* @__PURE__ */ jsxs5(DialogContent2, { children: [
|
|
315
351
|
/* @__PURE__ */ jsxs5(Typography3, { children: [
|
|
316
352
|
"Revoking access to your wallet must be done from the wallet's browser extension. Wallets grant access to specific domains please consult",
|
|
@@ -402,13 +438,22 @@ var ConnectedWalletsActionsTableCell = ({
|
|
|
402
438
|
onRevoke,
|
|
403
439
|
tableCellProps
|
|
404
440
|
}) => {
|
|
405
|
-
return /* @__PURE__ */ jsx7(TableCell2, { ...tableCellProps, children: /* @__PURE__ */ jsxs6(
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
441
|
+
return /* @__PURE__ */ jsx7(TableCell2, { ...tableCellProps, children: /* @__PURE__ */ jsxs6(
|
|
442
|
+
FlexRow3,
|
|
443
|
+
{
|
|
444
|
+
sx: {
|
|
445
|
+
gap: 2,
|
|
446
|
+
justifyContent: "start"
|
|
447
|
+
},
|
|
448
|
+
children: [
|
|
449
|
+
connected ? /* @__PURE__ */ jsxs6(Typography5, { sx: { display: "inline-flex", gap: 0.5 }, children: [
|
|
450
|
+
/* @__PURE__ */ jsx7(Check, {}),
|
|
451
|
+
"Connected"
|
|
452
|
+
] }) : /* @__PURE__ */ jsx7(Button3, { variant: "contained", onClick: onConnect, children: "Connect" }),
|
|
453
|
+
connected ? /* @__PURE__ */ jsx7(IconButton, { onClick: onRevoke, children: /* @__PURE__ */ jsx7(InfoOutlined, {}) }) : null
|
|
454
|
+
]
|
|
455
|
+
}
|
|
456
|
+
) });
|
|
412
457
|
};
|
|
413
458
|
|
|
414
459
|
// src/components/wallet/table/cells/ChainName.tsx
|
|
@@ -454,10 +499,19 @@ var ConnectedWalletsWalletTableCell = ({
|
|
|
454
499
|
tableCellProps
|
|
455
500
|
}) => {
|
|
456
501
|
const theme = useTheme();
|
|
457
|
-
return /* @__PURE__ */ jsx10(TableCell5, { ...tableCellProps, children: /* @__PURE__ */ jsxs7(
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
502
|
+
return /* @__PURE__ */ jsx10(TableCell5, { ...tableCellProps, children: /* @__PURE__ */ jsxs7(
|
|
503
|
+
FlexRow4,
|
|
504
|
+
{
|
|
505
|
+
sx: {
|
|
506
|
+
gap: 2,
|
|
507
|
+
justifyContent: "start"
|
|
508
|
+
},
|
|
509
|
+
children: [
|
|
510
|
+
/* @__PURE__ */ jsx10(ConstrainedImage3, { constrainedValue: theme.spacing(4), src: icon }),
|
|
511
|
+
walletName
|
|
512
|
+
]
|
|
513
|
+
}
|
|
514
|
+
) });
|
|
461
515
|
};
|
|
462
516
|
|
|
463
517
|
// src/components/wallet/table/cells/Cells.tsx
|
|
@@ -580,7 +634,18 @@ var ConnectedWalletsTable = ({
|
|
|
580
634
|
label,
|
|
581
635
|
align,
|
|
582
636
|
width
|
|
583
|
-
}) => /* @__PURE__ */ jsx12(
|
|
637
|
+
}) => /* @__PURE__ */ jsx12(
|
|
638
|
+
TableCell6,
|
|
639
|
+
{
|
|
640
|
+
align,
|
|
641
|
+
sx: {
|
|
642
|
+
padding: disablePadding ? "none" : "normal",
|
|
643
|
+
width: width ?? "auto"
|
|
644
|
+
},
|
|
645
|
+
children: label
|
|
646
|
+
},
|
|
647
|
+
id
|
|
648
|
+
)) }) }),
|
|
584
649
|
/* @__PURE__ */ jsx12(TableBody, { children: (wallets ?? []).map((wallet) => /* @__PURE__ */ jsx12(
|
|
585
650
|
WalletConnectionsTableRow,
|
|
586
651
|
{
|
|
@@ -615,17 +680,29 @@ var ConnectedAccountsFlexbox = ({
|
|
|
615
680
|
}) => {
|
|
616
681
|
const theme = useTheme2();
|
|
617
682
|
const { totalConnectedAccounts, sortedWallets } = useDetectedWallets();
|
|
618
|
-
return /* @__PURE__ */ jsxs9(
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
683
|
+
return /* @__PURE__ */ jsxs9(
|
|
684
|
+
FlexCol3,
|
|
685
|
+
{
|
|
686
|
+
ref,
|
|
687
|
+
...props,
|
|
688
|
+
sx: [{
|
|
689
|
+
alignItems: "stretch",
|
|
690
|
+
justifyContent: "start",
|
|
691
|
+
gap: 2
|
|
692
|
+
}, ...Array.isArray(props.sx) ? props.sx : [props.sx]],
|
|
693
|
+
children: [
|
|
694
|
+
/* @__PURE__ */ jsxs9(FlexCol3, { sx: { alignItems: "start" }, children: [
|
|
695
|
+
/* @__PURE__ */ jsx13(Typography6, { variant: "h2", sx: { mb: 0.5 }, children: "Detected Web3 Wallets" }),
|
|
696
|
+
totalConnectedAccounts ? /* @__PURE__ */ jsxs9(Typography6, { variant: "subtitle1", color: theme.vars.palette.secondary.main, sx: { opacity: 0.5 }, children: [
|
|
697
|
+
"Total Connected Accounts:",
|
|
698
|
+
" ",
|
|
699
|
+
totalConnectedAccounts
|
|
700
|
+
] }) : null
|
|
701
|
+
] }),
|
|
702
|
+
/* @__PURE__ */ jsx13(ConnectedWalletsTable, { wallets: sortedWallets, ignoreConnectDialog, onIgnoreConnectDialog })
|
|
703
|
+
]
|
|
704
|
+
}
|
|
705
|
+
);
|
|
629
706
|
};
|
|
630
707
|
ConnectedAccountsFlexbox.displayName = "ConnectedAccountsFlexbox";
|
|
631
708
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/classes/EnabledWallets.ts","../../src/components/ConnectedAccountsFlexbox.tsx","../../src/hooks/useDetectWallets.tsx","../../src/hooks/useEnabledWallets.tsx","../../src/components/wallet/dialogs/connect/CheckboxFormControl.tsx","../../src/components/wallet/dialogs/connect/Dialog.tsx","../../src/components/wallet/dialogs/connect/LinkedProvidersFlexbox.tsx","../../src/img/xyo-color-logo.svg","../../src/components/wallet/dialogs/connect/Permissions.tsx","../../src/components/wallet/dialogs/revoke/Dialog.tsx","../../src/components/wallet/lib/TableHeadData.ts","../../src/components/wallet/table/cells/Accounts.tsx","../../src/components/wallet/table/cells/Actions.tsx","../../src/components/wallet/table/cells/ChainName.tsx","../../src/components/wallet/table/cells/State.tsx","../../src/components/wallet/table/cells/Wallet.tsx","../../src/components/wallet/table/cells/Cells.tsx","../../src/components/wallet/table/ConnectedWalletsTable.tsx","../../src/components/wallet/table/ConnectedWalletsTableRow.tsx","../../src/components/wallet/table/hooks/useActiveProviderDialogState.tsx"],"sourcesContent":["import type { DiscoveredWallets, EIP6963Connector } from '@xylabs/react-crypto'\n\nconst DEFAULT_LOCAL_STORAGE_KEY = 'XYO|EnabledWallets'\n\n/**\n * State for storing wallets and their enabled/disabled status by name\n */\nexport type EnabledEthWalletsState = Record<string, {\n enabled: boolean\n wallet: EIP6963Connector\n}>\n\n/**\n * State for storing only enabled/disabled status of a wallet by name\n */\nexport type EnabledWalletsSavedState = Record<string, boolean>\n\nexport type WalletListener = () => void\n\nexport class EnabledEthWalletConnections {\n // control whether or not enabled/disabled preferences are persisted (i.e. in localStorage)\n persistPreferences = true\n\n // Map of wallet names and their enabled/disabled state\n private enabledWallets: EnabledWalletsSavedState = {}\n\n // Map of wallet names, their enabled/disabled state, and their wallet class\n private ethWalletsState: EnabledEthWalletsState = {}\n\n // list of listeners that want to be notified on wallet changes\n private listeners: WalletListener[] = []\n\n // key to use in localStorage when persisting preferences\n private localStorageKey = DEFAULT_LOCAL_STORAGE_KEY\n\n constructor(localStorageKey = DEFAULT_LOCAL_STORAGE_KEY) {\n this.localStorageKey = localStorageKey\n this.reviveSettings()\n }\n\n get wallets() {\n return this.ethWalletsState\n }\n\n disableWallet(rdns: string) {\n this.toggleEnabledWallet(rdns, false)\n }\n\n enableWallet(rdns: string) {\n this.toggleEnabledWallet(rdns, true)\n }\n\n /**\n * Given a new set of wallets, set their enabled state based off previous preferences\n */\n resetWallets(wallets: DiscoveredWallets) {\n const newWallets: EnabledEthWalletsState = {}\n\n const addWallet = ([walletName, wallet]: [string, EIP6963Connector]) => {\n newWallets[walletName] = {\n // preserve the existing enabled state\n enabled: walletName in this.enabledWallets ? this.enabledWallets[walletName] : true,\n wallet,\n }\n }\n\n // eslint-disable-next-line unicorn/no-array-for-each\n Object.entries(wallets).forEach((wallet) => {\n if (wallet !== undefined) {\n addWallet.bind(this)\n }\n })\n this.ethWalletsState = newWallets\n this.emitChange()\n }\n\n subscribe(listener: WalletListener) {\n this.listeners = [...this.listeners, listener]\n return () => {\n this.listeners = this.listeners.filter(existingListener => existingListener !== listener)\n }\n }\n\n toggleEnabledWallet(rdns: string, enabled: boolean) {\n if (rdns && this.ethWalletsState[rdns]) {\n this.ethWalletsState[rdns].enabled = enabled\n this.ethWalletsState = { ...this.ethWalletsState }\n this.emitChange()\n }\n }\n\n private emitChange() {\n for (const listener of this.listeners) {\n listener()\n }\n\n this.persistSettings()\n }\n\n private isPersistance(method: () => void) {\n if (this.persistPreferences) {\n method()\n }\n }\n\n private persistSettings() {\n this.isPersistance(() => {\n // convert wallet enabled selections into serializable state\n // eslint-disable-next-line unicorn/no-array-reduce\n const enabledWallets = Object.entries(this.ethWalletsState).reduce((acc, [rdns, { enabled }]) => {\n acc[rdns] = enabled\n return acc\n }, {} as EnabledWalletsSavedState)\n\n localStorage.setItem(this.localStorageKey, JSON.stringify(enabledWallets))\n })\n }\n\n private reviveSettings() {\n this.isPersistance(() => {\n const existingEntries = localStorage.getItem(this.localStorageKey)\n try {\n const entries = existingEntries ? JSON.parse(existingEntries) : {}\n this.enabledWallets = entries\n } catch (e) {\n console.warn(`Error parsing saved enabled wallet entries: ${(e as Error).message}`)\n }\n })\n }\n}\n","import { Typography, useTheme } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport { useDetectedWallets } from '../hooks/index.ts'\nimport { ConnectedWalletsTable } from './wallet/index.ts'\n\nexport interface ConnectedAccountsFlexboxProps extends FlexBoxProps {\n ignoreConnectDialog?: boolean\n // A callback that is invoked when the option to ignore the dialog is checked\n onIgnoreConnectDialog?: (checked: boolean) => void\n}\n\nexport const ConnectedAccountsFlexbox = ({\n ref, ignoreConnectDialog, onIgnoreConnectDialog, ...props\n}: ConnectedAccountsFlexboxProps) => {\n const theme = useTheme()\n\n const { totalConnectedAccounts, sortedWallets } = useDetectedWallets()\n\n return (\n <FlexCol alignItems=\"stretch\" justifyContent=\"start\" gap={2} ref={ref} {...props}>\n <FlexCol alignItems=\"start\">\n <Typography variant=\"h2\" sx={{ mb: 0.5 }}>\n Detected Web3 Wallets\n </Typography>\n {totalConnectedAccounts\n ? (\n <Typography variant=\"subtitle1\" color={theme.vars.palette.secondary.main} sx={{ opacity: 0.5 }}>\n Total Connected Accounts:\n {' '}\n {totalConnectedAccounts}\n </Typography>\n )\n : null}\n </FlexCol>\n <ConnectedWalletsTable wallets={sortedWallets} ignoreConnectDialog={ignoreConnectDialog} onIgnoreConnectDialog={onIgnoreConnectDialog} />\n </FlexCol>\n )\n}\n\nConnectedAccountsFlexbox.displayName = 'ConnectedAccountsFlexbox'\n","import type { DiscoveredWallets, EIP6963Connector } from '@xylabs/react-crypto'\nimport { useWalletDiscovery } from '@xylabs/react-crypto'\nimport { useMemo } from 'react'\n\nconst sortWallets = (wallets: DiscoveredWallets) => {\n const result: EIP6963Connector[] = []\n\n for (const wallet of Object.values(wallets)) {\n if (wallet) {\n if (wallet.allowedAccounts.length > 0)\n result.unshift(wallet)\n else\n result.push(wallet)\n }\n }\n return result\n}\n\nexport const useDetectedWallets = () => {\n const wallets = useWalletDiscovery()\n const sortedWallets = useMemo(() => sortWallets(wallets), [wallets])\n\n const totalConnectedAccounts = useMemo(\n () => Object.values(sortedWallets).reduce((acc, wallet) => acc + wallet.allowedAccounts.length, 0),\n [sortedWallets],\n )\n\n return { sortedWallets, totalConnectedAccounts }\n}\n","import { useWalletDiscovery } from '@xylabs/react-crypto'\nimport { useMemo, useSyncExternalStore } from 'react'\n\nimport type { EnabledEthWalletsState, EnabledWalletsSavedState } from '../classes/index.ts'\nimport { EnabledEthWalletConnections } from '../classes/index.ts'\n\nconst enabledEthWalletsRef = { current: undefined as EnabledEthWalletConnections | undefined }\n\n/**\n * Takes the discovered wallets and tracks their enabled state globally\n */\nexport const useEnabledWalletsInner = (enabledWalletsRdns?: EnabledWalletsSavedState) => {\n const discoveredWallets = useWalletDiscovery()\n\n // when we discover new wallets, build their enabled state\n const wallets = useMemo(() => {\n // eslint-disable-next-line react-hooks/immutability\n if (enabledEthWalletsRef.current === undefined) enabledEthWalletsRef.current = new EnabledEthWalletConnections()\n enabledEthWalletsRef.current.resetWallets(discoveredWallets)\n for (const [rdns, enabled] of Object.entries(enabledWalletsRdns ?? {})) enabledEthWalletsRef.current?.toggleEnabledWallet(rdns, enabled)\n return enabledEthWalletsRef.current\n }, [discoveredWallets, enabledWalletsRdns])\n\n return useSyncExternalStore(wallets.subscribe.bind(wallets), () => wallets.wallets)\n}\n\n/**\n * Expose an interface for enabling and disabling wallets\n */\nexport const useEnabledWallets = (enabledWalletsRdns?: EnabledWalletsSavedState) => {\n const wallets = useEnabledWalletsInner(enabledWalletsRdns)\n const enabledWallets = useMemo(\n () =>\n // eslint-disable-next-line unicorn/no-array-reduce\n Object.entries(wallets).reduce((acc, [walletName, wallet]) => {\n if (wallet.enabled) acc[walletName] = wallet\n return acc\n }, {} as EnabledEthWalletsState),\n [wallets],\n )\n\n return {\n disableWallet: enabledEthWalletsRef.current?.disableWallet.bind(enabledEthWalletsRef.current),\n enableWallet: enabledEthWalletsRef.current?.enableWallet.bind(enabledEthWalletsRef.current),\n enabledWallets,\n wallets,\n }\n}\n","import type { FormControlProps } from '@mui/material'\nimport {\n Checkbox, FormControl, FormLabel,\n} from '@mui/material'\nimport React from 'react'\n\nexport interface CheckboxFormControlProps extends FormControlProps {\n onCheckChanged?: (checked: boolean) => void\n}\n\nexport const CheckboxFormControl: React.FC<CheckboxFormControlProps> = ({ onCheckChanged, ...props }) => {\n return (\n <FormControl {...props}>\n <FormLabel>\n <Checkbox onChange={(_, checked) => onCheckChanged?.(checked)} />\n Do not show this again.\n </FormLabel>\n </FormControl>\n )\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Button, Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport React from 'react'\n\nimport type { ActiveProvider } from '../../lib/index.ts'\nimport { CheckboxFormControl } from './CheckboxFormControl.tsx'\nimport { LinkedProvidersFlexbox } from './LinkedProvidersFlexbox.tsx'\nimport { WalletPermissionsFlexbox } from './Permissions.tsx'\n\nexport interface ConnectWalletDialogProps extends DialogProps {\n activeProvider?: ActiveProvider\n onIgnoreConnectDialog?: (checked: boolean) => void\n}\n\nexport const ConnectWalletDialog: React.FC<ConnectWalletDialogProps> = ({\n activeProvider, onIgnoreConnectDialog, ...props\n}) => {\n const { icon, providerName } = activeProvider ?? {}\n\n const onConnect = async () => {\n try {\n await activeProvider?.connectWallet?.()\n props.onClose?.({}, 'escapeKeyDown')\n } catch (e) {\n console.warn(`Error connecting to wallet: ${(e as Error).message}`)\n }\n }\n\n return (\n <Dialog\n slotProps={{ paper: { sx: { display: 'flex', gap: 4 } } }}\n {...props}\n >\n <DialogTitle sx={{ textAlign: 'center' }}>XYO Wants To Access The Blockchain on Your Behalf</DialogTitle>\n <DialogContent sx={{\n display: 'flex', flexDirection: 'column', gap: 4,\n }}\n >\n <LinkedProvidersFlexbox icon={icon} providerName={providerName} />\n <WalletPermissionsFlexbox />\n <CheckboxFormControl onCheckChanged={onIgnoreConnectDialog} />\n </DialogContent>\n <DialogActions>\n <Button variant=\"outlined\" onClick={() => props.onClose?.({}, 'escapeKeyDown')}>\n Close\n </Button>\n <Button variant=\"contained\" onClick={onConnect}>\n Connect\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import { SyncAlt } from '@mui/icons-material'\nimport { Typography } from '@mui/material'\nimport { ConstrainedImage } from '@xylabs/react-crypto'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport { xyoColorLogo } from '../../../../img/index.ts'\n\nexport interface LinkedProvidersFlexboxProps extends FlexBoxProps {\n icon?: string\n providerName?: string\n}\n\nexport const LinkedProvidersFlexbox: React.FC<LinkedProvidersFlexboxProps> = ({\n icon, providerName, ...props\n}) => {\n return (\n <FlexRow gap={4} justifyContent=\"space-evenly\" {...props}>\n <FlexCol gap={0.5}>\n <img alt=\"XYO Logo\" src={xyoColorLogo} style={{ height: '48px' }} />\n <Typography variant=\"subtitle1\">XYO App</Typography>\n </FlexCol>\n <SyncAlt fontSize=\"large\" />\n <FlexCol gap={0.5}>\n <ConstrainedImage\n constrainedValue=\"48px\"\n src={icon}\n alt={providerName}\n style={{ height: '48px', maxWidth: '48px' }}\n />\n <Typography variant=\"subtitle1\">{providerName}</Typography>\n </FlexCol>\n </FlexRow>\n )\n}\n","<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 238\"><defs><style>.cls-1{fill:#8d8fc6;}.cls-2{fill:#579fd6;}.cls-3{fill:#f27046;}.cls-4{fill:#eb407a;}</style></defs><path class=\"cls-1\" d=\"M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z\"/><path class=\"cls-2\" d=\"M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z\"/><path class=\"cls-3\" d=\"M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z\"/><path class=\"cls-4\" d=\"M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z\"/></svg>","import { Link, Typography } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nexport interface WalletPermissionsFlexBoxProps extends FlexBoxProps {}\n\nexport const WalletPermissionsFlexbox: React.FC<WalletPermissionsFlexBoxProps> = (props) => {\n return (\n <FlexCol gap={4} {...props}>\n <Typography fontWeight=\"bold\" sx={{ textAlign: 'center' }}>\n This will allow XYO to:\n </Typography>\n <ul>\n <li>View your wallet account(s) and address(es)</li>\n <li>Read-only access to browse the public blockchain(s) you select</li>\n </ul>\n <Typography variant=\"subtitle1\" sx={{ textAlign: 'center' }}>\n You control what accounts to share and what blockchains to view. You can see or revoke access via your wallet's settings at anytime. View\n more on XYO's sovereign data philosophy\n {' '}\n <Link\n href=\"https://cointelegraph.com/innovation-circle/decentralization-and-sovereignty-debunking-our-approach-to-digital-sovereignty\"\n sx={{ fontWeight: 'bold' }}\n target=\"_blank\"\n >\n here\n </Link>\n .\n </Typography>\n </FlexCol>\n )\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Button, Dialog, DialogActions, DialogContent, DialogTitle, Typography,\n} from '@mui/material'\nimport { ConstrainedImage } from '@xylabs/react-crypto'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport type { ActiveProvider } from '../../lib/index.ts'\n\nexport interface RevokeWalletConnectionDialogProps extends DialogProps {\n activeProvider?: ActiveProvider\n}\n\nexport const RevokeWalletConnectionDialog: React.FC<RevokeWalletConnectionDialogProps> = ({ activeProvider, ...props }) => {\n return (\n <Dialog {...props}>\n <FlexRow gap={2} justifyContent=\"start\" pl={2}>\n <ConstrainedImage src={activeProvider?.icon} constrainedValue=\"24px\" />\n <DialogTitle sx={{ pl: 0 }}>\n Revoke\n {activeProvider?.providerName}\n {' '}\n Access\n </DialogTitle>\n </FlexRow>\n <DialogContent>\n <Typography>\n Revoking access to your wallet must be done from the wallet's browser extension. Wallets grant access to specific domains please\n consult\n {' '}\n {activeProvider?.providerName}\n 's documentation on how to revoke access to this website:\n </Typography>\n <Typography>{globalThis.location.origin}</Typography>\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => props.onClose?.({}, 'escapeKeyDown')}>\n Close\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import type { TableHeadCell } from '@xyo-network/react-table'\n\nexport const WalletsTableHeadCells: TableHeadCell[] = [\n {\n disablePadding: false,\n id: 'wallet',\n label: 'Wallet',\n numeric: false,\n showOnMobile: true,\n },\n {\n disablePadding: false,\n id: 'chain',\n label: 'Chain',\n numeric: false,\n showOnMobile: true,\n },\n {\n disablePadding: false,\n id: 'accounts',\n label: 'Accounts',\n numeric: true,\n showOnMobile: true,\n },\n {\n disablePadding: false,\n id: 'actions',\n label: 'Actions',\n numeric: false,\n showOnMobile: true,\n },\n {\n disablePadding: false,\n id: 'enabled',\n label: 'Enabled',\n numeric: false,\n showOnMobile: true,\n },\n]\n","import {\n TableCell, Tooltip, Typography,\n} from '@mui/material'\nimport React from 'react'\n\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletsAccountsTableCell: React.FC<ConnectedWalletTableCellProps> = ({\n additionalAccounts,\n currentAccount,\n totalAccounts,\n tableCellProps,\n}) => {\n return (\n <TableCell {...tableCellProps}>\n <Tooltip\n sx={{ cursor: totalAccounts > 0 ? 'pointer' : 'auto' }}\n title={[...(currentAccount ?? []), ...(additionalAccounts ?? [])].map(address => (\n <p key={address}>{address}</p>\n ))}\n >\n <Typography>{totalAccounts}</Typography>\n </Tooltip>\n </TableCell>\n )\n}\n","import { Check, InfoOutlined } from '@mui/icons-material'\nimport {\n Button, IconButton, TableCell, Typography,\n} from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletsActionsTableCell: React.FC<ConnectedWalletTableCellProps> = ({\n connected, onConnect, onRevoke, tableCellProps,\n}) => {\n return (\n <TableCell {...tableCellProps}>\n <FlexRow gap={2} justifyContent=\"start\">\n {connected\n ? (\n <Typography sx={{ display: 'inline-flex', gap: 0.5 }}>\n <Check />\n Connected\n </Typography>\n )\n : (\n <Button variant=\"contained\" onClick={onConnect}>\n Connect\n </Button>\n )}\n {connected\n ? (\n <IconButton onClick={onRevoke}>\n <InfoOutlined />\n </IconButton>\n )\n : null}\n </FlexRow>\n </TableCell>\n )\n}\n","import { TableCell } from '@mui/material'\nimport React from 'react'\n\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletsChainNameTableCell: React.FC<ConnectedWalletTableCellProps> = ({ chainName, tableCellProps }) => {\n return <TableCell {...tableCellProps}>{chainName}</TableCell>\n}\n","import { Switch, TableCell } from '@mui/material'\nimport { isDefined } from '@xylabs/sdk-js'\nimport type { ChangeEvent } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { useEnabledWallets } from '../../../../hooks/index.ts'\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletState: React.FC<ConnectedWalletTableCellProps> = ({\n connected, walletRdns, tableCellProps,\n}) => {\n const {\n disableWallet, enableWallet, wallets,\n } = useEnabledWallets()\n\n const enabled = useMemo(() => (isDefined(walletRdns) ? wallets[walletRdns]?.enabled : false), [wallets, walletRdns])\n\n const handleClick = (event: ChangeEvent<HTMLInputElement>) => {\n const checked = event.target?.checked\n if (isDefined(walletRdns)) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n checked ? enableWallet?.(walletRdns) : disableWallet?.(walletRdns)\n }\n }\n return (\n <TableCell {...tableCellProps}>\n <Switch disabled={!connected} checked={connected && enabled} onChange={handleClick} />\n </TableCell>\n )\n}\n","import { TableCell, useTheme } from '@mui/material'\nimport { ConstrainedImage } from '@xylabs/react-crypto'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletsWalletTableCell: React.FC<ConnectedWalletTableCellProps> = ({\n icon, walletName, tableCellProps,\n}) => {\n const theme = useTheme()\n\n return (\n <TableCell {...tableCellProps}>\n <FlexRow gap={2} justifyContent=\"start\">\n <ConstrainedImage constrainedValue={theme.spacing(4)} src={icon} />\n {walletName}\n </FlexRow>\n </TableCell>\n )\n}\n","import type { ComponentType } from 'react'\n\nimport { ConnectedWalletsAccountsTableCell } from './Accounts.tsx'\nimport { ConnectedWalletsActionsTableCell } from './Actions.tsx'\nimport { ConnectedWalletsChainNameTableCell } from './ChainName.tsx'\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\nimport { ConnectedWalletState } from './State.tsx'\nimport { ConnectedWalletsWalletTableCell } from './Wallet.tsx'\n\nexport const ConnectedWalletTableCells: ComponentType<ConnectedWalletTableCellProps>[] = [\n ConnectedWalletsWalletTableCell,\n ConnectedWalletsChainNameTableCell,\n ConnectedWalletsAccountsTableCell,\n ConnectedWalletsActionsTableCell,\n ConnectedWalletState,\n]\n","import type { TableProps } from '@mui/material'\nimport {\n Table, TableBody, TableCell, TableHead, TableRow,\n} from '@mui/material'\nimport type { EIP6963Connector } from '@xylabs/react-crypto'\nimport React, { useState } from 'react'\n\nimport { ConnectWalletDialog, RevokeWalletConnectionDialog } from '../dialogs/index.ts'\nimport type { ActiveProvider } from '../lib/index.ts'\nimport { WalletsTableHeadCells } from '../lib/index.ts'\nimport { WalletConnectionsTableRow } from './ConnectedWalletsTableRow.tsx'\nimport { useActiveProviderDialogState } from './hooks/index.ts'\n\nexport interface ConnectedWalletsTableProps extends TableProps {\n ignoreConnectDialog?: boolean\n onIgnoreConnectDialog?: (checked: boolean) => void\n wallets?: EIP6963Connector[]\n}\n\nexport const ConnectedWalletsTable: React.FC<ConnectedWalletsTableProps> = ({\n ignoreConnectDialog, onIgnoreConnectDialog, wallets, ...props\n}) => {\n const [activeProvider, setActiveProvider] = useState<ActiveProvider>()\n const [showConnect, onSetActiveProviderConnect, onConnectClose] = useActiveProviderDialogState(setActiveProvider)\n const [showRevoke, onSetActiveProviderRevoke, onRevokeClose] = useActiveProviderDialogState(setActiveProvider)\n\n return (\n <>\n <Table {...props}>\n <TableHead>\n <TableRow>\n {WalletsTableHeadCells.map(({\n disablePadding, id, label, align, width,\n }) => (\n <TableCell align={align} key={id} padding={disablePadding ? 'none' : 'normal'} width={width ?? 'auto'}>\n {label}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {(wallets ?? []).map(wallet => (\n <WalletConnectionsTableRow\n ignoreConnectDialog={ignoreConnectDialog}\n key={wallet.providerInfo?.rdns}\n onConnectClick={onSetActiveProviderConnect}\n onRevoke={onSetActiveProviderRevoke}\n wallet={wallet}\n />\n ))}\n </TableBody>\n </Table>\n <RevokeWalletConnectionDialog open={showRevoke} onClose={onRevokeClose} activeProvider={activeProvider} />\n <ConnectWalletDialog\n activeProvider={activeProvider}\n onClose={onConnectClose}\n open={showConnect}\n onIgnoreConnectDialog={onIgnoreConnectDialog}\n />\n </>\n )\n}\n","import type { TableRowProps } from '@mui/material'\nimport { TableRow } from '@mui/material'\nimport type { EthWalletConnectorBase } from '@xylabs/react-crypto'\nimport { useEthWallet } from '@xylabs/react-crypto'\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { ActiveProvider } from '../lib/index.ts'\nimport { ConnectedWalletTableCells } from './cells/index.ts'\n\nexport interface WalletConnectionsTableRowProps extends TableRowProps {\n ignoreConnectDialog?: boolean\n onConnectClick?: (activeProvider: ActiveProvider) => void\n onRevoke?: (activeProvider: ActiveProvider) => void\n wallet: EthWalletConnectorBase\n}\n\nexport const WalletConnectionsTableRow: React.FC<WalletConnectionsTableRowProps> = ({\n ignoreConnectDialog,\n onConnectClick,\n onRevoke,\n wallet,\n ...props\n}) => {\n const {\n currentAccount: currentAccountFromWallet, additionalAccounts, chainName, connectWallet, providerInfo,\n } = useEthWallet(wallet)\n\n const currentAccount = currentAccountFromWallet?.toString() ? [currentAccountFromWallet.toString()] : []\n const totalAccounts = (additionalAccounts?.length ?? 0) + (currentAccount?.length ?? 0)\n const connected = !!(currentAccount?.length)\n const {\n icon, name, rdns,\n } = useMemo(() => providerInfo ?? {\n icon: undefined, name: undefined, rdns: undefined,\n }, [providerInfo])\n\n const activeProvider = useMemo<ActiveProvider>(\n () => ({\n connectWallet,\n icon,\n providerName: name,\n }),\n [connectWallet, icon, name],\n )\n\n const onRevokeLocal = useCallback(() => {\n onRevoke?.(activeProvider)\n }, [activeProvider, onRevoke])\n\n const onConnectLocal = useCallback(async () => {\n if (ignoreConnectDialog) {\n await connectWallet?.()\n } else {\n onConnectClick?.(activeProvider)\n }\n }, [activeProvider, connectWallet, ignoreConnectDialog, onConnectClick])\n\n return (\n <TableRow {...props}>\n {Object.entries(ConnectedWalletTableCells).map(([cellName, Cell]) => (\n <Cell\n key={cellName}\n additionalAccounts={additionalAccounts}\n chainName={chainName}\n connected={connected}\n currentAccount={currentAccount}\n icon={icon}\n onConnect={onConnectLocal}\n onRevoke={onRevokeLocal}\n totalAccounts={totalAccounts}\n walletName={name}\n walletRdns={rdns}\n />\n ))}\n </TableRow>\n )\n}\n","import type { Dispatch, SetStateAction } from 'react'\nimport { useState } from 'react'\n\nimport type { ActiveProvider } from '../../lib/index.ts'\n\nexport const useActiveProviderDialogState = (\n setActiveProvider: Dispatch<SetStateAction<ActiveProvider | undefined>>,\n): [boolean, (activeProvider: ActiveProvider) => void, () => void] => {\n const [show, setShow] = useState(false)\n const onSetActiveProvider = (activeProvider: ActiveProvider) => {\n setShow(true)\n setActiveProvider(activeProvider)\n }\n\n const onClose = () => {\n setShow(false)\n setActiveProvider({})\n }\n\n return [show, onSetActiveProvider, onClose]\n}\n"],"mappings":"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","names":["Typography","useTheme","FlexCol","useWalletDiscovery","useMemo","useWalletDiscovery","useMemo","jsx","jsxs","Typography","FlexCol","jsx","jsxs","jsx","jsxs","Button","Dialog","DialogActions","DialogContent","DialogTitle","Typography","ConstrainedImage","FlexRow","jsx","jsxs","Typography","jsx","Button","TableCell","Typography","FlexRow","jsx","jsxs","TableCell","jsx","TableCell","useMemo","jsx","useMemo","TableCell","TableCell","ConstrainedImage","FlexRow","jsx","jsxs","TableCell","TableRow","useState","useMemo","jsx","useMemo","jsx","jsxs","useState","TableRow","TableCell","jsx","jsxs","useTheme","FlexCol","Typography"]}
|
|
1
|
+
{"version":3,"sources":["../../src/classes/EnabledWallets.ts","../../src/components/ConnectedAccountsFlexbox.tsx","../../src/hooks/useDetectWallets.tsx","../../src/hooks/useEnabledWallets.tsx","../../src/components/wallet/dialogs/connect/CheckboxFormControl.tsx","../../src/components/wallet/dialogs/connect/Dialog.tsx","../../src/components/wallet/dialogs/connect/LinkedProvidersFlexbox.tsx","../../src/img/xyo-color-logo.svg","../../src/components/wallet/dialogs/connect/Permissions.tsx","../../src/components/wallet/dialogs/revoke/Dialog.tsx","../../src/components/wallet/lib/TableHeadData.ts","../../src/components/wallet/table/cells/Accounts.tsx","../../src/components/wallet/table/cells/Actions.tsx","../../src/components/wallet/table/cells/ChainName.tsx","../../src/components/wallet/table/cells/State.tsx","../../src/components/wallet/table/cells/Wallet.tsx","../../src/components/wallet/table/cells/Cells.tsx","../../src/components/wallet/table/ConnectedWalletsTable.tsx","../../src/components/wallet/table/ConnectedWalletsTableRow.tsx","../../src/components/wallet/table/hooks/useActiveProviderDialogState.tsx"],"sourcesContent":["import type { DiscoveredWallets, EIP6963Connector } from '@xylabs/react-crypto'\n\nconst DEFAULT_LOCAL_STORAGE_KEY = 'XYO|EnabledWallets'\n\n/**\n * State for storing wallets and their enabled/disabled status by name\n */\nexport type EnabledEthWalletsState = Record<string, {\n enabled: boolean\n wallet: EIP6963Connector\n}>\n\n/**\n * State for storing only enabled/disabled status of a wallet by name\n */\nexport type EnabledWalletsSavedState = Record<string, boolean>\n\nexport type WalletListener = () => void\n\nexport class EnabledEthWalletConnections {\n // control whether or not enabled/disabled preferences are persisted (i.e. in localStorage)\n persistPreferences = true\n\n // Map of wallet names and their enabled/disabled state\n private enabledWallets: EnabledWalletsSavedState = {}\n\n // Map of wallet names, their enabled/disabled state, and their wallet class\n private ethWalletsState: EnabledEthWalletsState = {}\n\n // list of listeners that want to be notified on wallet changes\n private listeners: WalletListener[] = []\n\n // key to use in localStorage when persisting preferences\n private localStorageKey = DEFAULT_LOCAL_STORAGE_KEY\n\n constructor(localStorageKey = DEFAULT_LOCAL_STORAGE_KEY) {\n this.localStorageKey = localStorageKey\n this.reviveSettings()\n }\n\n get wallets() {\n return this.ethWalletsState\n }\n\n disableWallet(rdns: string) {\n this.toggleEnabledWallet(rdns, false)\n }\n\n enableWallet(rdns: string) {\n this.toggleEnabledWallet(rdns, true)\n }\n\n /**\n * Given a new set of wallets, set their enabled state based off previous preferences\n */\n resetWallets(wallets: DiscoveredWallets) {\n const newWallets: EnabledEthWalletsState = {}\n\n const addWallet = ([walletName, wallet]: [string, EIP6963Connector]) => {\n newWallets[walletName] = {\n // preserve the existing enabled state\n enabled: walletName in this.enabledWallets ? this.enabledWallets[walletName] : true,\n wallet,\n }\n }\n\n // eslint-disable-next-line unicorn/no-array-for-each\n Object.entries(wallets).forEach((wallet) => {\n if (wallet !== undefined) {\n addWallet.bind(this)\n }\n })\n this.ethWalletsState = newWallets\n this.emitChange()\n }\n\n subscribe(listener: WalletListener) {\n this.listeners = [...this.listeners, listener]\n return () => {\n this.listeners = this.listeners.filter(existingListener => existingListener !== listener)\n }\n }\n\n toggleEnabledWallet(rdns: string, enabled: boolean) {\n if (rdns && this.ethWalletsState[rdns]) {\n this.ethWalletsState[rdns].enabled = enabled\n this.ethWalletsState = { ...this.ethWalletsState }\n this.emitChange()\n }\n }\n\n private emitChange() {\n for (const listener of this.listeners) {\n listener()\n }\n\n this.persistSettings()\n }\n\n private isPersistance(method: () => void) {\n if (this.persistPreferences) {\n method()\n }\n }\n\n private persistSettings() {\n this.isPersistance(() => {\n // convert wallet enabled selections into serializable state\n // eslint-disable-next-line unicorn/no-array-reduce\n const enabledWallets = Object.entries(this.ethWalletsState).reduce((acc, [rdns, { enabled }]) => {\n acc[rdns] = enabled\n return acc\n }, {} as EnabledWalletsSavedState)\n\n localStorage.setItem(this.localStorageKey, JSON.stringify(enabledWallets))\n })\n }\n\n private reviveSettings() {\n this.isPersistance(() => {\n const existingEntries = localStorage.getItem(this.localStorageKey)\n try {\n const entries = existingEntries ? JSON.parse(existingEntries) : {}\n this.enabledWallets = entries\n } catch (e) {\n console.warn(`Error parsing saved enabled wallet entries: ${(e as Error).message}`)\n }\n })\n }\n}\n","import { Typography, useTheme } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport { useDetectedWallets } from '../hooks/index.ts'\nimport { ConnectedWalletsTable } from './wallet/index.ts'\n\nexport interface ConnectedAccountsFlexboxProps extends FlexBoxProps {\n ignoreConnectDialog?: boolean\n // A callback that is invoked when the option to ignore the dialog is checked\n onIgnoreConnectDialog?: (checked: boolean) => void\n}\n\nexport const ConnectedAccountsFlexbox = ({\n ref, ignoreConnectDialog, onIgnoreConnectDialog, ...props\n}: ConnectedAccountsFlexboxProps) => {\n const theme = useTheme()\n\n const { totalConnectedAccounts, sortedWallets } = useDetectedWallets()\n\n return (\n <FlexCol\n ref={ref}\n {...props}\n sx={[{\n alignItems: 'stretch',\n justifyContent: 'start',\n gap: 2,\n }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n >\n <FlexCol sx={{ alignItems: 'start' }}>\n <Typography variant=\"h2\" sx={{ mb: 0.5 }}>\n Detected Web3 Wallets\n </Typography>\n {totalConnectedAccounts\n ? (\n <Typography variant=\"subtitle1\" color={theme.vars.palette.secondary.main} sx={{ opacity: 0.5 }}>\n Total Connected Accounts:\n {' '}\n {totalConnectedAccounts}\n </Typography>\n )\n : null}\n </FlexCol>\n <ConnectedWalletsTable wallets={sortedWallets} ignoreConnectDialog={ignoreConnectDialog} onIgnoreConnectDialog={onIgnoreConnectDialog} />\n </FlexCol>\n )\n}\n\nConnectedAccountsFlexbox.displayName = 'ConnectedAccountsFlexbox'\n","import type { DiscoveredWallets, EIP6963Connector } from '@xylabs/react-crypto'\nimport { useWalletDiscovery } from '@xylabs/react-crypto'\nimport { useMemo } from 'react'\n\nconst sortWallets = (wallets: DiscoveredWallets) => {\n const result: EIP6963Connector[] = []\n\n for (const wallet of Object.values(wallets)) {\n if (wallet) {\n if (wallet.allowedAccounts.length > 0)\n result.unshift(wallet)\n else\n result.push(wallet)\n }\n }\n return result\n}\n\nexport const useDetectedWallets = () => {\n const wallets = useWalletDiscovery()\n const sortedWallets = useMemo(() => sortWallets(wallets), [wallets])\n\n const totalConnectedAccounts = useMemo(\n () => Object.values(sortedWallets).reduce((acc, wallet) => acc + wallet.allowedAccounts.length, 0),\n [sortedWallets],\n )\n\n return { sortedWallets, totalConnectedAccounts }\n}\n","import { useWalletDiscovery } from '@xylabs/react-crypto'\nimport { useMemo, useSyncExternalStore } from 'react'\n\nimport type { EnabledEthWalletsState, EnabledWalletsSavedState } from '../classes/index.ts'\nimport { EnabledEthWalletConnections } from '../classes/index.ts'\n\nconst enabledEthWalletsRef = { current: undefined as EnabledEthWalletConnections | undefined }\n\n/**\n * Takes the discovered wallets and tracks their enabled state globally\n */\nexport const useEnabledWalletsInner = (enabledWalletsRdns?: EnabledWalletsSavedState) => {\n const discoveredWallets = useWalletDiscovery()\n\n // when we discover new wallets, build their enabled state\n const wallets = useMemo(() => {\n // eslint-disable-next-line react-hooks/immutability\n if (enabledEthWalletsRef.current === undefined) enabledEthWalletsRef.current = new EnabledEthWalletConnections()\n enabledEthWalletsRef.current.resetWallets(discoveredWallets)\n for (const [rdns, enabled] of Object.entries(enabledWalletsRdns ?? {})) enabledEthWalletsRef.current?.toggleEnabledWallet(rdns, enabled)\n return enabledEthWalletsRef.current\n }, [discoveredWallets, enabledWalletsRdns])\n\n return useSyncExternalStore(wallets.subscribe.bind(wallets), () => wallets.wallets)\n}\n\n/**\n * Expose an interface for enabling and disabling wallets\n */\nexport const useEnabledWallets = (enabledWalletsRdns?: EnabledWalletsSavedState) => {\n const wallets = useEnabledWalletsInner(enabledWalletsRdns)\n const enabledWallets = useMemo(\n () =>\n // eslint-disable-next-line unicorn/no-array-reduce\n Object.entries(wallets).reduce((acc, [walletName, wallet]) => {\n if (wallet.enabled) acc[walletName] = wallet\n return acc\n }, {} as EnabledEthWalletsState),\n [wallets],\n )\n\n return {\n disableWallet: enabledEthWalletsRef.current?.disableWallet.bind(enabledEthWalletsRef.current),\n enableWallet: enabledEthWalletsRef.current?.enableWallet.bind(enabledEthWalletsRef.current),\n enabledWallets,\n wallets,\n }\n}\n","import type { FormControlProps } from '@mui/material'\nimport {\n Checkbox, FormControl, FormLabel,\n} from '@mui/material'\nimport React from 'react'\n\nexport interface CheckboxFormControlProps extends FormControlProps {\n onCheckChanged?: (checked: boolean) => void\n}\n\nexport const CheckboxFormControl: React.FC<CheckboxFormControlProps> = ({ onCheckChanged, ...props }) => {\n return (\n <FormControl {...props}>\n <FormLabel>\n <Checkbox onChange={(_, checked) => onCheckChanged?.(checked)} />\n Do not show this again.\n </FormLabel>\n </FormControl>\n )\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Button, Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport React from 'react'\n\nimport type { ActiveProvider } from '../../lib/index.ts'\nimport { CheckboxFormControl } from './CheckboxFormControl.tsx'\nimport { LinkedProvidersFlexbox } from './LinkedProvidersFlexbox.tsx'\nimport { WalletPermissionsFlexbox } from './Permissions.tsx'\n\nexport interface ConnectWalletDialogProps extends DialogProps {\n activeProvider?: ActiveProvider\n onIgnoreConnectDialog?: (checked: boolean) => void\n}\n\nexport const ConnectWalletDialog: React.FC<ConnectWalletDialogProps> = ({\n activeProvider, onIgnoreConnectDialog, ...props\n}) => {\n const { icon, providerName } = activeProvider ?? {}\n\n const onConnect = async () => {\n try {\n await activeProvider?.connectWallet?.()\n props.onClose?.({}, 'escapeKeyDown')\n } catch (e) {\n console.warn(`Error connecting to wallet: ${(e as Error).message}`)\n }\n }\n\n return (\n <Dialog\n slotProps={{ paper: { sx: { display: 'flex', gap: 4 } } }}\n {...props}\n >\n <DialogTitle sx={{ textAlign: 'center' }}>XYO Wants To Access The Blockchain on Your Behalf</DialogTitle>\n <DialogContent sx={{\n display: 'flex', flexDirection: 'column', gap: 4,\n }}\n >\n <LinkedProvidersFlexbox icon={icon} providerName={providerName} />\n <WalletPermissionsFlexbox />\n <CheckboxFormControl onCheckChanged={onIgnoreConnectDialog} />\n </DialogContent>\n <DialogActions>\n <Button variant=\"outlined\" onClick={() => props.onClose?.({}, 'escapeKeyDown')}>\n Close\n </Button>\n <Button variant=\"contained\" onClick={onConnect}>\n Connect\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import { SyncAlt } from '@mui/icons-material'\nimport { Typography } from '@mui/material'\nimport { ConstrainedImage } from '@xylabs/react-crypto'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport { xyoColorLogo } from '../../../../img/index.ts'\n\nexport interface LinkedProvidersFlexboxProps extends FlexBoxProps {\n icon?: string\n providerName?: string\n}\n\nexport const LinkedProvidersFlexbox: React.FC<LinkedProvidersFlexboxProps> = ({\n icon, providerName, ...props\n}) => {\n return (\n <FlexRow\n {...props}\n sx={[{\n gap: 4,\n justifyContent: 'space-evenly',\n }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n >\n <FlexCol sx={{ gap: 0.5 }}>\n <img alt=\"XYO Logo\" src={xyoColorLogo} style={{ height: '48px' }} />\n <Typography variant=\"subtitle1\">XYO App</Typography>\n </FlexCol>\n <SyncAlt sx={{ fontSize: 'large' }} />\n <FlexCol sx={{ gap: 0.5 }}>\n <ConstrainedImage\n constrainedValue=\"48px\"\n src={icon}\n alt={providerName}\n style={{ height: '48px', maxWidth: '48px' }}\n />\n <Typography variant=\"subtitle1\">{providerName}</Typography>\n </FlexCol>\n </FlexRow>\n )\n}\n","<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 238\"><defs><style>.cls-1{fill:#8d8fc6;}.cls-2{fill:#579fd6;}.cls-3{fill:#f27046;}.cls-4{fill:#eb407a;}</style></defs><path class=\"cls-1\" d=\"M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z\"/><path class=\"cls-2\" d=\"M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z\"/><path class=\"cls-3\" d=\"M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z\"/><path class=\"cls-4\" d=\"M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z\"/></svg>","import { Link, Typography } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nexport interface WalletPermissionsFlexBoxProps extends FlexBoxProps {}\n\nexport const WalletPermissionsFlexbox: React.FC<WalletPermissionsFlexBoxProps> = (props) => {\n return (\n <FlexCol\n {...props}\n sx={[{ gap: 4 }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n >\n <Typography\n sx={{\n fontWeight: 'bold',\n textAlign: 'center',\n }}\n >\n This will allow XYO to:\n </Typography>\n <ul>\n <li>View your wallet account(s) and address(es)</li>\n <li>Read-only access to browse the public blockchain(s) you select</li>\n </ul>\n <Typography variant=\"subtitle1\" sx={{ textAlign: 'center' }}>\n You control what accounts to share and what blockchains to view. You can see or revoke access via your wallet's settings at anytime. View\n more on XYO's sovereign data philosophy\n {' '}\n <Link\n href=\"https://cointelegraph.com/innovation-circle/decentralization-and-sovereignty-debunking-our-approach-to-digital-sovereignty\"\n sx={{ fontWeight: 'bold' }}\n target=\"_blank\"\n >\n here\n </Link>\n .\n </Typography>\n </FlexCol>\n )\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Button, Dialog, DialogActions, DialogContent, DialogTitle, Typography,\n} from '@mui/material'\nimport { ConstrainedImage } from '@xylabs/react-crypto'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport type { ActiveProvider } from '../../lib/index.ts'\n\nexport interface RevokeWalletConnectionDialogProps extends DialogProps {\n activeProvider?: ActiveProvider\n}\n\nexport const RevokeWalletConnectionDialog: React.FC<RevokeWalletConnectionDialogProps> = ({ activeProvider, ...props }) => {\n return (\n <Dialog {...props}>\n <FlexRow\n sx={{\n gap: 2,\n justifyContent: 'start',\n pl: 2,\n }}\n >\n <ConstrainedImage src={activeProvider?.icon} constrainedValue=\"24px\" />\n <DialogTitle sx={{ pl: 0 }}>\n Revoke\n {activeProvider?.providerName}\n {' '}\n Access\n </DialogTitle>\n </FlexRow>\n <DialogContent>\n <Typography>\n Revoking access to your wallet must be done from the wallet's browser extension. Wallets grant access to specific domains please\n consult\n {' '}\n {activeProvider?.providerName}\n 's documentation on how to revoke access to this website:\n </Typography>\n <Typography>{globalThis.location.origin}</Typography>\n </DialogContent>\n <DialogActions>\n <Button variant=\"contained\" onClick={() => props.onClose?.({}, 'escapeKeyDown')}>\n Close\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import type { TableHeadCell } from '@xyo-network/react-table'\n\nexport const WalletsTableHeadCells: TableHeadCell[] = [\n {\n disablePadding: false,\n id: 'wallet',\n label: 'Wallet',\n numeric: false,\n showOnMobile: true,\n },\n {\n disablePadding: false,\n id: 'chain',\n label: 'Chain',\n numeric: false,\n showOnMobile: true,\n },\n {\n disablePadding: false,\n id: 'accounts',\n label: 'Accounts',\n numeric: true,\n showOnMobile: true,\n },\n {\n disablePadding: false,\n id: 'actions',\n label: 'Actions',\n numeric: false,\n showOnMobile: true,\n },\n {\n disablePadding: false,\n id: 'enabled',\n label: 'Enabled',\n numeric: false,\n showOnMobile: true,\n },\n]\n","import {\n TableCell, Tooltip, Typography,\n} from '@mui/material'\nimport React from 'react'\n\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletsAccountsTableCell: React.FC<ConnectedWalletTableCellProps> = ({\n additionalAccounts,\n currentAccount,\n totalAccounts,\n tableCellProps,\n}) => {\n return (\n <TableCell {...tableCellProps}>\n <Tooltip\n sx={{ cursor: totalAccounts > 0 ? 'pointer' : 'auto' }}\n title={[...(currentAccount ?? []), ...(additionalAccounts ?? [])].map(address => (\n <p key={address}>{address}</p>\n ))}\n >\n <Typography>{totalAccounts}</Typography>\n </Tooltip>\n </TableCell>\n )\n}\n","import { Check, InfoOutlined } from '@mui/icons-material'\nimport {\n Button, IconButton, TableCell, Typography,\n} from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletsActionsTableCell: React.FC<ConnectedWalletTableCellProps> = ({\n connected, onConnect, onRevoke, tableCellProps,\n}) => {\n return (\n <TableCell {...tableCellProps}>\n <FlexRow\n sx={{\n gap: 2,\n justifyContent: 'start',\n }}\n >\n {connected\n ? (\n <Typography sx={{ display: 'inline-flex', gap: 0.5 }}>\n <Check />\n Connected\n </Typography>\n )\n : (\n <Button variant=\"contained\" onClick={onConnect}>\n Connect\n </Button>\n )}\n {connected\n ? (\n <IconButton onClick={onRevoke}>\n <InfoOutlined />\n </IconButton>\n )\n : null}\n </FlexRow>\n </TableCell>\n )\n}\n","import { TableCell } from '@mui/material'\nimport React from 'react'\n\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletsChainNameTableCell: React.FC<ConnectedWalletTableCellProps> = ({ chainName, tableCellProps }) => {\n return <TableCell {...tableCellProps}>{chainName}</TableCell>\n}\n","import { Switch, TableCell } from '@mui/material'\nimport { isDefined } from '@xylabs/sdk-js'\nimport type { ChangeEvent } from 'react'\nimport React, { useMemo } from 'react'\n\nimport { useEnabledWallets } from '../../../../hooks/index.ts'\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletState: React.FC<ConnectedWalletTableCellProps> = ({\n connected, walletRdns, tableCellProps,\n}) => {\n const {\n disableWallet, enableWallet, wallets,\n } = useEnabledWallets()\n\n const enabled = useMemo(() => (isDefined(walletRdns) ? wallets[walletRdns]?.enabled : false), [wallets, walletRdns])\n\n const handleClick = (event: ChangeEvent<HTMLInputElement>) => {\n const checked = event.target?.checked\n if (isDefined(walletRdns)) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n checked ? enableWallet?.(walletRdns) : disableWallet?.(walletRdns)\n }\n }\n return (\n <TableCell {...tableCellProps}>\n <Switch disabled={!connected} checked={connected && enabled} onChange={handleClick} />\n </TableCell>\n )\n}\n","import { TableCell, useTheme } from '@mui/material'\nimport { ConstrainedImage } from '@xylabs/react-crypto'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\n\nexport const ConnectedWalletsWalletTableCell: React.FC<ConnectedWalletTableCellProps> = ({\n icon, walletName, tableCellProps,\n}) => {\n const theme = useTheme()\n\n return (\n <TableCell {...tableCellProps}>\n <FlexRow\n sx={{\n gap: 2,\n justifyContent: 'start',\n }}\n >\n <ConstrainedImage constrainedValue={theme.spacing(4)} src={icon} />\n {walletName}\n </FlexRow>\n </TableCell>\n )\n}\n","import type { ComponentType } from 'react'\n\nimport { ConnectedWalletsAccountsTableCell } from './Accounts.tsx'\nimport { ConnectedWalletsActionsTableCell } from './Actions.tsx'\nimport { ConnectedWalletsChainNameTableCell } from './ChainName.tsx'\nimport type { ConnectedWalletTableCellProps } from './lib/index.ts'\nimport { ConnectedWalletState } from './State.tsx'\nimport { ConnectedWalletsWalletTableCell } from './Wallet.tsx'\n\nexport const ConnectedWalletTableCells: ComponentType<ConnectedWalletTableCellProps>[] = [\n ConnectedWalletsWalletTableCell,\n ConnectedWalletsChainNameTableCell,\n ConnectedWalletsAccountsTableCell,\n ConnectedWalletsActionsTableCell,\n ConnectedWalletState,\n]\n","import type { TableProps } from '@mui/material'\nimport {\n Table, TableBody, TableCell, TableHead, TableRow,\n} from '@mui/material'\nimport type { EIP6963Connector } from '@xylabs/react-crypto'\nimport React, { useState } from 'react'\n\nimport { ConnectWalletDialog, RevokeWalletConnectionDialog } from '../dialogs/index.ts'\nimport type { ActiveProvider } from '../lib/index.ts'\nimport { WalletsTableHeadCells } from '../lib/index.ts'\nimport { WalletConnectionsTableRow } from './ConnectedWalletsTableRow.tsx'\nimport { useActiveProviderDialogState } from './hooks/index.ts'\n\nexport interface ConnectedWalletsTableProps extends TableProps {\n ignoreConnectDialog?: boolean\n onIgnoreConnectDialog?: (checked: boolean) => void\n wallets?: EIP6963Connector[]\n}\n\nexport const ConnectedWalletsTable: React.FC<ConnectedWalletsTableProps> = ({\n ignoreConnectDialog, onIgnoreConnectDialog, wallets, ...props\n}) => {\n const [activeProvider, setActiveProvider] = useState<ActiveProvider>()\n const [showConnect, onSetActiveProviderConnect, onConnectClose] = useActiveProviderDialogState(setActiveProvider)\n const [showRevoke, onSetActiveProviderRevoke, onRevokeClose] = useActiveProviderDialogState(setActiveProvider)\n\n return (\n <>\n <Table {...props}>\n <TableHead>\n <TableRow>\n {WalletsTableHeadCells.map(({\n disablePadding, id, label, align, width,\n }) => (\n <TableCell\n align={align}\n key={id}\n sx={{\n padding: disablePadding ? 'none' : 'normal',\n width: width ?? 'auto',\n }}\n >\n {label}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {(wallets ?? []).map(wallet => (\n <WalletConnectionsTableRow\n ignoreConnectDialog={ignoreConnectDialog}\n key={wallet.providerInfo?.rdns}\n onConnectClick={onSetActiveProviderConnect}\n onRevoke={onSetActiveProviderRevoke}\n wallet={wallet}\n />\n ))}\n </TableBody>\n </Table>\n <RevokeWalletConnectionDialog open={showRevoke} onClose={onRevokeClose} activeProvider={activeProvider} />\n <ConnectWalletDialog\n activeProvider={activeProvider}\n onClose={onConnectClose}\n open={showConnect}\n onIgnoreConnectDialog={onIgnoreConnectDialog}\n />\n </>\n )\n}\n","import type { TableRowProps } from '@mui/material'\nimport { TableRow } from '@mui/material'\nimport type { EthWalletConnectorBase } from '@xylabs/react-crypto'\nimport { useEthWallet } from '@xylabs/react-crypto'\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { ActiveProvider } from '../lib/index.ts'\nimport { ConnectedWalletTableCells } from './cells/index.ts'\n\nexport interface WalletConnectionsTableRowProps extends TableRowProps {\n ignoreConnectDialog?: boolean\n onConnectClick?: (activeProvider: ActiveProvider) => void\n onRevoke?: (activeProvider: ActiveProvider) => void\n wallet: EthWalletConnectorBase\n}\n\nexport const WalletConnectionsTableRow: React.FC<WalletConnectionsTableRowProps> = ({\n ignoreConnectDialog,\n onConnectClick,\n onRevoke,\n wallet,\n ...props\n}) => {\n const {\n currentAccount: currentAccountFromWallet, additionalAccounts, chainName, connectWallet, providerInfo,\n } = useEthWallet(wallet)\n\n const currentAccount = currentAccountFromWallet?.toString() ? [currentAccountFromWallet.toString()] : []\n const totalAccounts = (additionalAccounts?.length ?? 0) + (currentAccount?.length ?? 0)\n const connected = !!(currentAccount?.length)\n const {\n icon, name, rdns,\n } = useMemo(() => providerInfo ?? {\n icon: undefined, name: undefined, rdns: undefined,\n }, [providerInfo])\n\n const activeProvider = useMemo<ActiveProvider>(\n () => ({\n connectWallet,\n icon,\n providerName: name,\n }),\n [connectWallet, icon, name],\n )\n\n const onRevokeLocal = useCallback(() => {\n onRevoke?.(activeProvider)\n }, [activeProvider, onRevoke])\n\n const onConnectLocal = useCallback(async () => {\n if (ignoreConnectDialog) {\n await connectWallet?.()\n } else {\n onConnectClick?.(activeProvider)\n }\n }, [activeProvider, connectWallet, ignoreConnectDialog, onConnectClick])\n\n return (\n <TableRow {...props}>\n {Object.entries(ConnectedWalletTableCells).map(([cellName, Cell]) => (\n <Cell\n key={cellName}\n additionalAccounts={additionalAccounts}\n chainName={chainName}\n connected={connected}\n currentAccount={currentAccount}\n icon={icon}\n onConnect={onConnectLocal}\n onRevoke={onRevokeLocal}\n totalAccounts={totalAccounts}\n walletName={name}\n walletRdns={rdns}\n />\n ))}\n </TableRow>\n )\n}\n","import type { Dispatch, SetStateAction } from 'react'\nimport { useState } from 'react'\n\nimport type { ActiveProvider } from '../../lib/index.ts'\n\nexport const useActiveProviderDialogState = (\n setActiveProvider: Dispatch<SetStateAction<ActiveProvider | undefined>>,\n): [boolean, (activeProvider: ActiveProvider) => void, () => void] => {\n const [show, setShow] = useState(false)\n const onSetActiveProvider = (activeProvider: ActiveProvider) => {\n setShow(true)\n setActiveProvider(activeProvider)\n }\n\n const onClose = () => {\n setShow(false)\n setActiveProvider({})\n }\n\n return [show, onSetActiveProvider, onClose]\n}\n"],"mappings":"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","names":["Typography","useTheme","FlexCol","useWalletDiscovery","useMemo","useWalletDiscovery","useMemo","jsx","jsxs","Typography","FlexCol","jsx","jsxs","jsx","jsxs","Button","Dialog","DialogActions","DialogContent","DialogTitle","Typography","ConstrainedImage","FlexRow","jsx","jsxs","Typography","jsx","Button","TableCell","Typography","FlexRow","jsx","jsxs","TableCell","jsx","TableCell","useMemo","jsx","useMemo","TableCell","TableCell","ConstrainedImage","FlexRow","jsx","jsxs","TableCell","TableRow","useState","useMemo","jsx","useMemo","jsx","jsxs","useState","TableRow","TableCell","jsx","jsxs","useTheme","FlexCol","Typography"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-connected-accounts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xyo",
|
|
@@ -41,25 +41,25 @@
|
|
|
41
41
|
"README.md"
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@xyo-network/react-table": "~
|
|
44
|
+
"@xyo-network/react-table": "~8.0.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@mui/icons-material": "
|
|
48
|
-
"@mui/material": "
|
|
47
|
+
"@mui/icons-material": "~9.0",
|
|
48
|
+
"@mui/material": "~9.0",
|
|
49
49
|
"@opentelemetry/api": "^1.9.1",
|
|
50
50
|
"@opentelemetry/sdk-trace-base": "^2.7.1",
|
|
51
51
|
"@storybook/react-vite": "~10.3.6",
|
|
52
52
|
"@types/react": "^19.2.14",
|
|
53
53
|
"@xylabs/pixel": "~5.1.2",
|
|
54
|
-
"@xylabs/react-crypto": "~
|
|
55
|
-
"@xylabs/react-flexbox": "~
|
|
56
|
-
"@xylabs/react-hooks": "~
|
|
57
|
-
"@xylabs/react-shared": "~
|
|
54
|
+
"@xylabs/react-crypto": "~8.0",
|
|
55
|
+
"@xylabs/react-flexbox": "~8.0",
|
|
56
|
+
"@xylabs/react-hooks": "~8.0",
|
|
57
|
+
"@xylabs/react-shared": "~8.0",
|
|
58
58
|
"@xylabs/sdk-js": "^5.1.2",
|
|
59
|
-
"@xylabs/toolchain": "~7.13.
|
|
60
|
-
"@xylabs/tsconfig": "^7.13.
|
|
61
|
-
"@xylabs/tsconfig-dom": "^7.13.
|
|
62
|
-
"@xylabs/tsconfig-react": "~7.13.
|
|
59
|
+
"@xylabs/toolchain": "~7.13.22",
|
|
60
|
+
"@xylabs/tsconfig": "^7.13.22",
|
|
61
|
+
"@xylabs/tsconfig-dom": "^7.13.22",
|
|
62
|
+
"@xylabs/tsconfig-react": "~7.13.22",
|
|
63
63
|
"async-mutex": "^0.5.0",
|
|
64
64
|
"bn.js": "^5.2.3",
|
|
65
65
|
"bowser": "^2.14.1",
|
|
@@ -80,20 +80,20 @@
|
|
|
80
80
|
"spark-md5": "~3.0.2",
|
|
81
81
|
"storybook": "^10.3.6",
|
|
82
82
|
"typescript": "^5.9.3",
|
|
83
|
-
"viem": "~2.48.
|
|
84
|
-
"vite": "^8.0.
|
|
83
|
+
"viem": "~2.48.11",
|
|
84
|
+
"vite": "^8.0.11",
|
|
85
85
|
"zod": "^4.4.3"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
|
-
"@mui/icons-material": "
|
|
89
|
-
"@mui/material": "
|
|
88
|
+
"@mui/icons-material": "~9.0",
|
|
89
|
+
"@mui/material": "~9.0",
|
|
90
90
|
"@opentelemetry/api": "^1.9",
|
|
91
91
|
"@opentelemetry/sdk-trace-base": "^2.7",
|
|
92
92
|
"@xylabs/pixel": "~5.1",
|
|
93
|
-
"@xylabs/react-crypto": "~
|
|
94
|
-
"@xylabs/react-flexbox": "~
|
|
95
|
-
"@xylabs/react-hooks": "~
|
|
96
|
-
"@xylabs/react-shared": "~
|
|
93
|
+
"@xylabs/react-crypto": "~8.0",
|
|
94
|
+
"@xylabs/react-flexbox": "~8.0",
|
|
95
|
+
"@xylabs/react-hooks": "~8.0",
|
|
96
|
+
"@xylabs/react-shared": "~8.0",
|
|
97
97
|
"@xylabs/sdk-js": "^5.1",
|
|
98
98
|
"async-mutex": "^0.5",
|
|
99
99
|
"bn.js": "^5.2",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"react-dom": "^19.2",
|
|
113
113
|
"react-router-dom": "^7.15",
|
|
114
114
|
"spark-md5": "~3.0",
|
|
115
|
+
"typescript": "^5.9",
|
|
115
116
|
"viem": "~2.48",
|
|
116
117
|
"zod": "^4.4"
|
|
117
118
|
},
|