From 721cb6353c0b87a058f87658ffd120ff2020f8de Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Mon, 24 Feb 2025 09:38:00 +0100 Subject: [PATCH 1/2] feat: copy address icon transition to check mark after clicking on it --- .../circle-react-elements/src/NextJsGuide.mdx | 21 +++++++++++++------ .../WalletDetails/WalletDetails.tsx | 18 ++++++++++------ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/packages/circle-react-elements/src/NextJsGuide.mdx b/packages/circle-react-elements/src/NextJsGuide.mdx index c68624d..c4e702b 100644 --- a/packages/circle-react-elements/src/NextJsGuide.mdx +++ b/packages/circle-react-elements/src/NextJsGuide.mdx @@ -613,12 +613,21 @@ Update the wallet set list page at `src/app/page.tsx` by including a link to the // Add the following import import Link from 'next/link'; -// Extend the WalletSetDetails component with a link to the wallet set page - - - Show Wallets - -; +// Update the WalletSets component +export default function WalletSets() { + // Existing code + + return ( + // Existing code + + // Extend the WalletSetDetails component with a link to the wallet set page + + + Show Wallets + + + ); +} ``` And that's it! You've successfully implemented wallet creation and listing within a wallet set. Go back to your development server and navigate to the wallet set page to see the new features in action. diff --git a/packages/circle-react-elements/src/components/WalletDetails/WalletDetails.tsx b/packages/circle-react-elements/src/components/WalletDetails/WalletDetails.tsx index f58882f..e499294 100644 --- a/packages/circle-react-elements/src/components/WalletDetails/WalletDetails.tsx +++ b/packages/circle-react-elements/src/components/WalletDetails/WalletDetails.tsx @@ -1,7 +1,7 @@ import { AccountType } from '@circle-fin/developer-controlled-wallets'; import makeBlockie from 'ethereum-blockies-base64'; -import { Copy } from 'lucide-react'; -import { useMemo } from 'react'; +import { Check, Copy } from 'lucide-react'; +import { useMemo, useState } from 'react'; import { Badge } from '~/components/ui/badge'; import { Button } from '~/components/ui/button'; @@ -52,17 +52,19 @@ const ACCOUNT_TYPE_TO_TEXT: Record = { * - Displays shortened wallet address with copy button * - Shows blockchain network with icon * - Supports custom child components for extensibility - * - Address clipboard copy with optional callback - * - Responsive layout with consistent spacing - * - Uses design system components (Badge, Button) * - Full address available in tooltip */ export function WalletDetails({ wallet, onAddressCopy, children }: WalletDetailsProps) { const shortAddress = useMemo(() => shortenAddress(wallet.address), [wallet]); const walletImage = useMemo(() => makeBlockie(wallet.address), [wallet]); + const [copied, setCopied] = useState(false); const copyToClipboard = () => { void navigator.clipboard.writeText(wallet.address); + setCopied(true); + + setTimeout(() => setCopied(false), 2000); // Reset after 2 seconds + if (typeof onAddressCopy === 'function') { onAddressCopy(wallet.address); } @@ -88,7 +90,11 @@ export function WalletDetails({ wallet, onAddressCopy, children }: WalletDetails

From 09553a29d4ffe1a42c4adc0f8923d841fe9fe8ad Mon Sep 17 00:00:00 2001 From: Kris Urbas <605420+krzysu@users.noreply.github.com> Date: Mon, 24 Feb 2025 09:43:28 +0100 Subject: [PATCH 2/2] chore: release @circle-libs/react-elements@0.1.1 --- packages/circle-react-elements/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/circle-react-elements/package.json b/packages/circle-react-elements/package.json index 26054e0..bec7c17 100644 --- a/packages/circle-react-elements/package.json +++ b/packages/circle-react-elements/package.json @@ -1,6 +1,6 @@ { "name": "@circle-libs/react-elements", - "version": "0.1.0", + "version": "0.1.1", "description": "React components compatible with Circle SDK", "keywords": [ "react",