Rainbow logo
RainbowKit
2.2.11

カスタム ConnectButton

カスタム ConnectButton

カスタム ConnectButton を作成する

低レベルの ConnectButton.Custom を使用して、独自のカスタム接続ボタンを作成できます。このコンポーネントは関数をレンダリングし、組み込みボタンを再実装するために必要な要素をすべて含んでいます。

組み込みボタンの最小限の再実装は次のようになります。

import { ConnectButton } from '@rainbow-me/rainbowkit';
export const YourApp = () => {
return (
<ConnectButton.Custom>
{({
account,
chain,
openAccountModal,
openChainModal,
openConnectModal,
authenticationStatus,
mounted,
}) => {
// Note: If your app doesn't use authentication, you
// can remove all 'authenticationStatus' checks
const ready = mounted && authenticationStatus !== 'loading';
const connected =
ready &&
account &&
chain &&
(!authenticationStatus ||
authenticationStatus === 'authenticated');
return (
<div {...(!ready && { 'aria-hidden': true, 'style': { opacity: 0, pointerEvents: 'none', userSelect: 'none', }, })} >
{(() => {
if (!connected) {
return (
<button onClick={openConnectModal} type="button">
Connect Wallet
</button>
);
}
if (chain.unsupported) {
return (
<button onClick={openChainModal} type="button">
Wrong network
</button>
);
}
return (
<div style={{ display: 'flex', gap: 12 }}>
<button onClick={openChainModal} style={{ display: 'flex', alignItems: 'center' }} type="button" >
{chain.hasIcon && (
<div style={{ background: chain.iconBackground, width: 12, height: 12, borderRadius: 999, overflow: 'hidden', marginRight: 4, }} >
{chain.iconUrl && (
<img alt={chain.name ?? 'Chain icon'} src={chain.iconUrl} style={{ width: 12, height: 12 }} />
)}
</div>
)}
{chain.name}
</button>
<button onClick={openAccountModal} type="button">
{account.displayName}
{account.displayBalance
? ` (${account.displayBalance})`
: ''}
</button>
</div>
);
})()}
</div>
);
}}
</ConnectButton.Custom>
);
};

次のプロパティがレンダー関数に渡されます。

PropTypeDefault
accountobject | undefined –
account.addressstring –
account.balanceDecimalsstring | undefined –
account.balanceFormattedstring | undefined –
account.balanceSymbolstring | undefined –
account.displayBalancestring | undefined –
account.displayNamestring –
account.ensAvatarstring | undefined –
account.ensNamestring | undefined –
account.hasPendingTransactionsboolean –
PropTypeDefault
chainobject | undefined –
chain.hasIconboolean –
chain.iconUrlstring | undefined –
chain.iconBackgroundstring | undefined –
chain.idnumber –
chain.namestring | undefined –
chain.unsupportedboolean | undefined –
PropTypeDefault
openAccountModal() => void –
openChainModal() => void –
openConnectModal() => void –
accountModalOpenboolean –
chainModalOpenboolean –
connectModalOpenboolean –
PropTypeDefault
mountedboolean –
authenticationStatus"loading" | "unauthenticated" | "authenticated" | undefined –