From c00af455dec8d1435cc0deb3d267bed7e9b43fc6 Mon Sep 17 00:00:00 2001 From: apanizo Date: Thu, 30 Aug 2018 17:03:20 +0200 Subject: [PATCH] Refactor Header component using Provider and Popover --- src/components/Header/component/Layout.jsx | 125 +++++++++------------ 1 file changed, 55 insertions(+), 70 deletions(-) diff --git a/src/components/Header/component/Layout.jsx b/src/components/Header/component/Layout.jsx index 5f7f27c7..bea1190c 100644 --- a/src/components/Header/component/Layout.jsx +++ b/src/components/Header/component/Layout.jsx @@ -1,11 +1,10 @@ // @flow import * as React from 'react' import { withStyles } from '@material-ui/core/styles' -import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails' +import ClickAwayListener from '@material-ui/core/ClickAwayListener' import OpenInNew from '@material-ui/icons/OpenInNew' -import IconButton from '@material-ui/core/IconButton' -import ExpandLess from '@material-ui/icons/ExpandLess' -import ExpandMore from '@material-ui/icons/ExpandMore' +import Grow from '@material-ui/core/Grow' +import Popper from '@material-ui/core/Popper' import Divider from '~/components/layout/Divider' import Paragraph from '~/components/layout/Paragraph' import openHoc, { type Open } from '~/components/hoc/OpenHoc' @@ -17,6 +16,7 @@ import Identicon from '~/components/Identicon' import Spacer from '~/components/Spacer' import { border, sm, md } from '~/theme/variables' import Details from './Details' +import Provider from './Provider' const logo = require('../assets/gnosis-safe-logo.svg') @@ -30,7 +30,7 @@ type Props = Open & { const styles = theme => ({ summary: { - border: `solid 2px ${border}`, + borderBottom: `solid 2px ${border}`, alignItems: 'center', height: '52px', }, @@ -38,23 +38,6 @@ const styles = theme => ({ padding: `${sm} ${md}`, flexBasis: '95px', }, - provider: { - padding: `${sm} ${md}`, - alignItems: 'center', - flex: '0 1 auto', - display: 'flex', - cursor: 'pointer', - }, - account: { - padding: `0 ${md} 0 ${sm}`, - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - }, - expand: { - width: '20px', - height: '20px', - }, user: { alignItems: 'center', border: '1px solid grey', @@ -74,8 +57,8 @@ const styles = theme => ({ }, icon: { verticalAlign: 'bottom', - height: 20, - width: 20, + height: 30, + width: 30, }, details: { alignItems: 'center', @@ -107,50 +90,52 @@ const openIconStyle = { const Header = openHoc(({ open, toggle, provider, network, connected, classes, userAddress, -}: Props) => { - const providerText = connected ? `${provider} [${network}]` : 'Not connected' - const cutAddress = connected ? `${userAddress.substring(0, 8)}...${userAddress.substring(36)}` : '' +}: Props) => ( + + + + Gnosis Team Safe + + + + + + {myRef => ( + + {({ TransitionProps }) => ( + + + + +
+ + + + + {userAddress} + + + + + + + + + )} + + )} + + + +)) - return ( - - - - Gnosis Team Safe - - - - - - { connected && } - - {providerText} - {cutAddress} - - - { open ? : } - - - - { connected && - - - -
- - - - - {userAddress} - - - - - - - - } - - ) -}) - -export default withStyles(styles)(Header) +export default withStyles(styles)(openHoc(Header))