diff --git a/packages/web3/src/connect-button/__tests__/index.test.tsx b/packages/web3/src/connect-button/__tests__/index.test.tsx index 51565565a..d193f48f9 100644 --- a/packages/web3/src/connect-button/__tests__/index.test.tsx +++ b/packages/web3/src/connect-button/__tests__/index.test.tsx @@ -11,9 +11,49 @@ describe('ConnectButton', () => { afterEach(() => { resetMockClipboard(); }); + it('mount correctly', () => { expect(() => render()).not.toThrow(); }); + + it('display name', () => { + const { baseElement } = render( + , + ); + expect(baseElement.querySelector('.ant-btn')?.textContent).toBe('wanderingearth.eth'); + }); + + it('display addresss when not has name', () => { + const { baseElement } = render( + , + ); + expect(baseElement.querySelector('.ant-btn')?.textContent).toBe('0x21CD...Fd3B'); + }); + + it('display name when not has address', () => { + const { baseElement } = render(); + expect(baseElement.querySelector('.ant-btn')?.textContent).toBe('wanderingearth.eth'); + }); + + it('tooltip show address when has name', () => { + const { baseElement } = render( + , + ); + expect(baseElement.querySelector('.ant-btn')?.textContent).toBe('wanderingearth.eth'); + expect(baseElement.querySelector('.ant-tooltip')).not.toBeNull(); + expect(baseElement.querySelector('.ant-tooltip-inner')?.textContent).toBe('0x3ea2cf...097c18'); + expect(baseElement.querySelector('.anticon-copy')).not.toBeNull(); + }); + it('display tooltip', () => { const { baseElement } = render( , diff --git a/packages/web3/src/connect-button/connect-button.tsx b/packages/web3/src/connect-button/connect-button.tsx index d344c4d3d..395f231cc 100644 --- a/packages/web3/src/connect-button/connect-button.tsx +++ b/packages/web3/src/connect-button/connect-button.tsx @@ -14,9 +14,14 @@ export const ConnectButton: React.FC = (props) => { currentChain, onSwitchChain, tooltip, + name, ...restProps } = props; + let buttonText: React.ReactNode = 'Connect Wallet'; + if (connected) { + buttonText = name ??
; + } const buttonProps = { style: props.style, className: props.className, @@ -30,7 +35,7 @@ export const ConnectButton: React.FC = (props) => { onConnectClick?.(); } }, - children: connected ?
: 'Connect Wallet', + children: buttonText, ...restProps, }; diff --git a/packages/web3/src/connect-button/demos/name.tsx b/packages/web3/src/connect-button/demos/name.tsx new file mode 100644 index 000000000..a497d7bf5 --- /dev/null +++ b/packages/web3/src/connect-button/demos/name.tsx @@ -0,0 +1,14 @@ +import { ConnectButton } from '@ant-design/web3'; + +const App: React.FC = () => { + return ( + + ); +}; + +export default App; diff --git a/packages/web3/src/connect-button/demos/tooltip.tsx b/packages/web3/src/connect-button/demos/tooltip.tsx index 26c82857b..1ca55ae99 100644 --- a/packages/web3/src/connect-button/demos/tooltip.tsx +++ b/packages/web3/src/connect-button/demos/tooltip.tsx @@ -4,12 +4,13 @@ import { Space } from 'antd'; const App: React.FC = () => { return ( - + { title: 'aaaaaabbbbbbcccccc', copyable: false, }} + connected /> ); diff --git a/packages/web3/src/connect-button/index.md b/packages/web3/src/connect-button/index.md index 3b8b76d30..01f21327b 100644 --- a/packages/web3/src/connect-button/index.md +++ b/packages/web3/src/connect-button/index.md @@ -17,11 +17,16 @@ A Button for connect chain quickly. +## Show Name + + + ## API | Property | Description | Type | Default | Version | | --- | --- | --- | --- | --- | | address | Address | `string` | - | - | +| name | Name, like ENS | `string` | - | - | | tooltip | Show tooltip when mouse enter address | `boolean \|` [ConnectButtonTooltipProps](#connectbuttontooltipprops) | `true`, will display address by default | - | ### ConnectButtonTooltipProps diff --git a/packages/web3/src/connect-button/index.zh-CN.md b/packages/web3/src/connect-button/index.zh-CN.md index 8a79935e5..eede63106 100644 --- a/packages/web3/src/connect-button/index.zh-CN.md +++ b/packages/web3/src/connect-button/index.zh-CN.md @@ -15,11 +15,16 @@ group: 组件 +## 显示名称 + + + ## API | 属性 | 描述 | 类型 | 默认值 | 版本 | | --- | --- | --- | --- | --- | | address | 地址 | `string` | - | - | +| name | 名称,比如以太坊的 ENS | `string` | - | - | | tooltip | 鼠标移入地址时展示提示 | `boolean \|` [ConnectButtonTooltipProps](#connectbuttontooltipprops) | `true`,默认显示 address 信息 | - | ### ConnectButtonTooltipProps