@provablehq/aleo-wallet-adaptor-react-ui 0.3.0-alpha.3 → 0.3.0-alpha.4
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 +36 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +39 -5
- 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
|
},
|
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 } = 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"]}
|
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
|
|
@@ -667,7 +701,7 @@ var WalletMultiButton = ({ children, ...props }) => {
|
|
|
667
701
|
disconnect();
|
|
668
702
|
closeDropdown();
|
|
669
703
|
}, [disconnect, closeDropdown]);
|
|
670
|
-
|
|
704
|
+
useEffect2(() => {
|
|
671
705
|
const listener = (event) => {
|
|
672
706
|
const node = ref.current;
|
|
673
707
|
if (!node || node.contains(event.target)) return;
|
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 } = 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","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.0-alpha.
|
|
3
|
+
"version": "0.3.0-alpha.4",
|
|
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-
|
|
17
|
-
"@provablehq/aleo-
|
|
14
|
+
"@provablehq/aleo-types": "0.3.0-alpha.4",
|
|
15
|
+
"@provablehq/aleo-wallet-adaptor-react": "0.3.0-alpha.4",
|
|
16
|
+
"@provablehq/aleo-wallet-adaptor-core": "0.3.0-alpha.4",
|
|
17
|
+
"@provablehq/aleo-wallet-standard": "0.3.0-alpha.4"
|
|
18
18
|
},
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|