Skip to content

Commit 333fa46

Browse files
committed
update Address component with shortAddress prop
1 parent 124802d commit 333fa46

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

packages/components/src/components/Address/Address.stories.tsx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,22 @@ export default {
99
component: Address,
1010
};
1111

12-
export const Default = () => <Address value='testaddress.eth' />;
12+
export const Default = () => <Address value='testaddress.eth' shortened={false} />;
1313

14-
const AddressUsingProvider = () => {
14+
export const DefaultShortenedWithENS = () => <Address value='testaddress.eth' shortened={true} />;
15+
16+
export const DefaultShortenedWithHexAddress = () => (
17+
<Address value='0x7Be8076f4EA4A4AD08075C2508e481d6C946D12b' shortened={true} />
18+
);
19+
20+
const AddressUsingProvider = ({ shortened }) => {
1521
const { connected, connectWallet, connection } = useWallet();
1622

1723
return (
1824
<>
1925
<Address
2026
value={connected ? connection.ens || connection.userAddress || '' : 'Not connected'}
27+
shortened={shortened}
2128
/>
2229
<Button onClick={connectWallet}>Connect wallet</Button>
2330
</>
@@ -26,6 +33,12 @@ const AddressUsingProvider = () => {
2633

2734
export const WithWallet = () => (
2835
<Provider network={NETWORKS.rinkeby}>
29-
<AddressUsingProvider />
36+
<AddressUsingProvider shortened={false} />
37+
</Provider>
38+
);
39+
40+
export const WithWalletShortened = () => (
41+
<Provider network={NETWORKS.rinkeby}>
42+
<AddressUsingProvider shortened={true} />
3043
</Provider>
3144
);

packages/components/src/components/Address/Address.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Address } from './Address';
55

66
describe('Address', () => {
77
it('renders without throwing', () => {
8-
const { container } = render(<Address value="taylorswift.eth" />);
8+
const { container } = render(<Address value='taylorswift.eth' shortened={false} />);
99
expect(container).toBeInTheDocument();
1010
});
1111
});

packages/components/src/components/Address/Address.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,27 @@ export interface AddressProps {
66
* The address to display
77
*/
88
value: string;
9+
/**
10+
* boolean to shorten the address if addresses does not resolve to an ENS name
11+
*/
12+
shortened: boolean;
913
}
1014

1115
/**
1216
* A component to display an address
1317
*/
14-
export const Address: React.FC<AddressProps> = ({ value }) => {
15-
return <Input value={value} />;
18+
export const Address: React.FC<AddressProps> = ({ value, shortened }) => {
19+
if (shortened) {
20+
if (value.includes('.eth')) {
21+
return <Input value={value} />;
22+
} else if (value === '' || value === 'Not connected') {
23+
return <Input value={value} />;
24+
} else {
25+
let address: string;
26+
address = `${value.substring(0, 4)}...${value.substring(value.length - 4)}`;
27+
return <Input value={address.toLowerCase()} />;
28+
}
29+
} else {
30+
return <Input value={value} />;
31+
}
1632
};

0 commit comments

Comments
 (0)