Skip to content

Commit a17dddb

Browse files
profile popover hover fixes (#215)
navabr profile address fixes
1 parent bd03321 commit a17dddb

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

src/containers/NavBar/ProfilePopover.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ const ProfilePopover = (props) => {
3939
classes={{
4040
paper: classes.paper,
4141
}}
42-
open={props.open}
42+
open={props.open && Boolean(props.anchorEl)}
4343
transformOrigin={{
4444
vertical: 'top',
4545
horizontal: 'center',
@@ -54,15 +54,19 @@ const ProfilePopover = (props) => {
5454
<p className="address_heading">{variables[props.lang].transparent_address}</p>
5555
<div className="hash_text" title={props.address}>
5656
<p className="name">{props.address}</p>
57-
{props.address && props.address.slice(props.address.length - 6, props.address.length)}
57+
{props.address &&
58+
props.address.slice(props.address.length - 6)}
5859
<CopyButton data={props.address}>
5960
{variables[props.lang].copy}
6061
</CopyButton>
6162
</div>
6263
<p className="address_heading">{variables[props.lang].shielded_address}</p>
6364
<div className="hash_text" title={props.address}>
64-
<p className="name">{props.shieldedaddress?.shieldedDetails}</p>
65-
{props.address && props.shieldedaddress?.shieldedDetails.slice(props.shieldedaddress?.shieldedDetails.length - 6, props.shieldedaddress?.shieldedDetails.length)}
65+
<p className="name">{props.shieldedaddress?.shieldedDetails || '-'}</p>
66+
{props.shieldedaddress?.shieldedDetails &&
67+
props.shieldedaddress.shieldedDetails.slice(
68+
props.shieldedaddress.shieldedDetails.length - 6
69+
)}
6670
<CopyButton data={props.shieldedaddress?.shieldedDetails}>
6771
{variables[props.lang].copy}
6872
</CopyButton>

src/containers/NavBar/index.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ class NavBar extends Component {
9090
profileAnchorEl: null,
9191
};
9292

93+
this.hoveringProfileArea = false;
94+
this.closeTimeout = null;
95+
9396
this.initKeplr = this.initKeplr.bind(this);
9497
this.handleFetch = this.handleFetch.bind(this);
9598
this.handleFetchValidators = this.handleFetchValidators.bind(this);
@@ -497,6 +500,24 @@ class NavBar extends Component {
497500
});
498501
};
499502

503+
handleProfileMouseEnter = (event) => {
504+
this.hoveringProfileArea = true;
505+
clearTimeout(this.closeTimeout);
506+
507+
if (!this.state.profileAnchorEl) {
508+
this.setState({ profileAnchorEl: event.currentTarget });
509+
}
510+
};
511+
512+
handleProfileMouseLeave = () => {
513+
this.hoveringProfileArea = false;
514+
this.closeTimeout = setTimeout(() => {
515+
if (!this.hoveringProfileArea) {
516+
this.setState({ profileAnchorEl: null });
517+
}
518+
}, 200);
519+
};
520+
500521
render () {
501522
const { profileAnchorEl } = this.state;
502523
const profileOpen = Boolean(profileAnchorEl);
@@ -546,8 +567,8 @@ class NavBar extends Component {
546567
</CustomTooltip> : null}
547568
{localStorage.getItem('of_co_address') || this.props.address
548569
? (<div
549-
onMouseEnter={this.handleProfilePopoverOpen}
550-
onMouseLeave={this.handleProfilePopoverClose}
570+
onMouseEnter={this.handleProfileMouseEnter}
571+
onMouseLeave={this.handleProfileMouseLeave}
551572
className="profile_button"
552573
style={{ cursor: 'pointer', position: 'relative' }}
553574
>
@@ -556,6 +577,8 @@ class NavBar extends Component {
556577
<ProfilePopover
557578
anchorEl={profileAnchorEl}
558579
open={profileOpen}
580+
onMouseEnter={this.handleProfileMouseEnter}
581+
onMouseLeave={this.handleProfileMouseLeave}
559582
onClose={this.handleProfilePopoverClose}
560583
/>
561584
)}

0 commit comments

Comments
 (0)