The ProfileCard component provides a comprehensive display of user profile information, including avatar, domain, social links, and customization options.
Copy // ProfileCard Types
interface ProfileCardProps {
// Required wallet address to display
address: string;
// Optional callback for edit button click
onEditClick?: () => void;
// Optional callback for logout button click
onLogout?: () => void;
// Toggle header visibility (default: true)
showHeader?: boolean;
// Toggle social links visibility (default: true)
showLinks?: boolean;
// Toggle description visibility (default: true)
showDescription?: boolean;
// Toggle display name visibility (default: true)
showDisplayName?: boolean;
// Toggle edit/logout buttons visibility (default: true)
showEdit?: boolean;
}
// Internal types used by the component
interface TextRecords {
display?: string;
description?: string;
email?: string;
url?: string;
'com.x'?: string;
}
interface WalletInfo {
address: string;
domain?: string;
image?: string;
isLoadingMetadata?: boolean;
metadata?: TextRecords;
}
Copy // Example usage of ProfileCard component
import { ProfileCard } from '@vechain/vechain-kit';
const MyComponent = () => {
// Example wallet address
const walletAddress = "0x123...abc";
return (
<div style={{ maxWidth: '400px', margin: '0 auto' }}>
{/* Basic usage */}
<ProfileCard
address={walletAddress}
/>
{/* Full featured usage */}
<ProfileCard
address={walletAddress}
showHeader={true}
showLinks={true}
showDescription={true}
showDisplayName={true}
showEdit={true}
/>
</div>
);
};
export default MyComponent;
/*
Note: The component will automatically:
- Resolve VET domains for the address
- Fetch and display avatar
- Load text records for social links
- Handle dark/light mode
- Manage connected account state
*/