diff --git a/web/account/connected-wallet-info.css b/web/account/connected-wallet-info.css index 85a08925d..f12bbe74a 100644 --- a/web/account/connected-wallet-info.css +++ b/web/account/connected-wallet-info.css @@ -1,51 +1,53 @@ div.container { display: flex; flex-direction: row; align-items: center; justify-content: space-between; padding: 10px 20px; border-radius: 8px; background-color: #282537; - outline: #302b42 solid 1px; - transition: background-color 0.25s ease, outline-color 0.25s ease, - box-shadow 0.25s ease; + border: #302b42 solid 1px; + transition: background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease; } div.container:hover { cursor: pointer; background-color: #302b42; - outline: #6a20e3 solid 1px; + border: #6a20e3 solid 1px; box-shadow: 2px 4px 20px #6a20e333; - transition: background-color 0.25s, outline-color 0.25s ease, - box-shadow 0.25s ease; + transition: background-color 0.2s ease, border 0.2s ease, box-shadow 0.2s ease; } div.avatar { display: flex; align-items: center; justify-content: center; height: 16px; width: 16px; padding: 8px; border-radius: 16px; } +div.avatar img { + border-radius: 18px; +} + div.address p { font-size: 18px; } div.chevronDown { display: flex; align-content: center; justify-content: center; color: white; } div p { padding-bottom: 0; } div.container p { padding-bottom: 0; font-weight: bold; } diff --git a/web/account/connected-wallet-info.react.js b/web/account/connected-wallet-info.react.js index 926ff1c28..5d2d6e9aa 100644 --- a/web/account/connected-wallet-info.react.js +++ b/web/account/connected-wallet-info.react.js @@ -1,58 +1,70 @@ // @flow import { emojiAvatarForAddress, useAccountModal } from '@rainbow-me/rainbowkit'; import * as React from 'react'; -import { useAccount } from 'wagmi'; +import { useAccount, useEnsAvatar } from 'wagmi'; import { useENSName } from 'lib/hooks/ens-cache.js'; import SWMansionIcon from '../SWMansionIcon.react.js'; import css from './connected-wallet-info.css'; function shortenAddressToFitWidth(address: string): string { if (address.length < 22) { return address; } return `${address.slice(0, 10)}…${address.slice(-10)}`; } type RainbowKitEmojiAvatar = { +color: string, +emoji: string, }; function ConnectedWalletInfo(): React.Node { const { address } = useAccount(); const { openAccountModal } = useAccountModal(); const potentiallyENSName = useENSName(address); const emojiAvatar: RainbowKitEmojiAvatar = React.useMemo( () => emojiAvatarForAddress(address), [address], ); const emojiAvatarStyle = React.useMemo( () => ({ backgroundColor: emojiAvatar.color }), [emojiAvatar.color], ); + const emojiAvatarView = React.useMemo(() =>
{emojiAvatar.emoji}
, [ + emojiAvatar.emoji, + ]); + + const { data: ensAvatarURI } = useEnsAvatar({ + addressOrName: potentiallyENSName, + }); + const potentiallyENSAvatar = React.useMemo( + () => , + [ensAvatarURI], + ); + const onClick = React.useCallback(() => { openAccountModal && openAccountModal(); }, [openAccountModal]); return ({emojiAvatar.emoji}
+ {ensAvatarURI ? potentiallyENSAvatar : emojiAvatarView}{shortenAddressToFitWidth(potentiallyENSName)}