'use client'; import { CopyButton } from '@/internal/components/CopyButton'; import { PressableIcon } from '@/internal/components/PressableIcon'; import { QrCodeSvg } from '@/internal/components/QrCode/QrCodeSvg'; import { backArrowSvg } from '@/internal/svg/backArrowSvg'; import { copySvg } from '@/internal/svg/copySvg'; import { zIndex } from '@/styles/constants'; import { cn, pressable, text } from '@/styles/theme'; import { useCallback, useState } from 'react'; import { useWalletContext } from './WalletProvider'; import { useAccount } from 'wagmi'; export type WalletAdvancedQrReceiveProps = { classNames?: { container?: string; header?: string; copyButton?: string; }; }; export function WalletAdvancedQrReceive({ classNames, }: WalletAdvancedQrReceiveProps) { const { setActiveFeature, isActiveFeatureClosing, setIsActiveFeatureClosing, } = useWalletContext(); const { address } = useAccount(); const [copyText, setCopyText] = useState('Copy'); const [copyButtonText, setCopyButtonText] = useState('Copy address'); const handleCloseQr = useCallback(() => { setIsActiveFeatureClosing(true); }, [setIsActiveFeatureClosing]); const handleAnimationEnd = useCallback(() => { if (isActiveFeatureClosing) { setActiveFeature(null); setIsActiveFeatureClosing(false); } }, [isActiveFeatureClosing, setActiveFeature, setIsActiveFeatureClosing]); const resetAffordanceText = useCallback(() => { setTimeout(() => { setCopyText('Copy'); setCopyButtonText('Copy address'); }, 2000); }, []); const handleCopyButtonSuccess = useCallback(() => { setCopyButtonText('Address copied'); resetAffordanceText(); }, [resetAffordanceText]); const handleCopyButtonError = useCallback(() => { setCopyButtonText('Failed to copy address'); resetAffordanceText(); }, [resetAffordanceText]); const handleCopyIconSuccess = useCallback(() => { setCopyText('Copied'); resetAffordanceText(); }, [resetAffordanceText]); const handleCopyIconError = useCallback(() => { setCopyText('Failed to copy'); resetAffordanceText(); }, [resetAffordanceText]); return (
{backArrowSvg}
Scan to receive
); }