@provablehq/aleo-wallet-adaptor-react-ui 0.3.0-alpha.3 → 1.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/index.js +47 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -304,6 +304,8 @@ var ProvableLogo = () => {
|
|
|
304
304
|
|
|
305
305
|
// src/WalletModal.tsx
|
|
306
306
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
307
|
+
var INSTALL_REDIRECT_MAX_AGE_MS = 10 * 60 * 1e3;
|
|
308
|
+
var WALLET_INSTALL_REDIRECT_KEY = "aleo-wallet-adaptor-install-redirect-timestamp";
|
|
307
309
|
var WalletModal = ({
|
|
308
310
|
className = "",
|
|
309
311
|
container = "body",
|
|
@@ -341,6 +343,22 @@ var WalletModal = ({
|
|
|
341
343
|
) || // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
342
344
|
otherWallets[0];
|
|
343
345
|
}, [installedWallets, wallets, otherWallets]);
|
|
346
|
+
(0, import_react4.useEffect)(() => {
|
|
347
|
+
function handleVisibilityChange() {
|
|
348
|
+
if (document.visibilityState !== "visible") return;
|
|
349
|
+
try {
|
|
350
|
+
const raw = sessionStorage.getItem(WALLET_INSTALL_REDIRECT_KEY);
|
|
351
|
+
if (!raw) return;
|
|
352
|
+
const timestamp = Number(raw);
|
|
353
|
+
if (Number.isNaN(timestamp) || Date.now() - timestamp > INSTALL_REDIRECT_MAX_AGE_MS) return;
|
|
354
|
+
sessionStorage.removeItem(WALLET_INSTALL_REDIRECT_KEY);
|
|
355
|
+
window.location.reload();
|
|
356
|
+
} catch {
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
document.addEventListener("visibilitychange", handleVisibilityChange);
|
|
360
|
+
return () => document.removeEventListener("visibilitychange", handleVisibilityChange);
|
|
361
|
+
}, []);
|
|
344
362
|
const hideModal = (0, import_react4.useCallback)(() => {
|
|
345
363
|
setFadeIn(false);
|
|
346
364
|
setTimeout(() => setVisible(false), 150);
|
|
@@ -359,6 +377,22 @@ var WalletModal = ({
|
|
|
359
377
|
},
|
|
360
378
|
[selectWallet, handleClose]
|
|
361
379
|
);
|
|
380
|
+
const handleNotInstalledWalletClick = (0, import_react4.useCallback)(
|
|
381
|
+
(event, walletName) => {
|
|
382
|
+
event.preventDefault();
|
|
383
|
+
const wallet2 = wallets.find(
|
|
384
|
+
(wallet3) => wallet3.adapter.name === walletName
|
|
385
|
+
);
|
|
386
|
+
if (wallet2) {
|
|
387
|
+
try {
|
|
388
|
+
sessionStorage.setItem(WALLET_INSTALL_REDIRECT_KEY, String(Date.now()));
|
|
389
|
+
} catch {
|
|
390
|
+
}
|
|
391
|
+
window.open(wallet2.adapter.url, "_blank");
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
[wallets]
|
|
395
|
+
);
|
|
362
396
|
const handleCollapseClick = (0, import_react4.useCallback)(() => setExpanded(!expanded), [expanded]);
|
|
363
397
|
const handleTabKey = (0, import_react4.useCallback)(
|
|
364
398
|
(event) => {
|
|
@@ -471,7 +505,7 @@ var WalletModal = ({
|
|
|
471
505
|
{
|
|
472
506
|
type: "button",
|
|
473
507
|
className: "wallet-adapter-modal-middle-button",
|
|
474
|
-
onClick: (event) =>
|
|
508
|
+
onClick: (event) => handleNotInstalledWalletClick(event, getStartedWallet?.adapter.name),
|
|
475
509
|
children: "Get started"
|
|
476
510
|
}
|
|
477
511
|
) }),
|
|
@@ -504,7 +538,7 @@ var WalletModal = ({
|
|
|
504
538
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Collapse, { expanded, id: "wallet-adapter-modal-collapse", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { className: "wallet-adapter-modal-list", children: otherWallets.map((wallet2) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
505
539
|
WalletListItem,
|
|
506
540
|
{
|
|
507
|
-
handleClick: (event) =>
|
|
541
|
+
handleClick: (event) => handleNotInstalledWalletClick(event, wallet2.adapter.name),
|
|
508
542
|
tabIndex: expanded ? 0 : -1,
|
|
509
543
|
wallet: wallet2
|
|
510
544
|
},
|
|
@@ -669,7 +703,7 @@ var GenericWalletIcon = () => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
|
669
703
|
// src/WalletMultiButton.tsx
|
|
670
704
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
671
705
|
var WalletMultiButton = ({ children, ...props }) => {
|
|
672
|
-
const { address, wallet, disconnect } = (0, import_aleo_wallet_adaptor_react4.useWallet)();
|
|
706
|
+
const { address, wallet, disconnect, connected } = (0, import_aleo_wallet_adaptor_react4.useWallet)();
|
|
673
707
|
const { setVisible } = useWalletModal();
|
|
674
708
|
const [copied, setCopied] = (0, import_react8.useState)(false);
|
|
675
709
|
const [active, setActive] = (0, import_react8.useState)(false);
|
|
@@ -677,9 +711,11 @@ var WalletMultiButton = ({ children, ...props }) => {
|
|
|
677
711
|
const base58 = (0, import_react8.useMemo)(() => address?.toString(), [address]);
|
|
678
712
|
const content = (0, import_react8.useMemo)(() => {
|
|
679
713
|
if (children) return children;
|
|
680
|
-
if (!wallet
|
|
681
|
-
return base58.slice(0, 4) + ".." + base58.slice(-4);
|
|
682
|
-
|
|
714
|
+
if (!wallet) return null;
|
|
715
|
+
if (base58) return base58.slice(0, 4) + ".." + base58.slice(-4);
|
|
716
|
+
if (connected) return "Connected";
|
|
717
|
+
return null;
|
|
718
|
+
}, [children, wallet, base58, connected]);
|
|
683
719
|
const copyAddress = (0, import_react8.useCallback)(async () => {
|
|
684
720
|
if (base58) {
|
|
685
721
|
await navigator.clipboard.writeText(base58);
|
|
@@ -715,7 +751,9 @@ var WalletMultiButton = ({ children, ...props }) => {
|
|
|
715
751
|
};
|
|
716
752
|
}, [ref, closeDropdown]);
|
|
717
753
|
if (!wallet) return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(WalletModalButton, { ...props, children });
|
|
718
|
-
if (!
|
|
754
|
+
if (!connected && !base58) {
|
|
755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(WalletConnectButton, { ...props, children });
|
|
756
|
+
}
|
|
719
757
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "wallet-adapter-dropdown", children: [
|
|
720
758
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
721
759
|
Button,
|
|
@@ -737,13 +775,13 @@ var WalletMultiButton = ({ children, ...props }) => {
|
|
|
737
775
|
ref,
|
|
738
776
|
role: "menu",
|
|
739
777
|
children: [
|
|
740
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { onClick: copyAddress, className: "wallet-adapter-dropdown-list-item", role: "menuitem", children: copied ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
778
|
+
base58 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { onClick: copyAddress, className: "wallet-adapter-dropdown-list-item", role: "menuitem", children: copied ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
741
779
|
"Copied",
|
|
742
780
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CheckIcon, {})
|
|
743
781
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
744
782
|
"Copy address ",
|
|
745
783
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CopyIcon, {})
|
|
746
|
-
] }) }),
|
|
784
|
+
] }) }) : null,
|
|
747
785
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("li", { onClick: openModal, className: "wallet-adapter-dropdown-list-item", role: "menuitem", children: [
|
|
748
786
|
"Change wallet ",
|
|
749
787
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(GenericWalletIcon, {})
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/useWalletModal.tsx","../src/WalletConnectButton.tsx","../src/Button.tsx","../src/WalletIcon.tsx","../src/WalletModal.tsx","../src/Collapse.tsx","../src/WalletListItem.tsx","../src/ProvableLogo.tsx","../src/WalletModalButton.tsx","../src/WalletModalProvider.tsx","../src/WalletDisconnectButton.tsx","../src/WalletMultiButton.tsx","../src/icons.tsx"],"sourcesContent":["export * from './useWalletModal';\nexport * from './WalletConnectButton';\nexport * from './WalletModal';\nexport * from './WalletModalButton';\nexport * from './WalletModalProvider';\nexport * from './WalletDisconnectButton';\nexport * from './WalletIcon';\nexport * from './WalletMultiButton';\n","import { createContext, useContext } from 'react';\n\nexport interface WalletModalContextState {\n visible: boolean;\n setVisible: (open: boolean) => void;\n}\n\nconst DEFAULT_CONTEXT = {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setVisible(_open: boolean) {\n console.error(constructMissingProviderErrorMessage('call', 'setVisible'));\n },\n visible: false,\n};\nObject.defineProperty(DEFAULT_CONTEXT, 'visible', {\n get() {\n console.error(constructMissingProviderErrorMessage('read', 'visible'));\n return false;\n },\n});\n\nfunction constructMissingProviderErrorMessage(action: string, valueName: string) {\n return (\n 'You have tried to ' +\n `${action} \"${valueName}\"` +\n ' on a WalletModalContext without providing one.' +\n ' Make sure to render a WalletModalProvider' +\n ' as an ancestor of the component that uses ' +\n 'WalletModalContext'\n );\n}\n\nexport const WalletModalContext = createContext<WalletModalContextState>(\n DEFAULT_CONTEXT as WalletModalContextState,\n);\n\nexport function useWalletModal(): WalletModalContextState {\n return useContext(WalletModalContext);\n}\n","import type { FC, MouseEventHandler } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\nimport { Network } from '@provablehq/aleo-types';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport const WalletConnectButton: FC<ButtonProps> = ({\n children,\n disabled,\n onClick,\n network,\n ...props\n}) => {\n const { wallet, connect, connecting, connected } = useWallet();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n event => {\n if (onClick) onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented) connect(network || Network.TESTNET).catch(() => {});\n },\n [onClick, connect],\n );\n\n const content = useMemo(() => {\n if (children) return children;\n if (connecting) return 'Connecting ...';\n if (connected) return 'Connected';\n if (wallet) return 'Connect';\n return 'Connect Wallet';\n }, [children, connecting, connected, wallet]);\n\n return (\n <Button\n className=\"wallet-adapter-button-trigger\"\n disabled={disabled || !wallet || connecting || connected}\n startIcon={wallet ? <WalletIcon wallet={wallet} /> : undefined}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n};\n","import type { CSSProperties, FC, MouseEvent, PropsWithChildren, ReactElement } from 'react';\nimport { Network } from '@provablehq/aleo-types';\n\nexport type ButtonProps = PropsWithChildren<{\n className?: string;\n disabled?: boolean;\n network?: Network;\n endIcon?: ReactElement;\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n startIcon?: ReactElement;\n style?: CSSProperties;\n tabIndex?: number;\n}>;\n\nexport const Button: FC<ButtonProps> = props => {\n return (\n <button\n className={`wallet-adapter-button ${props.className || ''}`}\n disabled={props.disabled}\n style={props.style}\n onClick={props.onClick}\n tabIndex={props.tabIndex || 0}\n type=\"button\"\n >\n {props.startIcon && <i className=\"wallet-adapter-button-start-icon\">{props.startIcon}</i>}\n {props.children}\n {props.endIcon && <i className=\"wallet-adapter-button-end-icon\">{props.endIcon}</i>}\n </button>\n );\n};\n","import type { DetailedHTMLProps, FC, ImgHTMLAttributes } from 'react';\nimport { Wallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport interface WalletIconProps\n extends DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {\n wallet: Wallet | null;\n}\n\nexport const WalletIcon: FC<WalletIconProps> = ({ wallet, ...props }) => {\n return (\n wallet && (\n <img\n style={{ borderRadius: '22%' }}\n src={wallet.adapter.icon}\n alt={`${wallet.adapter.name} icon`}\n {...props}\n />\n )\n );\n};\n","import type { FC, MouseEvent } from 'react';\nimport { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Collapse } from './Collapse';\nimport { useWalletModal } from './useWalletModal';\nimport { WalletListItem } from './WalletListItem';\nimport { useWallet, Wallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { WalletName, WalletReadyState } from '@provablehq/aleo-wallet-standard';\nimport { Network } from '@provablehq/aleo-types';\nimport { ProvableLogo } from './ProvableLogo';\n\nexport interface WalletModalProps {\n className?: string;\n container?: string;\n network?: Network;\n}\n\nexport const WalletModal: FC<WalletModalProps> = ({\n className = '',\n container = 'body',\n network,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const { wallets, selectWallet, connect, wallet } = useWallet();\n const { setVisible } = useWalletModal();\n const [expanded, setExpanded] = useState(false);\n const [fadeIn, setFadeIn] = useState(false);\n const [portal, setPortal] = useState<Element | null>(null);\n\n const [installedWallets, otherWallets] = useMemo(() => {\n const installed: Wallet[] = [];\n const notDetected: Wallet[] = [];\n const loadable: Wallet[] = [];\n\n for (const wallet of wallets) {\n if (wallet.readyState === WalletReadyState.NOT_DETECTED) {\n notDetected.push(wallet);\n } else if (wallet.readyState === WalletReadyState.LOADABLE) {\n loadable.push(wallet);\n } else if (wallet.readyState === WalletReadyState.INSTALLED) {\n installed.push(wallet);\n }\n }\n\n return [installed, [...loadable, ...notDetected]];\n }, [wallets]);\n\n const getStartedWallet = useMemo(() => {\n return installedWallets.length\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n installedWallets[0]!\n : wallets.find((wallet: { adapter: { name: WalletName } }) =>\n wallet.adapter.name.toLowerCase().includes('shield'),\n ) ||\n wallets.find(\n (wallet: { readyState: WalletReadyState }) =>\n wallet.readyState === WalletReadyState.LOADABLE,\n ) ||\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n otherWallets[0]!;\n }, [installedWallets, wallets, otherWallets]);\n\n const hideModal = useCallback(() => {\n setFadeIn(false);\n setTimeout(() => setVisible(false), 150);\n }, [setVisible]);\n\n const handleClose = useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n hideModal();\n },\n [hideModal],\n );\n\n const handleWalletClick = useCallback(\n (event: MouseEvent, walletName: WalletName) => {\n selectWallet(walletName);\n handleClose(event);\n },\n [selectWallet, handleClose],\n );\n\n const handleCollapseClick = useCallback(() => setExpanded(!expanded), [expanded]);\n\n const handleTabKey = useCallback(\n (event: KeyboardEvent) => {\n const node = ref.current;\n if (!node) return;\n\n // here we query all focusable elements\n const focusableElements = node.querySelectorAll('button');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const firstElement = focusableElements[0]!;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lastElement = focusableElements[focusableElements.length - 1]!;\n\n if (event.shiftKey) {\n // if going backward by pressing tab and firstElement is active, shift focus to last focusable element\n if (document.activeElement === firstElement) {\n lastElement.focus();\n event.preventDefault();\n }\n } else {\n // if going forward by pressing tab and lastElement is active, shift focus to first focusable element\n if (document.activeElement === lastElement) {\n firstElement.focus();\n event.preventDefault();\n }\n }\n },\n [ref],\n );\n\n useLayoutEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n hideModal();\n } else if (event.key === 'Tab') {\n handleTabKey(event);\n }\n };\n\n // Get original overflow\n const { overflow } = window.getComputedStyle(document.body);\n // Hack to enable fade in animation after mount\n setTimeout(() => setFadeIn(true), 0);\n // Prevent scrolling on mount\n document.body.style.overflow = 'hidden';\n // Listen for keydown events\n window.addEventListener('keydown', handleKeyDown, false);\n\n return () => {\n // Re-enable scrolling when component unmounts\n document.body.style.overflow = overflow;\n window.removeEventListener('keydown', handleKeyDown, false);\n };\n }, [hideModal, handleTabKey]);\n\n useLayoutEffect(() => setPortal(document.querySelector(container)), [container]);\n\n useLayoutEffect(() => {\n if (wallet) {\n connect(network || Network.TESTNET).catch(e => {\n console.error({ e });\n });\n }\n }, [wallet]);\n\n return (\n portal &&\n createPortal(\n <div\n aria-labelledby=\"wallet-adapter-modal-title\"\n aria-modal=\"true\"\n className={`wallet-adapter-modal ${fadeIn && 'wallet-adapter-modal-fade-in'} ${className}`}\n ref={ref}\n role=\"dialog\"\n >\n <div className=\"wallet-adapter-modal-container\">\n <div className=\"wallet-adapter-modal-wrapper\">\n <button onClick={handleClose} className=\"wallet-adapter-modal-button-close\">\n <svg width=\"14\" height=\"14\">\n <path d=\"M14 12.461 8.3 6.772l5.234-5.233L12.006 0 6.772 5.234 1.54 0 0 1.539l5.234 5.233L0 12.006l1.539 1.528L6.772 8.3l5.69 5.7L14 12.461z\" />\n </svg>\n </button>\n {installedWallets.length ? (\n <>\n <h1 className=\"wallet-adapter-modal-title\">Connect an Aleo wallet</h1>\n <ul className=\"wallet-adapter-modal-list\">\n {installedWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event =>\n handleWalletClick(event, wallet.adapter.name as WalletName)\n }\n wallet={wallet}\n />\n ))}\n {otherWallets.length ? (\n <Collapse expanded={expanded} id=\"wallet-adapter-modal-collapse\">\n {otherWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event => handleWalletClick(event, wallet.adapter.name)}\n tabIndex={expanded ? 0 : -1}\n wallet={wallet}\n />\n ))}\n </Collapse>\n ) : null}\n </ul>\n {otherWallets.length ? (\n <button\n className=\"wallet-adapter-modal-list-more\"\n onClick={handleCollapseClick}\n tabIndex={0}\n >\n <span>{expanded ? 'Less ' : 'More '}options</span>\n <svg\n width=\"13\"\n height=\"7\"\n viewBox=\"0 0 13 7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''}`}\n >\n <path d=\"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" />\n </svg>\n </button>\n ) : null}\n </>\n ) : (\n <>\n <h1 className=\"wallet-adapter-modal-title\">Get an Aleo wallet to continue</h1>\n <div className=\"wallet-adapter-modal-middle\">\n <button\n type=\"button\"\n className=\"wallet-adapter-modal-middle-button\"\n onClick={event => handleWalletClick(event, getStartedWallet.adapter.name)}\n >\n Get started\n </button>\n </div>\n {otherWallets.length ? (\n <>\n <button\n className=\"wallet-adapter-modal-list-more\"\n onClick={handleCollapseClick}\n tabIndex={0}\n >\n <span>{expanded ? 'Hide ' : 'View other '}options</span>\n <svg\n width=\"13\"\n height=\"7\"\n viewBox=\"0 0 13 7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${\n expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''\n }`}\n >\n <path d=\"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" />\n </svg>\n </button>\n <Collapse expanded={expanded} id=\"wallet-adapter-modal-collapse\">\n <ul className=\"wallet-adapter-modal-list\">\n {otherWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event => handleWalletClick(event, wallet.adapter.name)}\n tabIndex={expanded ? 0 : -1}\n wallet={wallet}\n />\n ))}\n </ul>\n </Collapse>\n </>\n ) : null}\n </>\n )}\n <a\n className=\"wallet-adapter-modal-footer\"\n href=\"https://provable.com/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <ProvableLogo />\n </a>\n </div>\n </div>\n <div className=\"wallet-adapter-modal-overlay\" onMouseDown={handleClose} />\n </div>,\n portal,\n )\n );\n};\n","import type { FC, PropsWithChildren } from 'react';\nimport { useLayoutEffect, useRef } from 'react';\n\nexport type CollapseProps = PropsWithChildren<{\n expanded: boolean;\n id: string;\n}>;\n\nexport const Collapse: FC<CollapseProps> = ({ id, children, expanded = false }) => {\n const ref = useRef<HTMLDivElement>(null);\n const instant = useRef(true);\n const transition = 'height 250ms ease-out';\n\n const openCollapse = () => {\n const node = ref.current;\n if (!node) return;\n\n requestAnimationFrame(() => {\n node.style.height = node.scrollHeight + 'px';\n });\n };\n\n const closeCollapse = () => {\n const node = ref.current;\n if (!node) return;\n\n requestAnimationFrame(() => {\n node.style.height = node.offsetHeight + 'px';\n node.style.overflow = 'hidden';\n requestAnimationFrame(() => {\n node.style.height = '0';\n });\n });\n };\n\n useLayoutEffect(() => {\n if (expanded) {\n openCollapse();\n } else {\n closeCollapse();\n }\n }, [expanded]);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n function handleComplete() {\n if (!node) return;\n\n node.style.overflow = expanded ? 'initial' : 'hidden';\n if (expanded) {\n node.style.height = 'auto';\n }\n }\n\n function handleTransitionEnd(event: TransitionEvent) {\n if (node && event.target === node && event.propertyName === 'height') {\n handleComplete();\n }\n }\n\n if (instant.current) {\n handleComplete();\n instant.current = false;\n }\n\n node.addEventListener('transitionend', handleTransitionEnd);\n return () => node.removeEventListener('transitionend', handleTransitionEnd);\n }, [expanded]);\n\n return (\n <div\n className=\"wallet-adapter-collapse\"\n id={id}\n ref={ref}\n role=\"region\"\n style={{ height: 0, transition: instant.current ? undefined : transition }}\n >\n {children}\n </div>\n );\n};\n","import type { FC, MouseEventHandler } from 'react';\nimport { WalletReadyState } from '@provablehq/aleo-wallet-standard';\nimport { Wallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\n\nexport interface WalletListItemProps {\n handleClick: MouseEventHandler<HTMLButtonElement>;\n tabIndex?: number;\n wallet: Wallet;\n}\n\nexport const WalletListItem: FC<WalletListItemProps> = ({ handleClick, tabIndex, wallet }) => {\n return (\n <li>\n <Button onClick={handleClick} startIcon={<WalletIcon wallet={wallet} />} tabIndex={tabIndex}>\n {wallet.adapter.name}\n {wallet.readyState === WalletReadyState.INSTALLED && <span>Installed</span>}\n </Button>\n </li>\n );\n};\n","export const ProvableLogo = () => {\n return (\n <svg\n width=\"115\"\n height=\"18\"\n viewBox=\"0 0 115 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g opacity=\"0.88\">\n <path\n d=\"M0 3.89265C0 2.29508 1.29508 1 2.89265 1H13.1073C14.7048 1 15.9999 2.29508 15.9999 3.89265V14.1074C15.9999 15.7049 14.7049 17 13.1073 17H10.4926C10.0937 17 9.7702 16.6766 9.7702 16.2776V8.67463C9.7702 7.87665 9.12331 7.22976 8.32533 7.22976H0.722439C0.323447 7.22976 0 6.90631 0 6.50732L0 3.89265Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.22973 12.2151C6.22973 11.4171 5.58284 10.7702 4.78485 10.7702H0.722439C0.323447 10.7702 0 11.0937 0 11.4927L0 14.1074C0 15.7049 1.29508 17 2.89265 17H5.50729C5.90628 17 6.22973 16.6766 6.22973 16.2776V12.2151Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M108.725 17.272C105.098 17.272 102.695 14.7107 102.695 10.88C102.695 7.04935 105.098 4.48802 108.725 4.48802C112.85 4.48802 115.275 7.52535 114.686 11.968H106.118C106.39 13.6453 107.319 14.5973 108.793 14.5973C110.039 14.5973 110.901 14.0533 111.263 13.056H114.663C114.006 15.7533 111.898 17.272 108.725 17.272ZM106.118 9.70135H111.467C111.195 8.04668 110.266 7.16268 108.793 7.16268C107.342 7.16268 106.413 8.06935 106.118 9.70135Z\"\n fill=\"currentColor\"\n />\n <path d=\"M98.3672 17V0.317363L101.699 0.0453644V17H98.3672Z\" fill=\"currentColor\" />\n <path\n d=\"M84.9072 17V0.317363L88.2392 0.0453644V6.50535H88.3752C89.1232 5.21336 90.3246 4.55602 92.0245 4.55602C95.2432 4.55602 97.3512 7.07202 97.3512 10.88C97.3512 14.688 95.2432 17.2267 92.0245 17.2267C90.3246 17.2267 89.1232 16.5693 88.3752 15.2547H88.2392V17H84.9072ZM91.0952 7.32135C89.3726 7.32135 88.2392 8.72668 88.2392 10.88C88.2392 13.056 89.3726 14.4613 91.0952 14.4613C92.8405 14.4613 93.9512 13.056 93.9512 10.88C93.9512 8.72668 92.8405 7.32135 91.0952 7.32135Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M76.3143 17.1813C73.9117 17.1813 72.3477 15.6853 72.3477 13.3733C72.3477 11.4013 73.685 10.1093 76.0423 9.83735L79.2836 9.47468C79.8956 9.38401 80.1903 9.11201 80.1903 8.61335C80.1903 7.68402 79.4876 7.11735 78.3543 7.11735C77.221 7.11735 76.4503 7.68402 76.3143 8.61335H72.8917C73.141 6.05202 75.249 4.48802 78.3996 4.48802C81.641 4.48802 83.5223 6.09735 83.5223 8.88535V17H80.1903V15.4133H80.0543C79.4423 16.456 77.9236 17.1813 76.3143 17.1813ZM77.4023 14.5973C78.8303 14.5973 80.1903 13.3507 80.1903 11.9V11.4693C80.0316 11.5827 79.8503 11.628 79.6236 11.6507L77.1983 11.9227C76.3143 12.0133 75.8157 12.4893 75.8157 13.2373C75.8157 14.076 76.4276 14.5973 77.4023 14.5973Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M64.509 17L60.1797 4.76003H63.5117L66.549 13.94H66.685L69.6997 4.76003H72.873L68.5437 17H64.509Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M54.3613 17.272C50.6666 17.272 48.1279 14.6653 48.1279 10.88C48.1279 7.09468 50.6666 4.48802 54.3613 4.48802C58.0559 4.48802 60.5946 7.09468 60.5946 10.88C60.5946 14.6653 58.0559 17.272 54.3613 17.272ZM54.3613 14.5067C56.1519 14.5067 57.2399 13.1467 57.2399 10.88C57.2399 8.61335 56.1519 7.25335 54.3613 7.25335C52.5706 7.25335 51.4826 8.61335 51.4826 10.88C51.4826 13.1467 52.5706 14.5067 54.3613 14.5067Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M40.0801 17V4.76002H43.4121V6.23335H43.5481C43.9561 5.10002 44.8401 4.48802 46.1094 4.48802H47.8094L48.0814 7.93335H45.6561C44.2054 7.93335 43.4121 8.56802 43.4121 9.74668V17H40.0801Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M26.3848 17V0.99736H33.0261C36.6981 0.99736 39.0554 3.08269 39.0554 6.34668C39.0554 9.63334 36.6981 11.764 33.0261 11.764H29.8754V17H26.3848ZM33.0261 8.72668C34.5674 8.72668 35.5647 7.82002 35.5647 6.41468C35.5647 5.00935 34.5674 4.10269 33.0261 4.10269H29.8754V8.72668H33.0261Z\"\n fill=\"currentColor\"\n />\n </g>\n </svg>\n );\n};\n","import type { FC, MouseEvent } from 'react';\nimport { useCallback } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { useWalletModal } from './useWalletModal';\n\nexport const WalletModalButton: FC<ButtonProps> = ({\n children = 'Connect Wallet',\n onClick,\n ...props\n}) => {\n const { visible, setVisible } = useWalletModal();\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) setVisible(!visible);\n },\n [onClick, setVisible, visible],\n );\n\n return (\n <Button className=\"wallet-adapter-button-trigger\" onClick={handleClick} {...props}>\n {children}\n </Button>\n );\n};\n","import type { FC, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { WalletModalContext } from './useWalletModal';\nimport type { WalletModalProps } from './WalletModal';\nimport { WalletModal } from './WalletModal';\n\nexport interface WalletModalProviderProps extends WalletModalProps {\n children: ReactNode;\n}\n\nexport const WalletModalProvider: FC<WalletModalProviderProps> = ({ children, ...props }) => {\n const [visible, setVisible] = useState(false);\n\n return (\n <WalletModalContext.Provider\n value={{\n visible,\n setVisible,\n }}\n >\n {children}\n {visible && <WalletModal {...props} />}\n </WalletModalContext.Provider>\n );\n};\n","import type { FC, MouseEventHandler } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport const WalletDisconnectButton: FC<ButtonProps> = ({\n children,\n disabled,\n onClick,\n ...props\n}) => {\n const { wallet, disconnect, disconnecting } = useWallet();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n event => {\n if (onClick) onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented) disconnect().catch(() => {});\n },\n [onClick, disconnect],\n );\n\n const content = useMemo(() => {\n if (children) return children;\n if (disconnecting) return 'Disconnecting ...';\n if (wallet) return 'Disconnect';\n return 'Disconnect Wallet';\n }, [children, disconnecting, wallet]);\n\n return (\n <Button\n className=\"wallet-adapter-button-trigger\"\n disabled={disabled || !wallet}\n startIcon={wallet ? <WalletIcon wallet={wallet} /> : undefined}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n};\n","import type { FC } from 'react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { useWalletModal } from './useWalletModal';\nimport { WalletConnectButton } from './WalletConnectButton';\nimport { WalletIcon } from './WalletIcon';\nimport { WalletModalButton } from './WalletModalButton';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { CheckIcon, CopyIcon, GenericWalletIcon } from './icons';\n\nexport const WalletMultiButton: FC<ButtonProps> = ({ children, ...props }) => {\n const { address, wallet, disconnect } = useWallet();\n const { setVisible } = useWalletModal();\n const [copied, setCopied] = useState(false);\n const [active, setActive] = useState(false);\n const ref = useRef<HTMLUListElement>(null);\n\n const base58 = useMemo(() => address?.toString(), [address]);\n const content = useMemo(() => {\n if (children) return children;\n if (!wallet || !base58) return null;\n return base58.slice(0, 4) + '..' + base58.slice(-4);\n }, [children, wallet, base58]);\n\n const copyAddress = useCallback(async () => {\n if (base58) {\n await navigator.clipboard.writeText(base58);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n }, [base58]);\n\n const openDropdown = useCallback(() => {\n setActive(true);\n }, []);\n\n const closeDropdown = useCallback(() => {\n setActive(false);\n }, []);\n\n const openModal = useCallback(() => {\n setVisible(true);\n closeDropdown();\n }, [setVisible, closeDropdown]);\n\n const onDisconnect = useCallback(() => {\n disconnect();\n closeDropdown();\n }, [disconnect, closeDropdown]);\n\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n const node = ref.current;\n\n // Do nothing if clicking dropdown or its descendants\n if (!node || node.contains(event.target as Node)) return;\n\n closeDropdown();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, closeDropdown]);\n\n if (!wallet) return <WalletModalButton {...props}>{children}</WalletModalButton>;\n if (!base58) return <WalletConnectButton {...props}>{children}</WalletConnectButton>;\n\n return (\n <div className=\"wallet-adapter-dropdown\">\n <Button\n aria-expanded={active}\n className=\"wallet-adapter-button-trigger\"\n style={{ pointerEvents: active ? 'none' : 'auto', ...props.style }}\n onClick={openDropdown}\n startIcon={<WalletIcon wallet={wallet} />}\n {...props}\n >\n {content}\n </Button>\n <ul\n aria-label=\"dropdown-list\"\n className={`wallet-adapter-dropdown-list ${active && 'wallet-adapter-dropdown-list-active'}`}\n ref={ref}\n role=\"menu\"\n >\n <li onClick={copyAddress} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n {copied ? (\n <>\n Copied\n <CheckIcon />\n </>\n ) : (\n <>\n Copy address <CopyIcon />\n </>\n )}\n </li>\n <li onClick={openModal} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n Change wallet <GenericWalletIcon />\n </li>\n <li onClick={onDisconnect} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n Disconnect\n </li>\n </ul>\n </div>\n );\n};\n","export const CopyIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n);\n\nexport const CheckIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n);\n\nexport const GenericWalletIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\" />\n <path d=\"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\" />\n </svg>\n);\n"],"mappings":"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","names":["import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_react","import_jsx_runtime","import_jsx_runtime","import_aleo_wallet_adaptor_react","import_aleo_wallet_standard","import_aleo_types","import_jsx_runtime","import_jsx_runtime","wallet","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_aleo_wallet_adaptor_react","import_jsx_runtime","import_react","import_aleo_wallet_adaptor_react","import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/useWalletModal.tsx","../src/WalletConnectButton.tsx","../src/Button.tsx","../src/WalletIcon.tsx","../src/WalletModal.tsx","../src/Collapse.tsx","../src/WalletListItem.tsx","../src/ProvableLogo.tsx","../src/WalletModalButton.tsx","../src/WalletModalProvider.tsx","../src/WalletDisconnectButton.tsx","../src/WalletMultiButton.tsx","../src/icons.tsx"],"sourcesContent":["export * from './useWalletModal';\nexport * from './WalletConnectButton';\nexport * from './WalletModal';\nexport * from './WalletModalButton';\nexport * from './WalletModalProvider';\nexport * from './WalletDisconnectButton';\nexport * from './WalletIcon';\nexport * from './WalletMultiButton';\n","import { createContext, useContext } from 'react';\n\nexport interface WalletModalContextState {\n visible: boolean;\n setVisible: (open: boolean) => void;\n}\n\nconst DEFAULT_CONTEXT = {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setVisible(_open: boolean) {\n console.error(constructMissingProviderErrorMessage('call', 'setVisible'));\n },\n visible: false,\n};\nObject.defineProperty(DEFAULT_CONTEXT, 'visible', {\n get() {\n console.error(constructMissingProviderErrorMessage('read', 'visible'));\n return false;\n },\n});\n\nfunction constructMissingProviderErrorMessage(action: string, valueName: string) {\n return (\n 'You have tried to ' +\n `${action} \"${valueName}\"` +\n ' on a WalletModalContext without providing one.' +\n ' Make sure to render a WalletModalProvider' +\n ' as an ancestor of the component that uses ' +\n 'WalletModalContext'\n );\n}\n\nexport const WalletModalContext = createContext<WalletModalContextState>(\n DEFAULT_CONTEXT as WalletModalContextState,\n);\n\nexport function useWalletModal(): WalletModalContextState {\n return useContext(WalletModalContext);\n}\n","import type { FC, MouseEventHandler } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\nimport { Network } from '@provablehq/aleo-types';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport const WalletConnectButton: FC<ButtonProps> = ({\n children,\n disabled,\n onClick,\n network,\n ...props\n}) => {\n const { wallet, connect, connecting, connected } = useWallet();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n event => {\n if (onClick) onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented) connect(network || Network.TESTNET).catch(() => {});\n },\n [onClick, connect],\n );\n\n const content = useMemo(() => {\n if (children) return children;\n if (connecting) return 'Connecting ...';\n if (connected) return 'Connected';\n if (wallet) return 'Connect';\n return 'Connect Wallet';\n }, [children, connecting, connected, wallet]);\n\n return (\n <Button\n className=\"wallet-adapter-button-trigger\"\n disabled={disabled || !wallet || connecting || connected}\n startIcon={wallet ? <WalletIcon wallet={wallet} /> : undefined}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n};\n","import type { CSSProperties, FC, MouseEvent, PropsWithChildren, ReactElement } from 'react';\nimport { Network } from '@provablehq/aleo-types';\n\nexport type ButtonProps = PropsWithChildren<{\n className?: string;\n disabled?: boolean;\n network?: Network;\n endIcon?: ReactElement;\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n startIcon?: ReactElement;\n style?: CSSProperties;\n tabIndex?: number;\n}>;\n\nexport const Button: FC<ButtonProps> = props => {\n return (\n <button\n className={`wallet-adapter-button ${props.className || ''}`}\n disabled={props.disabled}\n style={props.style}\n onClick={props.onClick}\n tabIndex={props.tabIndex || 0}\n type=\"button\"\n >\n {props.startIcon && <i className=\"wallet-adapter-button-start-icon\">{props.startIcon}</i>}\n {props.children}\n {props.endIcon && <i className=\"wallet-adapter-button-end-icon\">{props.endIcon}</i>}\n </button>\n );\n};\n","import type { DetailedHTMLProps, FC, ImgHTMLAttributes } from 'react';\nimport { Wallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport interface WalletIconProps\n extends DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {\n wallet: Wallet | null;\n}\n\nexport const WalletIcon: FC<WalletIconProps> = ({ wallet, ...props }) => {\n return (\n wallet && (\n <img\n style={{ borderRadius: '22%' }}\n src={wallet.adapter.icon}\n alt={`${wallet.adapter.name} icon`}\n {...props}\n />\n )\n );\n};\n","import type { FC, MouseEvent } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Collapse } from './Collapse';\nimport { useWalletModal } from './useWalletModal';\nimport { WalletListItem } from './WalletListItem';\nimport { useWallet, Wallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { WalletName, WalletReadyState } from '@provablehq/aleo-wallet-standard';\nimport { Network } from '@provablehq/aleo-types';\nimport { ProvableLogo } from './ProvableLogo';\n\nconst INSTALL_REDIRECT_MAX_AGE_MS = 10 * 60 * 1000; // 10 minutes\nconst WALLET_INSTALL_REDIRECT_KEY = 'aleo-wallet-adaptor-install-redirect-timestamp';\n\nexport interface WalletModalProps {\n className?: string;\n container?: string;\n network?: Network;\n}\n\nexport const WalletModal: FC<WalletModalProps> = ({\n className = '',\n container = 'body',\n network,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const { wallets, selectWallet, connect, wallet } = useWallet();\n const { setVisible } = useWalletModal();\n const [expanded, setExpanded] = useState(false);\n const [fadeIn, setFadeIn] = useState(false);\n const [portal, setPortal] = useState<Element | null>(null);\n\n const [installedWallets, otherWallets] = useMemo(() => {\n const installed: Wallet[] = [];\n const notDetected: Wallet[] = [];\n const loadable: Wallet[] = [];\n\n for (const wallet of wallets) {\n if (wallet.readyState === WalletReadyState.NOT_DETECTED) {\n notDetected.push(wallet);\n } else if (wallet.readyState === WalletReadyState.LOADABLE) {\n loadable.push(wallet);\n } else if (wallet.readyState === WalletReadyState.INSTALLED) {\n installed.push(wallet);\n }\n }\n\n return [installed, [...loadable, ...notDetected]];\n }, [wallets]);\n\n const getStartedWallet = useMemo(() => {\n return installedWallets.length\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n installedWallets[0]!\n : wallets.find((wallet: { adapter: { name: WalletName } }) =>\n wallet.adapter.name.toLowerCase().includes('shield'),\n ) ||\n wallets.find(\n (wallet: { readyState: WalletReadyState }) =>\n wallet.readyState === WalletReadyState.LOADABLE,\n ) ||\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n otherWallets[0]!;\n }, [installedWallets, wallets, otherWallets]);\n\n // Refresh page when user returns from being redirected to a wallet install page\n useEffect(() => {\n function handleVisibilityChange() {\n if (document.visibilityState !== 'visible') return;\n try {\n const raw = sessionStorage.getItem(WALLET_INSTALL_REDIRECT_KEY);\n if (!raw) return;\n const timestamp = Number(raw);\n if (Number.isNaN(timestamp) || Date.now() - timestamp > INSTALL_REDIRECT_MAX_AGE_MS) return;\n sessionStorage.removeItem(WALLET_INSTALL_REDIRECT_KEY);\n window.location.reload();\n } catch {\n // ignore sessionStorage errors\n }\n }\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n return () => document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, []);\n\n const hideModal = useCallback(() => {\n setFadeIn(false);\n setTimeout(() => setVisible(false), 150);\n }, [setVisible]);\n\n const handleClose = useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n hideModal();\n },\n [hideModal],\n );\n\n const handleWalletClick = useCallback(\n (event: MouseEvent, walletName: WalletName) => {\n selectWallet(walletName);\n handleClose(event);\n },\n [selectWallet, handleClose],\n );\n\n const handleNotInstalledWalletClick = useCallback(\n (event: MouseEvent, walletName: WalletName) => {\n event.preventDefault();\n const wallet = wallets.find(\n (wallet: { adapter: { name: WalletName } }) => wallet.adapter.name === walletName,\n );\n if (wallet) {\n try {\n // Set a key in sessionStorage to refresh the page when user returns from being redirected to a wallet install page\n sessionStorage.setItem(WALLET_INSTALL_REDIRECT_KEY, String(Date.now()));\n } catch {\n // ignore sessionStorage errors\n }\n\n // Redirect to the wallet install page\n window.open(wallet.adapter.url, '_blank');\n }\n },\n [wallets],\n );\n\n const handleCollapseClick = useCallback(() => setExpanded(!expanded), [expanded]);\n\n const handleTabKey = useCallback(\n (event: KeyboardEvent) => {\n const node = ref.current;\n if (!node) return;\n\n // here we query all focusable elements\n const focusableElements = node.querySelectorAll('button');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const firstElement = focusableElements[0]!;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lastElement = focusableElements[focusableElements.length - 1]!;\n\n if (event.shiftKey) {\n // if going backward by pressing tab and firstElement is active, shift focus to last focusable element\n if (document.activeElement === firstElement) {\n lastElement.focus();\n event.preventDefault();\n }\n } else {\n // if going forward by pressing tab and lastElement is active, shift focus to first focusable element\n if (document.activeElement === lastElement) {\n firstElement.focus();\n event.preventDefault();\n }\n }\n },\n [ref],\n );\n\n useLayoutEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n hideModal();\n } else if (event.key === 'Tab') {\n handleTabKey(event);\n }\n };\n\n // Get original overflow\n const { overflow } = window.getComputedStyle(document.body);\n // Hack to enable fade in animation after mount\n setTimeout(() => setFadeIn(true), 0);\n // Prevent scrolling on mount\n document.body.style.overflow = 'hidden';\n // Listen for keydown events\n window.addEventListener('keydown', handleKeyDown, false);\n\n return () => {\n // Re-enable scrolling when component unmounts\n document.body.style.overflow = overflow;\n window.removeEventListener('keydown', handleKeyDown, false);\n };\n }, [hideModal, handleTabKey]);\n\n useLayoutEffect(() => setPortal(document.querySelector(container)), [container]);\n\n useLayoutEffect(() => {\n if (wallet) {\n connect(network || Network.TESTNET).catch(e => {\n console.error({ e });\n });\n }\n }, [wallet]);\n\n return (\n portal &&\n createPortal(\n <div\n aria-labelledby=\"wallet-adapter-modal-title\"\n aria-modal=\"true\"\n className={`wallet-adapter-modal ${fadeIn && 'wallet-adapter-modal-fade-in'} ${className}`}\n ref={ref}\n role=\"dialog\"\n >\n <div className=\"wallet-adapter-modal-container\">\n <div className=\"wallet-adapter-modal-wrapper\">\n <button onClick={handleClose} className=\"wallet-adapter-modal-button-close\">\n <svg width=\"14\" height=\"14\">\n <path d=\"M14 12.461 8.3 6.772l5.234-5.233L12.006 0 6.772 5.234 1.54 0 0 1.539l5.234 5.233L0 12.006l1.539 1.528L6.772 8.3l5.69 5.7L14 12.461z\" />\n </svg>\n </button>\n {installedWallets.length ? (\n <>\n <h1 className=\"wallet-adapter-modal-title\">Connect an Aleo wallet</h1>\n <ul className=\"wallet-adapter-modal-list\">\n {installedWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event =>\n handleWalletClick(event, wallet.adapter.name as WalletName)\n }\n wallet={wallet}\n />\n ))}\n {otherWallets.length ? (\n <Collapse expanded={expanded} id=\"wallet-adapter-modal-collapse\">\n {otherWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event => handleWalletClick(event, wallet.adapter.name)}\n tabIndex={expanded ? 0 : -1}\n wallet={wallet}\n />\n ))}\n </Collapse>\n ) : null}\n </ul>\n {otherWallets.length ? (\n <button\n className=\"wallet-adapter-modal-list-more\"\n onClick={handleCollapseClick}\n tabIndex={0}\n >\n <span>{expanded ? 'Less ' : 'More '}options</span>\n <svg\n width=\"13\"\n height=\"7\"\n viewBox=\"0 0 13 7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''}`}\n >\n <path d=\"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" />\n </svg>\n </button>\n ) : null}\n </>\n ) : (\n <>\n <h1 className=\"wallet-adapter-modal-title\">Get an Aleo wallet to continue</h1>\n <div className=\"wallet-adapter-modal-middle\">\n <button\n type=\"button\"\n className=\"wallet-adapter-modal-middle-button\"\n onClick={event =>\n handleNotInstalledWalletClick(event, getStartedWallet?.adapter.name)\n }\n >\n Get started\n </button>\n </div>\n {otherWallets.length ? (\n <>\n <button\n className=\"wallet-adapter-modal-list-more\"\n onClick={handleCollapseClick}\n tabIndex={0}\n >\n <span>{expanded ? 'Hide ' : 'View other '}options</span>\n <svg\n width=\"13\"\n height=\"7\"\n viewBox=\"0 0 13 7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${\n expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''\n }`}\n >\n <path d=\"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" />\n </svg>\n </button>\n <Collapse expanded={expanded} id=\"wallet-adapter-modal-collapse\">\n <ul className=\"wallet-adapter-modal-list\">\n {otherWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event =>\n handleNotInstalledWalletClick(event, wallet.adapter.name)\n }\n tabIndex={expanded ? 0 : -1}\n wallet={wallet}\n />\n ))}\n </ul>\n </Collapse>\n </>\n ) : null}\n </>\n )}\n <a\n className=\"wallet-adapter-modal-footer\"\n href=\"https://provable.com/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <ProvableLogo />\n </a>\n </div>\n </div>\n <div className=\"wallet-adapter-modal-overlay\" onMouseDown={handleClose} />\n </div>,\n portal,\n )\n );\n};\n","import type { FC, PropsWithChildren } from 'react';\nimport { useLayoutEffect, useRef } from 'react';\n\nexport type CollapseProps = PropsWithChildren<{\n expanded: boolean;\n id: string;\n}>;\n\nexport const Collapse: FC<CollapseProps> = ({ id, children, expanded = false }) => {\n const ref = useRef<HTMLDivElement>(null);\n const instant = useRef(true);\n const transition = 'height 250ms ease-out';\n\n const openCollapse = () => {\n const node = ref.current;\n if (!node) return;\n\n requestAnimationFrame(() => {\n node.style.height = node.scrollHeight + 'px';\n });\n };\n\n const closeCollapse = () => {\n const node = ref.current;\n if (!node) return;\n\n requestAnimationFrame(() => {\n node.style.height = node.offsetHeight + 'px';\n node.style.overflow = 'hidden';\n requestAnimationFrame(() => {\n node.style.height = '0';\n });\n });\n };\n\n useLayoutEffect(() => {\n if (expanded) {\n openCollapse();\n } else {\n closeCollapse();\n }\n }, [expanded]);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n function handleComplete() {\n if (!node) return;\n\n node.style.overflow = expanded ? 'initial' : 'hidden';\n if (expanded) {\n node.style.height = 'auto';\n }\n }\n\n function handleTransitionEnd(event: TransitionEvent) {\n if (node && event.target === node && event.propertyName === 'height') {\n handleComplete();\n }\n }\n\n if (instant.current) {\n handleComplete();\n instant.current = false;\n }\n\n node.addEventListener('transitionend', handleTransitionEnd);\n return () => node.removeEventListener('transitionend', handleTransitionEnd);\n }, [expanded]);\n\n return (\n <div\n className=\"wallet-adapter-collapse\"\n id={id}\n ref={ref}\n role=\"region\"\n style={{ height: 0, transition: instant.current ? undefined : transition }}\n >\n {children}\n </div>\n );\n};\n","import type { FC, MouseEventHandler } from 'react';\nimport { WalletReadyState } from '@provablehq/aleo-wallet-standard';\nimport { Wallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\n\nexport interface WalletListItemProps {\n handleClick: MouseEventHandler<HTMLButtonElement>;\n tabIndex?: number;\n wallet: Wallet;\n}\n\nexport const WalletListItem: FC<WalletListItemProps> = ({ handleClick, tabIndex, wallet }) => {\n return (\n <li>\n <Button onClick={handleClick} startIcon={<WalletIcon wallet={wallet} />} tabIndex={tabIndex}>\n {wallet.adapter.name}\n {wallet.readyState === WalletReadyState.INSTALLED && <span>Installed</span>}\n </Button>\n </li>\n );\n};\n","export const ProvableLogo = () => {\n return (\n <svg\n width=\"115\"\n height=\"18\"\n viewBox=\"0 0 115 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g opacity=\"0.88\">\n <path\n d=\"M0 3.89265C0 2.29508 1.29508 1 2.89265 1H13.1073C14.7048 1 15.9999 2.29508 15.9999 3.89265V14.1074C15.9999 15.7049 14.7049 17 13.1073 17H10.4926C10.0937 17 9.7702 16.6766 9.7702 16.2776V8.67463C9.7702 7.87665 9.12331 7.22976 8.32533 7.22976H0.722439C0.323447 7.22976 0 6.90631 0 6.50732L0 3.89265Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.22973 12.2151C6.22973 11.4171 5.58284 10.7702 4.78485 10.7702H0.722439C0.323447 10.7702 0 11.0937 0 11.4927L0 14.1074C0 15.7049 1.29508 17 2.89265 17H5.50729C5.90628 17 6.22973 16.6766 6.22973 16.2776V12.2151Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M108.725 17.272C105.098 17.272 102.695 14.7107 102.695 10.88C102.695 7.04935 105.098 4.48802 108.725 4.48802C112.85 4.48802 115.275 7.52535 114.686 11.968H106.118C106.39 13.6453 107.319 14.5973 108.793 14.5973C110.039 14.5973 110.901 14.0533 111.263 13.056H114.663C114.006 15.7533 111.898 17.272 108.725 17.272ZM106.118 9.70135H111.467C111.195 8.04668 110.266 7.16268 108.793 7.16268C107.342 7.16268 106.413 8.06935 106.118 9.70135Z\"\n fill=\"currentColor\"\n />\n <path d=\"M98.3672 17V0.317363L101.699 0.0453644V17H98.3672Z\" fill=\"currentColor\" />\n <path\n d=\"M84.9072 17V0.317363L88.2392 0.0453644V6.50535H88.3752C89.1232 5.21336 90.3246 4.55602 92.0245 4.55602C95.2432 4.55602 97.3512 7.07202 97.3512 10.88C97.3512 14.688 95.2432 17.2267 92.0245 17.2267C90.3246 17.2267 89.1232 16.5693 88.3752 15.2547H88.2392V17H84.9072ZM91.0952 7.32135C89.3726 7.32135 88.2392 8.72668 88.2392 10.88C88.2392 13.056 89.3726 14.4613 91.0952 14.4613C92.8405 14.4613 93.9512 13.056 93.9512 10.88C93.9512 8.72668 92.8405 7.32135 91.0952 7.32135Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M76.3143 17.1813C73.9117 17.1813 72.3477 15.6853 72.3477 13.3733C72.3477 11.4013 73.685 10.1093 76.0423 9.83735L79.2836 9.47468C79.8956 9.38401 80.1903 9.11201 80.1903 8.61335C80.1903 7.68402 79.4876 7.11735 78.3543 7.11735C77.221 7.11735 76.4503 7.68402 76.3143 8.61335H72.8917C73.141 6.05202 75.249 4.48802 78.3996 4.48802C81.641 4.48802 83.5223 6.09735 83.5223 8.88535V17H80.1903V15.4133H80.0543C79.4423 16.456 77.9236 17.1813 76.3143 17.1813ZM77.4023 14.5973C78.8303 14.5973 80.1903 13.3507 80.1903 11.9V11.4693C80.0316 11.5827 79.8503 11.628 79.6236 11.6507L77.1983 11.9227C76.3143 12.0133 75.8157 12.4893 75.8157 13.2373C75.8157 14.076 76.4276 14.5973 77.4023 14.5973Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M64.509 17L60.1797 4.76003H63.5117L66.549 13.94H66.685L69.6997 4.76003H72.873L68.5437 17H64.509Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M54.3613 17.272C50.6666 17.272 48.1279 14.6653 48.1279 10.88C48.1279 7.09468 50.6666 4.48802 54.3613 4.48802C58.0559 4.48802 60.5946 7.09468 60.5946 10.88C60.5946 14.6653 58.0559 17.272 54.3613 17.272ZM54.3613 14.5067C56.1519 14.5067 57.2399 13.1467 57.2399 10.88C57.2399 8.61335 56.1519 7.25335 54.3613 7.25335C52.5706 7.25335 51.4826 8.61335 51.4826 10.88C51.4826 13.1467 52.5706 14.5067 54.3613 14.5067Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M40.0801 17V4.76002H43.4121V6.23335H43.5481C43.9561 5.10002 44.8401 4.48802 46.1094 4.48802H47.8094L48.0814 7.93335H45.6561C44.2054 7.93335 43.4121 8.56802 43.4121 9.74668V17H40.0801Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M26.3848 17V0.99736H33.0261C36.6981 0.99736 39.0554 3.08269 39.0554 6.34668C39.0554 9.63334 36.6981 11.764 33.0261 11.764H29.8754V17H26.3848ZM33.0261 8.72668C34.5674 8.72668 35.5647 7.82002 35.5647 6.41468C35.5647 5.00935 34.5674 4.10269 33.0261 4.10269H29.8754V8.72668H33.0261Z\"\n fill=\"currentColor\"\n />\n </g>\n </svg>\n );\n};\n","import type { FC, MouseEvent } from 'react';\nimport { useCallback } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { useWalletModal } from './useWalletModal';\n\nexport const WalletModalButton: FC<ButtonProps> = ({\n children = 'Connect Wallet',\n onClick,\n ...props\n}) => {\n const { visible, setVisible } = useWalletModal();\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) setVisible(!visible);\n },\n [onClick, setVisible, visible],\n );\n\n return (\n <Button className=\"wallet-adapter-button-trigger\" onClick={handleClick} {...props}>\n {children}\n </Button>\n );\n};\n","import type { FC, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { WalletModalContext } from './useWalletModal';\nimport type { WalletModalProps } from './WalletModal';\nimport { WalletModal } from './WalletModal';\n\nexport interface WalletModalProviderProps extends WalletModalProps {\n children: ReactNode;\n}\n\nexport const WalletModalProvider: FC<WalletModalProviderProps> = ({ children, ...props }) => {\n const [visible, setVisible] = useState(false);\n\n return (\n <WalletModalContext.Provider\n value={{\n visible,\n setVisible,\n }}\n >\n {children}\n {visible && <WalletModal {...props} />}\n </WalletModalContext.Provider>\n );\n};\n","import type { FC, MouseEventHandler } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport const WalletDisconnectButton: FC<ButtonProps> = ({\n children,\n disabled,\n onClick,\n ...props\n}) => {\n const { wallet, disconnect, disconnecting } = useWallet();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n event => {\n if (onClick) onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented) disconnect().catch(() => {});\n },\n [onClick, disconnect],\n );\n\n const content = useMemo(() => {\n if (children) return children;\n if (disconnecting) return 'Disconnecting ...';\n if (wallet) return 'Disconnect';\n return 'Disconnect Wallet';\n }, [children, disconnecting, wallet]);\n\n return (\n <Button\n className=\"wallet-adapter-button-trigger\"\n disabled={disabled || !wallet}\n startIcon={wallet ? <WalletIcon wallet={wallet} /> : undefined}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n};\n","import type { FC } from 'react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { useWalletModal } from './useWalletModal';\nimport { WalletConnectButton } from './WalletConnectButton';\nimport { WalletIcon } from './WalletIcon';\nimport { WalletModalButton } from './WalletModalButton';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { CheckIcon, CopyIcon, GenericWalletIcon } from './icons';\n\nexport const WalletMultiButton: FC<ButtonProps> = ({ children, ...props }) => {\n const { address, wallet, disconnect, connected } = useWallet();\n const { setVisible } = useWalletModal();\n const [copied, setCopied] = useState(false);\n const [active, setActive] = useState(false);\n const ref = useRef<HTMLUListElement>(null);\n\n const base58 = useMemo(() => address?.toString(), [address]);\n const content = useMemo(() => {\n if (children) return children;\n if (!wallet) return null;\n if (base58) return base58.slice(0, 4) + '..' + base58.slice(-4);\n if (connected) return 'Connected';\n return null;\n }, [children, wallet, base58, connected]);\n\n const copyAddress = useCallback(async () => {\n if (base58) {\n await navigator.clipboard.writeText(base58);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n }, [base58]);\n\n const openDropdown = useCallback(() => {\n setActive(true);\n }, []);\n\n const closeDropdown = useCallback(() => {\n setActive(false);\n }, []);\n\n const openModal = useCallback(() => {\n setVisible(true);\n closeDropdown();\n }, [setVisible, closeDropdown]);\n\n const onDisconnect = useCallback(() => {\n disconnect();\n closeDropdown();\n }, [disconnect, closeDropdown]);\n\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n const node = ref.current;\n\n // Do nothing if clicking dropdown or its descendants\n if (!node || node.contains(event.target as Node)) return;\n\n closeDropdown();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, closeDropdown]);\n\n if (!wallet) return <WalletModalButton {...props}>{children}</WalletModalButton>;\n if (!connected && !base58) {\n return <WalletConnectButton {...props}>{children}</WalletConnectButton>;\n }\n\n return (\n <div className=\"wallet-adapter-dropdown\">\n <Button\n aria-expanded={active}\n className=\"wallet-adapter-button-trigger\"\n style={{ pointerEvents: active ? 'none' : 'auto', ...props.style }}\n onClick={openDropdown}\n startIcon={<WalletIcon wallet={wallet} />}\n {...props}\n >\n {content}\n </Button>\n <ul\n aria-label=\"dropdown-list\"\n className={`wallet-adapter-dropdown-list ${active && 'wallet-adapter-dropdown-list-active'}`}\n ref={ref}\n role=\"menu\"\n >\n {base58 ? (\n <li onClick={copyAddress} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n {copied ? (\n <>\n Copied\n <CheckIcon />\n </>\n ) : (\n <>\n Copy address <CopyIcon />\n </>\n )}\n </li>\n ) : null}\n <li onClick={openModal} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n Change wallet <GenericWalletIcon />\n </li>\n <li onClick={onDisconnect} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n Disconnect\n </li>\n </ul>\n </div>\n );\n};\n","export const CopyIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n);\n\nexport const CheckIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n);\n\nexport const GenericWalletIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\" />\n <path d=\"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\" />\n </svg>\n);\n"],"mappings":"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","names":["import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_react","import_jsx_runtime","import_jsx_runtime","import_aleo_wallet_adaptor_react","import_aleo_wallet_standard","import_aleo_types","import_jsx_runtime","import_jsx_runtime","wallet","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_aleo_wallet_adaptor_react","import_jsx_runtime","import_react","import_aleo_wallet_adaptor_react","import_jsx_runtime","import_jsx_runtime"]}
|
package/dist/index.mjs
CHANGED
|
@@ -102,7 +102,7 @@ var WalletConnectButton = ({
|
|
|
102
102
|
};
|
|
103
103
|
|
|
104
104
|
// src/WalletModal.tsx
|
|
105
|
-
import { useCallback as useCallback2, useLayoutEffect as useLayoutEffect2, useMemo as useMemo2, useRef as useRef2, useState } from "react";
|
|
105
|
+
import { useCallback as useCallback2, useEffect, useLayoutEffect as useLayoutEffect2, useMemo as useMemo2, useRef as useRef2, useState } from "react";
|
|
106
106
|
import { createPortal } from "react-dom";
|
|
107
107
|
|
|
108
108
|
// src/Collapse.tsx
|
|
@@ -270,6 +270,8 @@ var ProvableLogo = () => {
|
|
|
270
270
|
|
|
271
271
|
// src/WalletModal.tsx
|
|
272
272
|
import { Fragment, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
273
|
+
var INSTALL_REDIRECT_MAX_AGE_MS = 10 * 60 * 1e3;
|
|
274
|
+
var WALLET_INSTALL_REDIRECT_KEY = "aleo-wallet-adaptor-install-redirect-timestamp";
|
|
273
275
|
var WalletModal = ({
|
|
274
276
|
className = "",
|
|
275
277
|
container = "body",
|
|
@@ -307,6 +309,22 @@ var WalletModal = ({
|
|
|
307
309
|
) || // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
308
310
|
otherWallets[0];
|
|
309
311
|
}, [installedWallets, wallets, otherWallets]);
|
|
312
|
+
useEffect(() => {
|
|
313
|
+
function handleVisibilityChange() {
|
|
314
|
+
if (document.visibilityState !== "visible") return;
|
|
315
|
+
try {
|
|
316
|
+
const raw = sessionStorage.getItem(WALLET_INSTALL_REDIRECT_KEY);
|
|
317
|
+
if (!raw) return;
|
|
318
|
+
const timestamp = Number(raw);
|
|
319
|
+
if (Number.isNaN(timestamp) || Date.now() - timestamp > INSTALL_REDIRECT_MAX_AGE_MS) return;
|
|
320
|
+
sessionStorage.removeItem(WALLET_INSTALL_REDIRECT_KEY);
|
|
321
|
+
window.location.reload();
|
|
322
|
+
} catch {
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
document.addEventListener("visibilitychange", handleVisibilityChange);
|
|
326
|
+
return () => document.removeEventListener("visibilitychange", handleVisibilityChange);
|
|
327
|
+
}, []);
|
|
310
328
|
const hideModal = useCallback2(() => {
|
|
311
329
|
setFadeIn(false);
|
|
312
330
|
setTimeout(() => setVisible(false), 150);
|
|
@@ -325,6 +343,22 @@ var WalletModal = ({
|
|
|
325
343
|
},
|
|
326
344
|
[selectWallet, handleClose]
|
|
327
345
|
);
|
|
346
|
+
const handleNotInstalledWalletClick = useCallback2(
|
|
347
|
+
(event, walletName) => {
|
|
348
|
+
event.preventDefault();
|
|
349
|
+
const wallet2 = wallets.find(
|
|
350
|
+
(wallet3) => wallet3.adapter.name === walletName
|
|
351
|
+
);
|
|
352
|
+
if (wallet2) {
|
|
353
|
+
try {
|
|
354
|
+
sessionStorage.setItem(WALLET_INSTALL_REDIRECT_KEY, String(Date.now()));
|
|
355
|
+
} catch {
|
|
356
|
+
}
|
|
357
|
+
window.open(wallet2.adapter.url, "_blank");
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
[wallets]
|
|
361
|
+
);
|
|
328
362
|
const handleCollapseClick = useCallback2(() => setExpanded(!expanded), [expanded]);
|
|
329
363
|
const handleTabKey = useCallback2(
|
|
330
364
|
(event) => {
|
|
@@ -437,7 +471,7 @@ var WalletModal = ({
|
|
|
437
471
|
{
|
|
438
472
|
type: "button",
|
|
439
473
|
className: "wallet-adapter-modal-middle-button",
|
|
440
|
-
onClick: (event) =>
|
|
474
|
+
onClick: (event) => handleNotInstalledWalletClick(event, getStartedWallet?.adapter.name),
|
|
441
475
|
children: "Get started"
|
|
442
476
|
}
|
|
443
477
|
) }),
|
|
@@ -470,7 +504,7 @@ var WalletModal = ({
|
|
|
470
504
|
/* @__PURE__ */ jsx7(Collapse, { expanded, id: "wallet-adapter-modal-collapse", children: /* @__PURE__ */ jsx7("ul", { className: "wallet-adapter-modal-list", children: otherWallets.map((wallet2) => /* @__PURE__ */ jsx7(
|
|
471
505
|
WalletListItem,
|
|
472
506
|
{
|
|
473
|
-
handleClick: (event) =>
|
|
507
|
+
handleClick: (event) => handleNotInstalledWalletClick(event, wallet2.adapter.name),
|
|
474
508
|
tabIndex: expanded ? 0 : -1,
|
|
475
509
|
wallet: wallet2
|
|
476
510
|
},
|
|
@@ -575,7 +609,7 @@ var WalletDisconnectButton = ({
|
|
|
575
609
|
};
|
|
576
610
|
|
|
577
611
|
// src/WalletMultiButton.tsx
|
|
578
|
-
import { useCallback as useCallback5, useEffect, useMemo as useMemo4, useRef as useRef3, useState as useState3 } from "react";
|
|
612
|
+
import { useCallback as useCallback5, useEffect as useEffect2, useMemo as useMemo4, useRef as useRef3, useState as useState3 } from "react";
|
|
579
613
|
import { useWallet as useWallet4 } from "@provablehq/aleo-wallet-adaptor-react";
|
|
580
614
|
|
|
581
615
|
// src/icons.tsx
|
|
@@ -635,7 +669,7 @@ var GenericWalletIcon = () => /* @__PURE__ */ jsxs6(
|
|
|
635
669
|
// src/WalletMultiButton.tsx
|
|
636
670
|
import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
637
671
|
var WalletMultiButton = ({ children, ...props }) => {
|
|
638
|
-
const { address, wallet, disconnect } = useWallet4();
|
|
672
|
+
const { address, wallet, disconnect, connected } = useWallet4();
|
|
639
673
|
const { setVisible } = useWalletModal();
|
|
640
674
|
const [copied, setCopied] = useState3(false);
|
|
641
675
|
const [active, setActive] = useState3(false);
|
|
@@ -643,9 +677,11 @@ var WalletMultiButton = ({ children, ...props }) => {
|
|
|
643
677
|
const base58 = useMemo4(() => address?.toString(), [address]);
|
|
644
678
|
const content = useMemo4(() => {
|
|
645
679
|
if (children) return children;
|
|
646
|
-
if (!wallet
|
|
647
|
-
return base58.slice(0, 4) + ".." + base58.slice(-4);
|
|
648
|
-
|
|
680
|
+
if (!wallet) return null;
|
|
681
|
+
if (base58) return base58.slice(0, 4) + ".." + base58.slice(-4);
|
|
682
|
+
if (connected) return "Connected";
|
|
683
|
+
return null;
|
|
684
|
+
}, [children, wallet, base58, connected]);
|
|
649
685
|
const copyAddress = useCallback5(async () => {
|
|
650
686
|
if (base58) {
|
|
651
687
|
await navigator.clipboard.writeText(base58);
|
|
@@ -667,7 +703,7 @@ var WalletMultiButton = ({ children, ...props }) => {
|
|
|
667
703
|
disconnect();
|
|
668
704
|
closeDropdown();
|
|
669
705
|
}, [disconnect, closeDropdown]);
|
|
670
|
-
|
|
706
|
+
useEffect2(() => {
|
|
671
707
|
const listener = (event) => {
|
|
672
708
|
const node = ref.current;
|
|
673
709
|
if (!node || node.contains(event.target)) return;
|
|
@@ -681,7 +717,9 @@ var WalletMultiButton = ({ children, ...props }) => {
|
|
|
681
717
|
};
|
|
682
718
|
}, [ref, closeDropdown]);
|
|
683
719
|
if (!wallet) return /* @__PURE__ */ jsx12(WalletModalButton, { ...props, children });
|
|
684
|
-
if (!base58)
|
|
720
|
+
if (!connected && !base58) {
|
|
721
|
+
return /* @__PURE__ */ jsx12(WalletConnectButton, { ...props, children });
|
|
722
|
+
}
|
|
685
723
|
return /* @__PURE__ */ jsxs7("div", { className: "wallet-adapter-dropdown", children: [
|
|
686
724
|
/* @__PURE__ */ jsx12(
|
|
687
725
|
Button,
|
|
@@ -703,13 +741,13 @@ var WalletMultiButton = ({ children, ...props }) => {
|
|
|
703
741
|
ref,
|
|
704
742
|
role: "menu",
|
|
705
743
|
children: [
|
|
706
|
-
/* @__PURE__ */ jsx12("li", { onClick: copyAddress, className: "wallet-adapter-dropdown-list-item", role: "menuitem", children: copied ? /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
744
|
+
base58 ? /* @__PURE__ */ jsx12("li", { onClick: copyAddress, className: "wallet-adapter-dropdown-list-item", role: "menuitem", children: copied ? /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
707
745
|
"Copied",
|
|
708
746
|
/* @__PURE__ */ jsx12(CheckIcon, {})
|
|
709
747
|
] }) : /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
710
748
|
"Copy address ",
|
|
711
749
|
/* @__PURE__ */ jsx12(CopyIcon, {})
|
|
712
|
-
] }) }),
|
|
750
|
+
] }) }) : null,
|
|
713
751
|
/* @__PURE__ */ jsxs7("li", { onClick: openModal, className: "wallet-adapter-dropdown-list-item", role: "menuitem", children: [
|
|
714
752
|
"Change wallet ",
|
|
715
753
|
/* @__PURE__ */ jsx12(GenericWalletIcon, {})
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/useWalletModal.tsx","../src/WalletConnectButton.tsx","../src/Button.tsx","../src/WalletIcon.tsx","../src/WalletModal.tsx","../src/Collapse.tsx","../src/WalletListItem.tsx","../src/ProvableLogo.tsx","../src/WalletModalButton.tsx","../src/WalletModalProvider.tsx","../src/WalletDisconnectButton.tsx","../src/WalletMultiButton.tsx","../src/icons.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface WalletModalContextState {\n visible: boolean;\n setVisible: (open: boolean) => void;\n}\n\nconst DEFAULT_CONTEXT = {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setVisible(_open: boolean) {\n console.error(constructMissingProviderErrorMessage('call', 'setVisible'));\n },\n visible: false,\n};\nObject.defineProperty(DEFAULT_CONTEXT, 'visible', {\n get() {\n console.error(constructMissingProviderErrorMessage('read', 'visible'));\n return false;\n },\n});\n\nfunction constructMissingProviderErrorMessage(action: string, valueName: string) {\n return (\n 'You have tried to ' +\n `${action} \"${valueName}\"` +\n ' on a WalletModalContext without providing one.' +\n ' Make sure to render a WalletModalProvider' +\n ' as an ancestor of the component that uses ' +\n 'WalletModalContext'\n );\n}\n\nexport const WalletModalContext = createContext<WalletModalContextState>(\n DEFAULT_CONTEXT as WalletModalContextState,\n);\n\nexport function useWalletModal(): WalletModalContextState {\n return useContext(WalletModalContext);\n}\n","import type { FC, MouseEventHandler } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\nimport { Network } from '@provablehq/aleo-types';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport const WalletConnectButton: FC<ButtonProps> = ({\n children,\n disabled,\n onClick,\n network,\n ...props\n}) => {\n const { wallet, connect, connecting, connected } = useWallet();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n event => {\n if (onClick) onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented) connect(network || Network.TESTNET).catch(() => {});\n },\n [onClick, connect],\n );\n\n const content = useMemo(() => {\n if (children) return children;\n if (connecting) return 'Connecting ...';\n if (connected) return 'Connected';\n if (wallet) return 'Connect';\n return 'Connect Wallet';\n }, [children, connecting, connected, wallet]);\n\n return (\n <Button\n className=\"wallet-adapter-button-trigger\"\n disabled={disabled || !wallet || connecting || connected}\n startIcon={wallet ? <WalletIcon wallet={wallet} /> : undefined}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n};\n","import type { CSSProperties, FC, MouseEvent, PropsWithChildren, ReactElement } from 'react';\nimport { Network } from '@provablehq/aleo-types';\n\nexport type ButtonProps = PropsWithChildren<{\n className?: string;\n disabled?: boolean;\n network?: Network;\n endIcon?: ReactElement;\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n startIcon?: ReactElement;\n style?: CSSProperties;\n tabIndex?: number;\n}>;\n\nexport const Button: FC<ButtonProps> = props => {\n return (\n <button\n className={`wallet-adapter-button ${props.className || ''}`}\n disabled={props.disabled}\n style={props.style}\n onClick={props.onClick}\n tabIndex={props.tabIndex || 0}\n type=\"button\"\n >\n {props.startIcon && <i className=\"wallet-adapter-button-start-icon\">{props.startIcon}</i>}\n {props.children}\n {props.endIcon && <i className=\"wallet-adapter-button-end-icon\">{props.endIcon}</i>}\n </button>\n );\n};\n","import type { DetailedHTMLProps, FC, ImgHTMLAttributes } from 'react';\nimport { Wallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport interface WalletIconProps\n extends DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {\n wallet: Wallet | null;\n}\n\nexport const WalletIcon: FC<WalletIconProps> = ({ wallet, ...props }) => {\n return (\n wallet && (\n <img\n style={{ borderRadius: '22%' }}\n src={wallet.adapter.icon}\n alt={`${wallet.adapter.name} icon`}\n {...props}\n />\n )\n );\n};\n","import type { FC, MouseEvent } from 'react';\nimport { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Collapse } from './Collapse';\nimport { useWalletModal } from './useWalletModal';\nimport { WalletListItem } from './WalletListItem';\nimport { useWallet, Wallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { WalletName, WalletReadyState } from '@provablehq/aleo-wallet-standard';\nimport { Network } from '@provablehq/aleo-types';\nimport { ProvableLogo } from './ProvableLogo';\n\nexport interface WalletModalProps {\n className?: string;\n container?: string;\n network?: Network;\n}\n\nexport const WalletModal: FC<WalletModalProps> = ({\n className = '',\n container = 'body',\n network,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const { wallets, selectWallet, connect, wallet } = useWallet();\n const { setVisible } = useWalletModal();\n const [expanded, setExpanded] = useState(false);\n const [fadeIn, setFadeIn] = useState(false);\n const [portal, setPortal] = useState<Element | null>(null);\n\n const [installedWallets, otherWallets] = useMemo(() => {\n const installed: Wallet[] = [];\n const notDetected: Wallet[] = [];\n const loadable: Wallet[] = [];\n\n for (const wallet of wallets) {\n if (wallet.readyState === WalletReadyState.NOT_DETECTED) {\n notDetected.push(wallet);\n } else if (wallet.readyState === WalletReadyState.LOADABLE) {\n loadable.push(wallet);\n } else if (wallet.readyState === WalletReadyState.INSTALLED) {\n installed.push(wallet);\n }\n }\n\n return [installed, [...loadable, ...notDetected]];\n }, [wallets]);\n\n const getStartedWallet = useMemo(() => {\n return installedWallets.length\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n installedWallets[0]!\n : wallets.find((wallet: { adapter: { name: WalletName } }) =>\n wallet.adapter.name.toLowerCase().includes('shield'),\n ) ||\n wallets.find(\n (wallet: { readyState: WalletReadyState }) =>\n wallet.readyState === WalletReadyState.LOADABLE,\n ) ||\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n otherWallets[0]!;\n }, [installedWallets, wallets, otherWallets]);\n\n const hideModal = useCallback(() => {\n setFadeIn(false);\n setTimeout(() => setVisible(false), 150);\n }, [setVisible]);\n\n const handleClose = useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n hideModal();\n },\n [hideModal],\n );\n\n const handleWalletClick = useCallback(\n (event: MouseEvent, walletName: WalletName) => {\n selectWallet(walletName);\n handleClose(event);\n },\n [selectWallet, handleClose],\n );\n\n const handleCollapseClick = useCallback(() => setExpanded(!expanded), [expanded]);\n\n const handleTabKey = useCallback(\n (event: KeyboardEvent) => {\n const node = ref.current;\n if (!node) return;\n\n // here we query all focusable elements\n const focusableElements = node.querySelectorAll('button');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const firstElement = focusableElements[0]!;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lastElement = focusableElements[focusableElements.length - 1]!;\n\n if (event.shiftKey) {\n // if going backward by pressing tab and firstElement is active, shift focus to last focusable element\n if (document.activeElement === firstElement) {\n lastElement.focus();\n event.preventDefault();\n }\n } else {\n // if going forward by pressing tab and lastElement is active, shift focus to first focusable element\n if (document.activeElement === lastElement) {\n firstElement.focus();\n event.preventDefault();\n }\n }\n },\n [ref],\n );\n\n useLayoutEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n hideModal();\n } else if (event.key === 'Tab') {\n handleTabKey(event);\n }\n };\n\n // Get original overflow\n const { overflow } = window.getComputedStyle(document.body);\n // Hack to enable fade in animation after mount\n setTimeout(() => setFadeIn(true), 0);\n // Prevent scrolling on mount\n document.body.style.overflow = 'hidden';\n // Listen for keydown events\n window.addEventListener('keydown', handleKeyDown, false);\n\n return () => {\n // Re-enable scrolling when component unmounts\n document.body.style.overflow = overflow;\n window.removeEventListener('keydown', handleKeyDown, false);\n };\n }, [hideModal, handleTabKey]);\n\n useLayoutEffect(() => setPortal(document.querySelector(container)), [container]);\n\n useLayoutEffect(() => {\n if (wallet) {\n connect(network || Network.TESTNET).catch(e => {\n console.error({ e });\n });\n }\n }, [wallet]);\n\n return (\n portal &&\n createPortal(\n <div\n aria-labelledby=\"wallet-adapter-modal-title\"\n aria-modal=\"true\"\n className={`wallet-adapter-modal ${fadeIn && 'wallet-adapter-modal-fade-in'} ${className}`}\n ref={ref}\n role=\"dialog\"\n >\n <div className=\"wallet-adapter-modal-container\">\n <div className=\"wallet-adapter-modal-wrapper\">\n <button onClick={handleClose} className=\"wallet-adapter-modal-button-close\">\n <svg width=\"14\" height=\"14\">\n <path d=\"M14 12.461 8.3 6.772l5.234-5.233L12.006 0 6.772 5.234 1.54 0 0 1.539l5.234 5.233L0 12.006l1.539 1.528L6.772 8.3l5.69 5.7L14 12.461z\" />\n </svg>\n </button>\n {installedWallets.length ? (\n <>\n <h1 className=\"wallet-adapter-modal-title\">Connect an Aleo wallet</h1>\n <ul className=\"wallet-adapter-modal-list\">\n {installedWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event =>\n handleWalletClick(event, wallet.adapter.name as WalletName)\n }\n wallet={wallet}\n />\n ))}\n {otherWallets.length ? (\n <Collapse expanded={expanded} id=\"wallet-adapter-modal-collapse\">\n {otherWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event => handleWalletClick(event, wallet.adapter.name)}\n tabIndex={expanded ? 0 : -1}\n wallet={wallet}\n />\n ))}\n </Collapse>\n ) : null}\n </ul>\n {otherWallets.length ? (\n <button\n className=\"wallet-adapter-modal-list-more\"\n onClick={handleCollapseClick}\n tabIndex={0}\n >\n <span>{expanded ? 'Less ' : 'More '}options</span>\n <svg\n width=\"13\"\n height=\"7\"\n viewBox=\"0 0 13 7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''}`}\n >\n <path d=\"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" />\n </svg>\n </button>\n ) : null}\n </>\n ) : (\n <>\n <h1 className=\"wallet-adapter-modal-title\">Get an Aleo wallet to continue</h1>\n <div className=\"wallet-adapter-modal-middle\">\n <button\n type=\"button\"\n className=\"wallet-adapter-modal-middle-button\"\n onClick={event => handleWalletClick(event, getStartedWallet.adapter.name)}\n >\n Get started\n </button>\n </div>\n {otherWallets.length ? (\n <>\n <button\n className=\"wallet-adapter-modal-list-more\"\n onClick={handleCollapseClick}\n tabIndex={0}\n >\n <span>{expanded ? 'Hide ' : 'View other '}options</span>\n <svg\n width=\"13\"\n height=\"7\"\n viewBox=\"0 0 13 7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${\n expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''\n }`}\n >\n <path d=\"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" />\n </svg>\n </button>\n <Collapse expanded={expanded} id=\"wallet-adapter-modal-collapse\">\n <ul className=\"wallet-adapter-modal-list\">\n {otherWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event => handleWalletClick(event, wallet.adapter.name)}\n tabIndex={expanded ? 0 : -1}\n wallet={wallet}\n />\n ))}\n </ul>\n </Collapse>\n </>\n ) : null}\n </>\n )}\n <a\n className=\"wallet-adapter-modal-footer\"\n href=\"https://provable.com/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <ProvableLogo />\n </a>\n </div>\n </div>\n <div className=\"wallet-adapter-modal-overlay\" onMouseDown={handleClose} />\n </div>,\n portal,\n )\n );\n};\n","import type { FC, PropsWithChildren } from 'react';\nimport { useLayoutEffect, useRef } from 'react';\n\nexport type CollapseProps = PropsWithChildren<{\n expanded: boolean;\n id: string;\n}>;\n\nexport const Collapse: FC<CollapseProps> = ({ id, children, expanded = false }) => {\n const ref = useRef<HTMLDivElement>(null);\n const instant = useRef(true);\n const transition = 'height 250ms ease-out';\n\n const openCollapse = () => {\n const node = ref.current;\n if (!node) return;\n\n requestAnimationFrame(() => {\n node.style.height = node.scrollHeight + 'px';\n });\n };\n\n const closeCollapse = () => {\n const node = ref.current;\n if (!node) return;\n\n requestAnimationFrame(() => {\n node.style.height = node.offsetHeight + 'px';\n node.style.overflow = 'hidden';\n requestAnimationFrame(() => {\n node.style.height = '0';\n });\n });\n };\n\n useLayoutEffect(() => {\n if (expanded) {\n openCollapse();\n } else {\n closeCollapse();\n }\n }, [expanded]);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n function handleComplete() {\n if (!node) return;\n\n node.style.overflow = expanded ? 'initial' : 'hidden';\n if (expanded) {\n node.style.height = 'auto';\n }\n }\n\n function handleTransitionEnd(event: TransitionEvent) {\n if (node && event.target === node && event.propertyName === 'height') {\n handleComplete();\n }\n }\n\n if (instant.current) {\n handleComplete();\n instant.current = false;\n }\n\n node.addEventListener('transitionend', handleTransitionEnd);\n return () => node.removeEventListener('transitionend', handleTransitionEnd);\n }, [expanded]);\n\n return (\n <div\n className=\"wallet-adapter-collapse\"\n id={id}\n ref={ref}\n role=\"region\"\n style={{ height: 0, transition: instant.current ? undefined : transition }}\n >\n {children}\n </div>\n );\n};\n","import type { FC, MouseEventHandler } from 'react';\nimport { WalletReadyState } from '@provablehq/aleo-wallet-standard';\nimport { Wallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\n\nexport interface WalletListItemProps {\n handleClick: MouseEventHandler<HTMLButtonElement>;\n tabIndex?: number;\n wallet: Wallet;\n}\n\nexport const WalletListItem: FC<WalletListItemProps> = ({ handleClick, tabIndex, wallet }) => {\n return (\n <li>\n <Button onClick={handleClick} startIcon={<WalletIcon wallet={wallet} />} tabIndex={tabIndex}>\n {wallet.adapter.name}\n {wallet.readyState === WalletReadyState.INSTALLED && <span>Installed</span>}\n </Button>\n </li>\n );\n};\n","export const ProvableLogo = () => {\n return (\n <svg\n width=\"115\"\n height=\"18\"\n viewBox=\"0 0 115 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g opacity=\"0.88\">\n <path\n d=\"M0 3.89265C0 2.29508 1.29508 1 2.89265 1H13.1073C14.7048 1 15.9999 2.29508 15.9999 3.89265V14.1074C15.9999 15.7049 14.7049 17 13.1073 17H10.4926C10.0937 17 9.7702 16.6766 9.7702 16.2776V8.67463C9.7702 7.87665 9.12331 7.22976 8.32533 7.22976H0.722439C0.323447 7.22976 0 6.90631 0 6.50732L0 3.89265Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.22973 12.2151C6.22973 11.4171 5.58284 10.7702 4.78485 10.7702H0.722439C0.323447 10.7702 0 11.0937 0 11.4927L0 14.1074C0 15.7049 1.29508 17 2.89265 17H5.50729C5.90628 17 6.22973 16.6766 6.22973 16.2776V12.2151Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M108.725 17.272C105.098 17.272 102.695 14.7107 102.695 10.88C102.695 7.04935 105.098 4.48802 108.725 4.48802C112.85 4.48802 115.275 7.52535 114.686 11.968H106.118C106.39 13.6453 107.319 14.5973 108.793 14.5973C110.039 14.5973 110.901 14.0533 111.263 13.056H114.663C114.006 15.7533 111.898 17.272 108.725 17.272ZM106.118 9.70135H111.467C111.195 8.04668 110.266 7.16268 108.793 7.16268C107.342 7.16268 106.413 8.06935 106.118 9.70135Z\"\n fill=\"currentColor\"\n />\n <path d=\"M98.3672 17V0.317363L101.699 0.0453644V17H98.3672Z\" fill=\"currentColor\" />\n <path\n d=\"M84.9072 17V0.317363L88.2392 0.0453644V6.50535H88.3752C89.1232 5.21336 90.3246 4.55602 92.0245 4.55602C95.2432 4.55602 97.3512 7.07202 97.3512 10.88C97.3512 14.688 95.2432 17.2267 92.0245 17.2267C90.3246 17.2267 89.1232 16.5693 88.3752 15.2547H88.2392V17H84.9072ZM91.0952 7.32135C89.3726 7.32135 88.2392 8.72668 88.2392 10.88C88.2392 13.056 89.3726 14.4613 91.0952 14.4613C92.8405 14.4613 93.9512 13.056 93.9512 10.88C93.9512 8.72668 92.8405 7.32135 91.0952 7.32135Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M76.3143 17.1813C73.9117 17.1813 72.3477 15.6853 72.3477 13.3733C72.3477 11.4013 73.685 10.1093 76.0423 9.83735L79.2836 9.47468C79.8956 9.38401 80.1903 9.11201 80.1903 8.61335C80.1903 7.68402 79.4876 7.11735 78.3543 7.11735C77.221 7.11735 76.4503 7.68402 76.3143 8.61335H72.8917C73.141 6.05202 75.249 4.48802 78.3996 4.48802C81.641 4.48802 83.5223 6.09735 83.5223 8.88535V17H80.1903V15.4133H80.0543C79.4423 16.456 77.9236 17.1813 76.3143 17.1813ZM77.4023 14.5973C78.8303 14.5973 80.1903 13.3507 80.1903 11.9V11.4693C80.0316 11.5827 79.8503 11.628 79.6236 11.6507L77.1983 11.9227C76.3143 12.0133 75.8157 12.4893 75.8157 13.2373C75.8157 14.076 76.4276 14.5973 77.4023 14.5973Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M64.509 17L60.1797 4.76003H63.5117L66.549 13.94H66.685L69.6997 4.76003H72.873L68.5437 17H64.509Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M54.3613 17.272C50.6666 17.272 48.1279 14.6653 48.1279 10.88C48.1279 7.09468 50.6666 4.48802 54.3613 4.48802C58.0559 4.48802 60.5946 7.09468 60.5946 10.88C60.5946 14.6653 58.0559 17.272 54.3613 17.272ZM54.3613 14.5067C56.1519 14.5067 57.2399 13.1467 57.2399 10.88C57.2399 8.61335 56.1519 7.25335 54.3613 7.25335C52.5706 7.25335 51.4826 8.61335 51.4826 10.88C51.4826 13.1467 52.5706 14.5067 54.3613 14.5067Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M40.0801 17V4.76002H43.4121V6.23335H43.5481C43.9561 5.10002 44.8401 4.48802 46.1094 4.48802H47.8094L48.0814 7.93335H45.6561C44.2054 7.93335 43.4121 8.56802 43.4121 9.74668V17H40.0801Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M26.3848 17V0.99736H33.0261C36.6981 0.99736 39.0554 3.08269 39.0554 6.34668C39.0554 9.63334 36.6981 11.764 33.0261 11.764H29.8754V17H26.3848ZM33.0261 8.72668C34.5674 8.72668 35.5647 7.82002 35.5647 6.41468C35.5647 5.00935 34.5674 4.10269 33.0261 4.10269H29.8754V8.72668H33.0261Z\"\n fill=\"currentColor\"\n />\n </g>\n </svg>\n );\n};\n","import type { FC, MouseEvent } from 'react';\nimport { useCallback } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { useWalletModal } from './useWalletModal';\n\nexport const WalletModalButton: FC<ButtonProps> = ({\n children = 'Connect Wallet',\n onClick,\n ...props\n}) => {\n const { visible, setVisible } = useWalletModal();\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) setVisible(!visible);\n },\n [onClick, setVisible, visible],\n );\n\n return (\n <Button className=\"wallet-adapter-button-trigger\" onClick={handleClick} {...props}>\n {children}\n </Button>\n );\n};\n","import type { FC, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { WalletModalContext } from './useWalletModal';\nimport type { WalletModalProps } from './WalletModal';\nimport { WalletModal } from './WalletModal';\n\nexport interface WalletModalProviderProps extends WalletModalProps {\n children: ReactNode;\n}\n\nexport const WalletModalProvider: FC<WalletModalProviderProps> = ({ children, ...props }) => {\n const [visible, setVisible] = useState(false);\n\n return (\n <WalletModalContext.Provider\n value={{\n visible,\n setVisible,\n }}\n >\n {children}\n {visible && <WalletModal {...props} />}\n </WalletModalContext.Provider>\n );\n};\n","import type { FC, MouseEventHandler } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport const WalletDisconnectButton: FC<ButtonProps> = ({\n children,\n disabled,\n onClick,\n ...props\n}) => {\n const { wallet, disconnect, disconnecting } = useWallet();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n event => {\n if (onClick) onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented) disconnect().catch(() => {});\n },\n [onClick, disconnect],\n );\n\n const content = useMemo(() => {\n if (children) return children;\n if (disconnecting) return 'Disconnecting ...';\n if (wallet) return 'Disconnect';\n return 'Disconnect Wallet';\n }, [children, disconnecting, wallet]);\n\n return (\n <Button\n className=\"wallet-adapter-button-trigger\"\n disabled={disabled || !wallet}\n startIcon={wallet ? <WalletIcon wallet={wallet} /> : undefined}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n};\n","import type { FC } from 'react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { useWalletModal } from './useWalletModal';\nimport { WalletConnectButton } from './WalletConnectButton';\nimport { WalletIcon } from './WalletIcon';\nimport { WalletModalButton } from './WalletModalButton';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { CheckIcon, CopyIcon, GenericWalletIcon } from './icons';\n\nexport const WalletMultiButton: FC<ButtonProps> = ({ children, ...props }) => {\n const { address, wallet, disconnect } = useWallet();\n const { setVisible } = useWalletModal();\n const [copied, setCopied] = useState(false);\n const [active, setActive] = useState(false);\n const ref = useRef<HTMLUListElement>(null);\n\n const base58 = useMemo(() => address?.toString(), [address]);\n const content = useMemo(() => {\n if (children) return children;\n if (!wallet || !base58) return null;\n return base58.slice(0, 4) + '..' + base58.slice(-4);\n }, [children, wallet, base58]);\n\n const copyAddress = useCallback(async () => {\n if (base58) {\n await navigator.clipboard.writeText(base58);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n }, [base58]);\n\n const openDropdown = useCallback(() => {\n setActive(true);\n }, []);\n\n const closeDropdown = useCallback(() => {\n setActive(false);\n }, []);\n\n const openModal = useCallback(() => {\n setVisible(true);\n closeDropdown();\n }, [setVisible, closeDropdown]);\n\n const onDisconnect = useCallback(() => {\n disconnect();\n closeDropdown();\n }, [disconnect, closeDropdown]);\n\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n const node = ref.current;\n\n // Do nothing if clicking dropdown or its descendants\n if (!node || node.contains(event.target as Node)) return;\n\n closeDropdown();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, closeDropdown]);\n\n if (!wallet) return <WalletModalButton {...props}>{children}</WalletModalButton>;\n if (!base58) return <WalletConnectButton {...props}>{children}</WalletConnectButton>;\n\n return (\n <div className=\"wallet-adapter-dropdown\">\n <Button\n aria-expanded={active}\n className=\"wallet-adapter-button-trigger\"\n style={{ pointerEvents: active ? 'none' : 'auto', ...props.style }}\n onClick={openDropdown}\n startIcon={<WalletIcon wallet={wallet} />}\n {...props}\n >\n {content}\n </Button>\n <ul\n aria-label=\"dropdown-list\"\n className={`wallet-adapter-dropdown-list ${active && 'wallet-adapter-dropdown-list-active'}`}\n ref={ref}\n role=\"menu\"\n >\n <li onClick={copyAddress} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n {copied ? (\n <>\n Copied\n <CheckIcon />\n </>\n ) : (\n <>\n Copy address <CopyIcon />\n </>\n )}\n </li>\n <li onClick={openModal} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n Change wallet <GenericWalletIcon />\n </li>\n <li onClick={onDisconnect} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n Disconnect\n </li>\n </ul>\n </div>\n );\n};\n","export const CopyIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n);\n\nexport const CheckIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n);\n\nexport const GenericWalletIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\" />\n <path d=\"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\" />\n </svg>\n);\n"],"mappings":"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","names":["jsx","jsx","useCallback","useLayoutEffect","useMemo","useRef","jsx","jsx","jsxs","useWallet","WalletReadyState","Network","jsx","jsxs","jsx","jsxs","useRef","useWallet","useMemo","wallet","WalletReadyState","useCallback","useLayoutEffect","Network","useCallback","jsx","useCallback","useState","jsx","jsxs","useState","useCallback","useMemo","useWallet","jsx","useCallback","useMemo","useCallback","useMemo","useRef","useState","useWallet","jsx","jsxs","Fragment","jsx","jsxs","useWallet","useState","useRef","useMemo","useCallback"]}
|
|
1
|
+
{"version":3,"sources":["../src/useWalletModal.tsx","../src/WalletConnectButton.tsx","../src/Button.tsx","../src/WalletIcon.tsx","../src/WalletModal.tsx","../src/Collapse.tsx","../src/WalletListItem.tsx","../src/ProvableLogo.tsx","../src/WalletModalButton.tsx","../src/WalletModalProvider.tsx","../src/WalletDisconnectButton.tsx","../src/WalletMultiButton.tsx","../src/icons.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface WalletModalContextState {\n visible: boolean;\n setVisible: (open: boolean) => void;\n}\n\nconst DEFAULT_CONTEXT = {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setVisible(_open: boolean) {\n console.error(constructMissingProviderErrorMessage('call', 'setVisible'));\n },\n visible: false,\n};\nObject.defineProperty(DEFAULT_CONTEXT, 'visible', {\n get() {\n console.error(constructMissingProviderErrorMessage('read', 'visible'));\n return false;\n },\n});\n\nfunction constructMissingProviderErrorMessage(action: string, valueName: string) {\n return (\n 'You have tried to ' +\n `${action} \"${valueName}\"` +\n ' on a WalletModalContext without providing one.' +\n ' Make sure to render a WalletModalProvider' +\n ' as an ancestor of the component that uses ' +\n 'WalletModalContext'\n );\n}\n\nexport const WalletModalContext = createContext<WalletModalContextState>(\n DEFAULT_CONTEXT as WalletModalContextState,\n);\n\nexport function useWalletModal(): WalletModalContextState {\n return useContext(WalletModalContext);\n}\n","import type { FC, MouseEventHandler } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\nimport { Network } from '@provablehq/aleo-types';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport const WalletConnectButton: FC<ButtonProps> = ({\n children,\n disabled,\n onClick,\n network,\n ...props\n}) => {\n const { wallet, connect, connecting, connected } = useWallet();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n event => {\n if (onClick) onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented) connect(network || Network.TESTNET).catch(() => {});\n },\n [onClick, connect],\n );\n\n const content = useMemo(() => {\n if (children) return children;\n if (connecting) return 'Connecting ...';\n if (connected) return 'Connected';\n if (wallet) return 'Connect';\n return 'Connect Wallet';\n }, [children, connecting, connected, wallet]);\n\n return (\n <Button\n className=\"wallet-adapter-button-trigger\"\n disabled={disabled || !wallet || connecting || connected}\n startIcon={wallet ? <WalletIcon wallet={wallet} /> : undefined}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n};\n","import type { CSSProperties, FC, MouseEvent, PropsWithChildren, ReactElement } from 'react';\nimport { Network } from '@provablehq/aleo-types';\n\nexport type ButtonProps = PropsWithChildren<{\n className?: string;\n disabled?: boolean;\n network?: Network;\n endIcon?: ReactElement;\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n startIcon?: ReactElement;\n style?: CSSProperties;\n tabIndex?: number;\n}>;\n\nexport const Button: FC<ButtonProps> = props => {\n return (\n <button\n className={`wallet-adapter-button ${props.className || ''}`}\n disabled={props.disabled}\n style={props.style}\n onClick={props.onClick}\n tabIndex={props.tabIndex || 0}\n type=\"button\"\n >\n {props.startIcon && <i className=\"wallet-adapter-button-start-icon\">{props.startIcon}</i>}\n {props.children}\n {props.endIcon && <i className=\"wallet-adapter-button-end-icon\">{props.endIcon}</i>}\n </button>\n );\n};\n","import type { DetailedHTMLProps, FC, ImgHTMLAttributes } from 'react';\nimport { Wallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport interface WalletIconProps\n extends DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {\n wallet: Wallet | null;\n}\n\nexport const WalletIcon: FC<WalletIconProps> = ({ wallet, ...props }) => {\n return (\n wallet && (\n <img\n style={{ borderRadius: '22%' }}\n src={wallet.adapter.icon}\n alt={`${wallet.adapter.name} icon`}\n {...props}\n />\n )\n );\n};\n","import type { FC, MouseEvent } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Collapse } from './Collapse';\nimport { useWalletModal } from './useWalletModal';\nimport { WalletListItem } from './WalletListItem';\nimport { useWallet, Wallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { WalletName, WalletReadyState } from '@provablehq/aleo-wallet-standard';\nimport { Network } from '@provablehq/aleo-types';\nimport { ProvableLogo } from './ProvableLogo';\n\nconst INSTALL_REDIRECT_MAX_AGE_MS = 10 * 60 * 1000; // 10 minutes\nconst WALLET_INSTALL_REDIRECT_KEY = 'aleo-wallet-adaptor-install-redirect-timestamp';\n\nexport interface WalletModalProps {\n className?: string;\n container?: string;\n network?: Network;\n}\n\nexport const WalletModal: FC<WalletModalProps> = ({\n className = '',\n container = 'body',\n network,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const { wallets, selectWallet, connect, wallet } = useWallet();\n const { setVisible } = useWalletModal();\n const [expanded, setExpanded] = useState(false);\n const [fadeIn, setFadeIn] = useState(false);\n const [portal, setPortal] = useState<Element | null>(null);\n\n const [installedWallets, otherWallets] = useMemo(() => {\n const installed: Wallet[] = [];\n const notDetected: Wallet[] = [];\n const loadable: Wallet[] = [];\n\n for (const wallet of wallets) {\n if (wallet.readyState === WalletReadyState.NOT_DETECTED) {\n notDetected.push(wallet);\n } else if (wallet.readyState === WalletReadyState.LOADABLE) {\n loadable.push(wallet);\n } else if (wallet.readyState === WalletReadyState.INSTALLED) {\n installed.push(wallet);\n }\n }\n\n return [installed, [...loadable, ...notDetected]];\n }, [wallets]);\n\n const getStartedWallet = useMemo(() => {\n return installedWallets.length\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n installedWallets[0]!\n : wallets.find((wallet: { adapter: { name: WalletName } }) =>\n wallet.adapter.name.toLowerCase().includes('shield'),\n ) ||\n wallets.find(\n (wallet: { readyState: WalletReadyState }) =>\n wallet.readyState === WalletReadyState.LOADABLE,\n ) ||\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n otherWallets[0]!;\n }, [installedWallets, wallets, otherWallets]);\n\n // Refresh page when user returns from being redirected to a wallet install page\n useEffect(() => {\n function handleVisibilityChange() {\n if (document.visibilityState !== 'visible') return;\n try {\n const raw = sessionStorage.getItem(WALLET_INSTALL_REDIRECT_KEY);\n if (!raw) return;\n const timestamp = Number(raw);\n if (Number.isNaN(timestamp) || Date.now() - timestamp > INSTALL_REDIRECT_MAX_AGE_MS) return;\n sessionStorage.removeItem(WALLET_INSTALL_REDIRECT_KEY);\n window.location.reload();\n } catch {\n // ignore sessionStorage errors\n }\n }\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n return () => document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, []);\n\n const hideModal = useCallback(() => {\n setFadeIn(false);\n setTimeout(() => setVisible(false), 150);\n }, [setVisible]);\n\n const handleClose = useCallback(\n (event: MouseEvent) => {\n event.preventDefault();\n hideModal();\n },\n [hideModal],\n );\n\n const handleWalletClick = useCallback(\n (event: MouseEvent, walletName: WalletName) => {\n selectWallet(walletName);\n handleClose(event);\n },\n [selectWallet, handleClose],\n );\n\n const handleNotInstalledWalletClick = useCallback(\n (event: MouseEvent, walletName: WalletName) => {\n event.preventDefault();\n const wallet = wallets.find(\n (wallet: { adapter: { name: WalletName } }) => wallet.adapter.name === walletName,\n );\n if (wallet) {\n try {\n // Set a key in sessionStorage to refresh the page when user returns from being redirected to a wallet install page\n sessionStorage.setItem(WALLET_INSTALL_REDIRECT_KEY, String(Date.now()));\n } catch {\n // ignore sessionStorage errors\n }\n\n // Redirect to the wallet install page\n window.open(wallet.adapter.url, '_blank');\n }\n },\n [wallets],\n );\n\n const handleCollapseClick = useCallback(() => setExpanded(!expanded), [expanded]);\n\n const handleTabKey = useCallback(\n (event: KeyboardEvent) => {\n const node = ref.current;\n if (!node) return;\n\n // here we query all focusable elements\n const focusableElements = node.querySelectorAll('button');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const firstElement = focusableElements[0]!;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lastElement = focusableElements[focusableElements.length - 1]!;\n\n if (event.shiftKey) {\n // if going backward by pressing tab and firstElement is active, shift focus to last focusable element\n if (document.activeElement === firstElement) {\n lastElement.focus();\n event.preventDefault();\n }\n } else {\n // if going forward by pressing tab and lastElement is active, shift focus to first focusable element\n if (document.activeElement === lastElement) {\n firstElement.focus();\n event.preventDefault();\n }\n }\n },\n [ref],\n );\n\n useLayoutEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n hideModal();\n } else if (event.key === 'Tab') {\n handleTabKey(event);\n }\n };\n\n // Get original overflow\n const { overflow } = window.getComputedStyle(document.body);\n // Hack to enable fade in animation after mount\n setTimeout(() => setFadeIn(true), 0);\n // Prevent scrolling on mount\n document.body.style.overflow = 'hidden';\n // Listen for keydown events\n window.addEventListener('keydown', handleKeyDown, false);\n\n return () => {\n // Re-enable scrolling when component unmounts\n document.body.style.overflow = overflow;\n window.removeEventListener('keydown', handleKeyDown, false);\n };\n }, [hideModal, handleTabKey]);\n\n useLayoutEffect(() => setPortal(document.querySelector(container)), [container]);\n\n useLayoutEffect(() => {\n if (wallet) {\n connect(network || Network.TESTNET).catch(e => {\n console.error({ e });\n });\n }\n }, [wallet]);\n\n return (\n portal &&\n createPortal(\n <div\n aria-labelledby=\"wallet-adapter-modal-title\"\n aria-modal=\"true\"\n className={`wallet-adapter-modal ${fadeIn && 'wallet-adapter-modal-fade-in'} ${className}`}\n ref={ref}\n role=\"dialog\"\n >\n <div className=\"wallet-adapter-modal-container\">\n <div className=\"wallet-adapter-modal-wrapper\">\n <button onClick={handleClose} className=\"wallet-adapter-modal-button-close\">\n <svg width=\"14\" height=\"14\">\n <path d=\"M14 12.461 8.3 6.772l5.234-5.233L12.006 0 6.772 5.234 1.54 0 0 1.539l5.234 5.233L0 12.006l1.539 1.528L6.772 8.3l5.69 5.7L14 12.461z\" />\n </svg>\n </button>\n {installedWallets.length ? (\n <>\n <h1 className=\"wallet-adapter-modal-title\">Connect an Aleo wallet</h1>\n <ul className=\"wallet-adapter-modal-list\">\n {installedWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event =>\n handleWalletClick(event, wallet.adapter.name as WalletName)\n }\n wallet={wallet}\n />\n ))}\n {otherWallets.length ? (\n <Collapse expanded={expanded} id=\"wallet-adapter-modal-collapse\">\n {otherWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event => handleWalletClick(event, wallet.adapter.name)}\n tabIndex={expanded ? 0 : -1}\n wallet={wallet}\n />\n ))}\n </Collapse>\n ) : null}\n </ul>\n {otherWallets.length ? (\n <button\n className=\"wallet-adapter-modal-list-more\"\n onClick={handleCollapseClick}\n tabIndex={0}\n >\n <span>{expanded ? 'Less ' : 'More '}options</span>\n <svg\n width=\"13\"\n height=\"7\"\n viewBox=\"0 0 13 7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''}`}\n >\n <path d=\"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" />\n </svg>\n </button>\n ) : null}\n </>\n ) : (\n <>\n <h1 className=\"wallet-adapter-modal-title\">Get an Aleo wallet to continue</h1>\n <div className=\"wallet-adapter-modal-middle\">\n <button\n type=\"button\"\n className=\"wallet-adapter-modal-middle-button\"\n onClick={event =>\n handleNotInstalledWalletClick(event, getStartedWallet?.adapter.name)\n }\n >\n Get started\n </button>\n </div>\n {otherWallets.length ? (\n <>\n <button\n className=\"wallet-adapter-modal-list-more\"\n onClick={handleCollapseClick}\n tabIndex={0}\n >\n <span>{expanded ? 'Hide ' : 'View other '}options</span>\n <svg\n width=\"13\"\n height=\"7\"\n viewBox=\"0 0 13 7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${\n expanded ? 'wallet-adapter-modal-list-more-icon-rotate' : ''\n }`}\n >\n <path d=\"M0.71418 1.626L5.83323 6.26188C5.91574 6.33657 6.0181 6.39652 6.13327 6.43762C6.24844 6.47872 6.37371 6.5 6.50048 6.5C6.62725 6.5 6.75252 6.47872 6.8677 6.43762C6.98287 6.39652 7.08523 6.33657 7.16774 6.26188L12.2868 1.626C12.7753 1.1835 12.3703 0.5 11.6195 0.5H1.37997C0.629216 0.5 0.224175 1.1835 0.71418 1.626Z\" />\n </svg>\n </button>\n <Collapse expanded={expanded} id=\"wallet-adapter-modal-collapse\">\n <ul className=\"wallet-adapter-modal-list\">\n {otherWallets.map(wallet => (\n <WalletListItem\n key={wallet.adapter.name}\n handleClick={event =>\n handleNotInstalledWalletClick(event, wallet.adapter.name)\n }\n tabIndex={expanded ? 0 : -1}\n wallet={wallet}\n />\n ))}\n </ul>\n </Collapse>\n </>\n ) : null}\n </>\n )}\n <a\n className=\"wallet-adapter-modal-footer\"\n href=\"https://provable.com/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <ProvableLogo />\n </a>\n </div>\n </div>\n <div className=\"wallet-adapter-modal-overlay\" onMouseDown={handleClose} />\n </div>,\n portal,\n )\n );\n};\n","import type { FC, PropsWithChildren } from 'react';\nimport { useLayoutEffect, useRef } from 'react';\n\nexport type CollapseProps = PropsWithChildren<{\n expanded: boolean;\n id: string;\n}>;\n\nexport const Collapse: FC<CollapseProps> = ({ id, children, expanded = false }) => {\n const ref = useRef<HTMLDivElement>(null);\n const instant = useRef(true);\n const transition = 'height 250ms ease-out';\n\n const openCollapse = () => {\n const node = ref.current;\n if (!node) return;\n\n requestAnimationFrame(() => {\n node.style.height = node.scrollHeight + 'px';\n });\n };\n\n const closeCollapse = () => {\n const node = ref.current;\n if (!node) return;\n\n requestAnimationFrame(() => {\n node.style.height = node.offsetHeight + 'px';\n node.style.overflow = 'hidden';\n requestAnimationFrame(() => {\n node.style.height = '0';\n });\n });\n };\n\n useLayoutEffect(() => {\n if (expanded) {\n openCollapse();\n } else {\n closeCollapse();\n }\n }, [expanded]);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n function handleComplete() {\n if (!node) return;\n\n node.style.overflow = expanded ? 'initial' : 'hidden';\n if (expanded) {\n node.style.height = 'auto';\n }\n }\n\n function handleTransitionEnd(event: TransitionEvent) {\n if (node && event.target === node && event.propertyName === 'height') {\n handleComplete();\n }\n }\n\n if (instant.current) {\n handleComplete();\n instant.current = false;\n }\n\n node.addEventListener('transitionend', handleTransitionEnd);\n return () => node.removeEventListener('transitionend', handleTransitionEnd);\n }, [expanded]);\n\n return (\n <div\n className=\"wallet-adapter-collapse\"\n id={id}\n ref={ref}\n role=\"region\"\n style={{ height: 0, transition: instant.current ? undefined : transition }}\n >\n {children}\n </div>\n );\n};\n","import type { FC, MouseEventHandler } from 'react';\nimport { WalletReadyState } from '@provablehq/aleo-wallet-standard';\nimport { Wallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\n\nexport interface WalletListItemProps {\n handleClick: MouseEventHandler<HTMLButtonElement>;\n tabIndex?: number;\n wallet: Wallet;\n}\n\nexport const WalletListItem: FC<WalletListItemProps> = ({ handleClick, tabIndex, wallet }) => {\n return (\n <li>\n <Button onClick={handleClick} startIcon={<WalletIcon wallet={wallet} />} tabIndex={tabIndex}>\n {wallet.adapter.name}\n {wallet.readyState === WalletReadyState.INSTALLED && <span>Installed</span>}\n </Button>\n </li>\n );\n};\n","export const ProvableLogo = () => {\n return (\n <svg\n width=\"115\"\n height=\"18\"\n viewBox=\"0 0 115 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g opacity=\"0.88\">\n <path\n d=\"M0 3.89265C0 2.29508 1.29508 1 2.89265 1H13.1073C14.7048 1 15.9999 2.29508 15.9999 3.89265V14.1074C15.9999 15.7049 14.7049 17 13.1073 17H10.4926C10.0937 17 9.7702 16.6766 9.7702 16.2776V8.67463C9.7702 7.87665 9.12331 7.22976 8.32533 7.22976H0.722439C0.323447 7.22976 0 6.90631 0 6.50732L0 3.89265Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M6.22973 12.2151C6.22973 11.4171 5.58284 10.7702 4.78485 10.7702H0.722439C0.323447 10.7702 0 11.0937 0 11.4927L0 14.1074C0 15.7049 1.29508 17 2.89265 17H5.50729C5.90628 17 6.22973 16.6766 6.22973 16.2776V12.2151Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M108.725 17.272C105.098 17.272 102.695 14.7107 102.695 10.88C102.695 7.04935 105.098 4.48802 108.725 4.48802C112.85 4.48802 115.275 7.52535 114.686 11.968H106.118C106.39 13.6453 107.319 14.5973 108.793 14.5973C110.039 14.5973 110.901 14.0533 111.263 13.056H114.663C114.006 15.7533 111.898 17.272 108.725 17.272ZM106.118 9.70135H111.467C111.195 8.04668 110.266 7.16268 108.793 7.16268C107.342 7.16268 106.413 8.06935 106.118 9.70135Z\"\n fill=\"currentColor\"\n />\n <path d=\"M98.3672 17V0.317363L101.699 0.0453644V17H98.3672Z\" fill=\"currentColor\" />\n <path\n d=\"M84.9072 17V0.317363L88.2392 0.0453644V6.50535H88.3752C89.1232 5.21336 90.3246 4.55602 92.0245 4.55602C95.2432 4.55602 97.3512 7.07202 97.3512 10.88C97.3512 14.688 95.2432 17.2267 92.0245 17.2267C90.3246 17.2267 89.1232 16.5693 88.3752 15.2547H88.2392V17H84.9072ZM91.0952 7.32135C89.3726 7.32135 88.2392 8.72668 88.2392 10.88C88.2392 13.056 89.3726 14.4613 91.0952 14.4613C92.8405 14.4613 93.9512 13.056 93.9512 10.88C93.9512 8.72668 92.8405 7.32135 91.0952 7.32135Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M76.3143 17.1813C73.9117 17.1813 72.3477 15.6853 72.3477 13.3733C72.3477 11.4013 73.685 10.1093 76.0423 9.83735L79.2836 9.47468C79.8956 9.38401 80.1903 9.11201 80.1903 8.61335C80.1903 7.68402 79.4876 7.11735 78.3543 7.11735C77.221 7.11735 76.4503 7.68402 76.3143 8.61335H72.8917C73.141 6.05202 75.249 4.48802 78.3996 4.48802C81.641 4.48802 83.5223 6.09735 83.5223 8.88535V17H80.1903V15.4133H80.0543C79.4423 16.456 77.9236 17.1813 76.3143 17.1813ZM77.4023 14.5973C78.8303 14.5973 80.1903 13.3507 80.1903 11.9V11.4693C80.0316 11.5827 79.8503 11.628 79.6236 11.6507L77.1983 11.9227C76.3143 12.0133 75.8157 12.4893 75.8157 13.2373C75.8157 14.076 76.4276 14.5973 77.4023 14.5973Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M64.509 17L60.1797 4.76003H63.5117L66.549 13.94H66.685L69.6997 4.76003H72.873L68.5437 17H64.509Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M54.3613 17.272C50.6666 17.272 48.1279 14.6653 48.1279 10.88C48.1279 7.09468 50.6666 4.48802 54.3613 4.48802C58.0559 4.48802 60.5946 7.09468 60.5946 10.88C60.5946 14.6653 58.0559 17.272 54.3613 17.272ZM54.3613 14.5067C56.1519 14.5067 57.2399 13.1467 57.2399 10.88C57.2399 8.61335 56.1519 7.25335 54.3613 7.25335C52.5706 7.25335 51.4826 8.61335 51.4826 10.88C51.4826 13.1467 52.5706 14.5067 54.3613 14.5067Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M40.0801 17V4.76002H43.4121V6.23335H43.5481C43.9561 5.10002 44.8401 4.48802 46.1094 4.48802H47.8094L48.0814 7.93335H45.6561C44.2054 7.93335 43.4121 8.56802 43.4121 9.74668V17H40.0801Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M26.3848 17V0.99736H33.0261C36.6981 0.99736 39.0554 3.08269 39.0554 6.34668C39.0554 9.63334 36.6981 11.764 33.0261 11.764H29.8754V17H26.3848ZM33.0261 8.72668C34.5674 8.72668 35.5647 7.82002 35.5647 6.41468C35.5647 5.00935 34.5674 4.10269 33.0261 4.10269H29.8754V8.72668H33.0261Z\"\n fill=\"currentColor\"\n />\n </g>\n </svg>\n );\n};\n","import type { FC, MouseEvent } from 'react';\nimport { useCallback } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { useWalletModal } from './useWalletModal';\n\nexport const WalletModalButton: FC<ButtonProps> = ({\n children = 'Connect Wallet',\n onClick,\n ...props\n}) => {\n const { visible, setVisible } = useWalletModal();\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) setVisible(!visible);\n },\n [onClick, setVisible, visible],\n );\n\n return (\n <Button className=\"wallet-adapter-button-trigger\" onClick={handleClick} {...props}>\n {children}\n </Button>\n );\n};\n","import type { FC, ReactNode } from 'react';\nimport { useState } from 'react';\nimport { WalletModalContext } from './useWalletModal';\nimport type { WalletModalProps } from './WalletModal';\nimport { WalletModal } from './WalletModal';\n\nexport interface WalletModalProviderProps extends WalletModalProps {\n children: ReactNode;\n}\n\nexport const WalletModalProvider: FC<WalletModalProviderProps> = ({ children, ...props }) => {\n const [visible, setVisible] = useState(false);\n\n return (\n <WalletModalContext.Provider\n value={{\n visible,\n setVisible,\n }}\n >\n {children}\n {visible && <WalletModal {...props} />}\n </WalletModalContext.Provider>\n );\n};\n","import type { FC, MouseEventHandler } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { WalletIcon } from './WalletIcon';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\n\nexport const WalletDisconnectButton: FC<ButtonProps> = ({\n children,\n disabled,\n onClick,\n ...props\n}) => {\n const { wallet, disconnect, disconnecting } = useWallet();\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = useCallback(\n event => {\n if (onClick) onClick(event);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!event.defaultPrevented) disconnect().catch(() => {});\n },\n [onClick, disconnect],\n );\n\n const content = useMemo(() => {\n if (children) return children;\n if (disconnecting) return 'Disconnecting ...';\n if (wallet) return 'Disconnect';\n return 'Disconnect Wallet';\n }, [children, disconnecting, wallet]);\n\n return (\n <Button\n className=\"wallet-adapter-button-trigger\"\n disabled={disabled || !wallet}\n startIcon={wallet ? <WalletIcon wallet={wallet} /> : undefined}\n onClick={handleClick}\n {...props}\n >\n {content}\n </Button>\n );\n};\n","import type { FC } from 'react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ButtonProps } from './Button';\nimport { Button } from './Button';\nimport { useWalletModal } from './useWalletModal';\nimport { WalletConnectButton } from './WalletConnectButton';\nimport { WalletIcon } from './WalletIcon';\nimport { WalletModalButton } from './WalletModalButton';\nimport { useWallet } from '@provablehq/aleo-wallet-adaptor-react';\nimport { CheckIcon, CopyIcon, GenericWalletIcon } from './icons';\n\nexport const WalletMultiButton: FC<ButtonProps> = ({ children, ...props }) => {\n const { address, wallet, disconnect, connected } = useWallet();\n const { setVisible } = useWalletModal();\n const [copied, setCopied] = useState(false);\n const [active, setActive] = useState(false);\n const ref = useRef<HTMLUListElement>(null);\n\n const base58 = useMemo(() => address?.toString(), [address]);\n const content = useMemo(() => {\n if (children) return children;\n if (!wallet) return null;\n if (base58) return base58.slice(0, 4) + '..' + base58.slice(-4);\n if (connected) return 'Connected';\n return null;\n }, [children, wallet, base58, connected]);\n\n const copyAddress = useCallback(async () => {\n if (base58) {\n await navigator.clipboard.writeText(base58);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n }, [base58]);\n\n const openDropdown = useCallback(() => {\n setActive(true);\n }, []);\n\n const closeDropdown = useCallback(() => {\n setActive(false);\n }, []);\n\n const openModal = useCallback(() => {\n setVisible(true);\n closeDropdown();\n }, [setVisible, closeDropdown]);\n\n const onDisconnect = useCallback(() => {\n disconnect();\n closeDropdown();\n }, [disconnect, closeDropdown]);\n\n useEffect(() => {\n const listener = (event: MouseEvent | TouchEvent) => {\n const node = ref.current;\n\n // Do nothing if clicking dropdown or its descendants\n if (!node || node.contains(event.target as Node)) return;\n\n closeDropdown();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, closeDropdown]);\n\n if (!wallet) return <WalletModalButton {...props}>{children}</WalletModalButton>;\n if (!connected && !base58) {\n return <WalletConnectButton {...props}>{children}</WalletConnectButton>;\n }\n\n return (\n <div className=\"wallet-adapter-dropdown\">\n <Button\n aria-expanded={active}\n className=\"wallet-adapter-button-trigger\"\n style={{ pointerEvents: active ? 'none' : 'auto', ...props.style }}\n onClick={openDropdown}\n startIcon={<WalletIcon wallet={wallet} />}\n {...props}\n >\n {content}\n </Button>\n <ul\n aria-label=\"dropdown-list\"\n className={`wallet-adapter-dropdown-list ${active && 'wallet-adapter-dropdown-list-active'}`}\n ref={ref}\n role=\"menu\"\n >\n {base58 ? (\n <li onClick={copyAddress} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n {copied ? (\n <>\n Copied\n <CheckIcon />\n </>\n ) : (\n <>\n Copy address <CopyIcon />\n </>\n )}\n </li>\n ) : null}\n <li onClick={openModal} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n Change wallet <GenericWalletIcon />\n </li>\n <li onClick={onDisconnect} className=\"wallet-adapter-dropdown-list-item\" role=\"menuitem\">\n Disconnect\n </li>\n </ul>\n </div>\n );\n};\n","export const CopyIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n);\n\nexport const CheckIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n);\n\nexport const GenericWalletIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\" />\n <path d=\"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\" />\n </svg>\n);\n"],"mappings":"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","names":["jsx","jsx","useCallback","useLayoutEffect","useMemo","useRef","jsx","jsx","jsxs","useWallet","WalletReadyState","Network","jsx","jsxs","jsx","jsxs","useRef","useWallet","useMemo","wallet","WalletReadyState","useCallback","useLayoutEffect","Network","useCallback","jsx","useCallback","useState","jsx","jsxs","useState","useCallback","useMemo","useWallet","jsx","useCallback","useMemo","useCallback","useEffect","useMemo","useRef","useState","useWallet","jsx","jsxs","Fragment","jsx","jsxs","useWallet","useState","useRef","useMemo","useCallback","useEffect"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@provablehq/aleo-wallet-adaptor-react-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "UI components for wallet adapter integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
],
|
|
12
12
|
"sideEffects": false,
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@provablehq/aleo-
|
|
15
|
-
"@provablehq/aleo-wallet-adaptor-
|
|
16
|
-
"@provablehq/aleo-wallet-standard": "0.
|
|
17
|
-
"@provablehq/aleo-
|
|
14
|
+
"@provablehq/aleo-types": "1.0.0",
|
|
15
|
+
"@provablehq/aleo-wallet-adaptor-react": "1.0.0",
|
|
16
|
+
"@provablehq/aleo-wallet-standard": "1.0.0",
|
|
17
|
+
"@provablehq/aleo-wallet-adaptor-core": "1.0.0"
|
|
18
18
|
},
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|