import type { Meta, StoryFn } from '@storybook/react' import * as React from 'react' import { Typography } from '../Typography' import { ConnectWalletModal, ConnectWalletModalContent, ConnectWalletModalDisclaimer, ConnectWalletModalHeader, ConnectWalletModalSelection, ConnectWalletModalSelectionItem, ConnectWalletModalTrigger, } from './ConnectWalletModal' const meta: Meta = { title: 'Blocks/ConnectWalletModal', component: ConnectWalletModal, decorators: [ (Story) => (
), ], } export default meta // Mock wallet icons (replace with actual icons) const MetaMaskIcon = () => (
) const WalletConnectIcon = () => (
) const CoinbaseIcon = () =>
const RabbyIcon = () =>
const Template: StoryFn = (args, context) => { const defaultOpen = context.viewMode === 'story' ? { defaultOpen: true } : {} const [selectedId, setSelectedId] = React.useState(null) const [loadingId, setLoadingId] = React.useState(null) const startLoading = (id: string) => { setLoadingId(id) setSelectedId(null) setTimeout(() => { setLoadingId(null) setSelectedId(id) }, 1500) } return ( Connect Connect your wallet startLoading('metamask')} isLoading={loadingId === 'metamask'} isSelected={selectedId === 'metamask'} > MetaMask startLoading('rabby')} isLoading={loadingId === 'rabby'} isSelected={selectedId === 'rabby'} > Rabby Wallet startLoading('walletconnect')} isLoading={loadingId === 'walletconnect'} isSelected={selectedId === 'walletconnect'} > WalletConnect startLoading('coinbase')} isLoading={loadingId === 'coinbase'} isSelected={selectedId === 'coinbase'} > Coinbase Wallet By connecting your wallet, you agree to the Chainlink Foundation’s  Terms of Service ) } export const Default: StoryFn = Template.bind({}) export const DisabledItems: StoryFn = ( args, context, ) => { // Force open in story mode for visual inspection const defaultOpen = context.viewMode === 'story' ? { defaultOpen: true } : {} return ( Connect Connect your wallet MetaMask WalletConnect By connecting, you agree to our Terms of Service ) }