forked from 1Hive/gardens-ui
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathAccountButton.js
More file actions
80 lines (76 loc) · 1.79 KB
/
AccountButton.js
File metadata and controls
80 lines (76 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import React from 'react'
import PropTypes from 'prop-types'
import {
EthIdenticon,
GU,
RADIUS,
shortenAddress,
textStyle,
useTheme,
} from '@tecommons/ui'
import { useWallet } from 'use-wallet'
import HeaderModule from '../Header/HeaderModule'
function AccountButton({ label, onClick }) {
const theme = useTheme()
const wallet = useWallet()
return (
<HeaderModule
icon={
<div css="position: relative">
<EthIdenticon address={wallet.account} radius={RADIUS} />
<div
css={`
position: absolute;
bottom: -3px;
right: -3px;
width: 10px;
height: 10px;
background: ${theme.positive};
border: 2px solid ${theme.surface};
border-radius: 50%;
`}
/>
</div>
}
content={
<>
<div
css={`
margin-bottom: -5px;
${textStyle('body2')}
`}
>
{label ? (
<div
css={`
overflow: hidden;
max-width: ${16 * GU}px;
text-overflow: ellipsis;
white-space: nowrap;
`}
>
{label}
</div>
) : (
<div>{shortenAddress(wallet.account)}</div>
)}
</div>
<div
css={`
font-size: 11px; /* doesn’t exist in aragonUI */
color: ${theme.positive};
`}
>
Connected
</div>
</>
}
onClick={onClick}
/>
)
}
AccountButton.propTypes = {
label: PropTypes.string,
onClick: PropTypes.func.isRequired,
}
export default AccountButton