Skip to content

Commit 67478de

Browse files
committed
create reusable wrapper component to tackle problem in multiple places
1 parent 2b9da65 commit 67478de

File tree

7 files changed

+32
-13
lines changed

7 files changed

+32
-13
lines changed

source/renderer/app/components/staking/widgets/PoolPopOver.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { STAKE_POOL_TOOLTIP_HOVER_WAIT } from '../../../config/timingConfig';
66
import StakePool from '../../../domains/StakePool';
77
import TooltipPool from './TooltipPool';
88
import styles from './PoolPopOver.scss';
9+
import TopLevelPopOver from '../../widgets/TopLevelPopOver';
910

1011
/**
1112
* Stake pool tooltip component that can be wrapped around
@@ -52,9 +53,8 @@ export function PoolPopOver(props: {
5253
{props.children}
5354
</div>
5455
{isHovered ? ( // Init the pop over only when the target is hovered
55-
<PopOver
56+
<TopLevelPopOver
5657
interactive
57-
zIndex={10000}
5858
className="PoolPopOver"
5959
delay={props.openWithDelay ? STAKE_POOL_TOOLTIP_HOVER_WAIT : 0}
6060
duration={0}

source/renderer/app/components/staking/widgets/TooltipPool.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import {
3939
IS_RANKING_DATA_AVAILABLE,
4040
IS_SATURATION_DATA_AVAILABLE,
4141
} from '../../../config/stakingConfig';
42+
import TopLevelPopOver from '../../widgets/TopLevelPopOver';
4243

4344
const messages = defineMessages({
4445
ranking: {
@@ -388,7 +389,7 @@ class TooltipPool extends Component<Props, State> {
388389
<div className={styles.fieldLabel}>
389390
{intl.formatMessage(messages[field.key])}
390391
</div>
391-
<PopOver
392+
<TopLevelPopOver
392393
offset={[0, 10]}
393394
key={field.key}
394395
content={
@@ -402,7 +403,7 @@ class TooltipPool extends Component<Props, State> {
402403
<div className={styles.questionMark}>
403404
<SVGInline svg={questionMarkIcon} />
404405
</div>
405-
</PopOver>
406+
</TopLevelPopOver>
406407
</div>
407408
</div>
408409
);

source/renderer/app/components/wallet/WalletCreateDialog.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { FORM_VALIDATION_DEBOUNCE_WAIT } from '../../config/timingConfig';
2525
import { submitOnEnter } from '../../utils/form';
2626
import infoIconInline from '../../assets/images/info-icon.inline.svg';
2727
import LoadingSpinner from '../widgets/LoadingSpinner';
28+
import TopLevelPopOver from '../widgets/TopLevelPopOver';
2829

2930
const messages = defineMessages({
3031
dialogTitle: {
@@ -278,13 +279,12 @@ class WalletCreateDialog extends Component<Props, State> {
278279
onKeyPress={this.handleSubmitOnEnter}
279280
{...spendingPasswordField.bind()}
280281
/>
281-
<PopOver
282-
zIndex={10000}
282+
<TopLevelPopOver
283283
content={<FormattedHTMLMessage {...messages.passwordTooltip} />}
284284
key="tooltip"
285285
>
286286
<SVGInline svg={infoIconInline} className={styles.infoIcon} />
287-
</PopOver>
287+
</TopLevelPopOver>
288288
</div>
289289
<div className={styles.spendingPasswordField}>
290290
<PasswordInput

source/renderer/app/components/wallet/WalletRestoreDialog.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import {
3838
} from '../../config/cryptoConfig';
3939
import infoIconInline from '../../assets/images/info-icon.inline.svg';
4040
import LoadingSpinner from '../widgets/LoadingSpinner';
41+
import TopLevelPopOver from '../widgets/TopLevelPopOver';
4142

4243
const messages = defineMessages({
4344
title: {
@@ -608,12 +609,12 @@ class WalletRestoreDialog extends Component<Props, State> {
608609
onKeyPress={this.handleSubmitOnEnter}
609610
{...spendingPasswordField.bind()}
610611
/>
611-
<PopOver
612+
<TopLevelPopOver
612613
content={<FormattedHTMLMessage {...messages.passwordTooltip} />}
613614
key="tooltip"
614615
>
615616
<SVGInline svg={infoIconInline} className={styles.infoIcon} />
616-
</PopOver>
617+
</TopLevelPopOver>
617618
</div>
618619
<div className={styles.spendingPasswordField}>
619620
<PasswordInput

source/renderer/app/components/wallet/send-form/WalletSendAssetsConfirmationDialog.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import { getMessages } from './WalletSendAssetsConfirmationDialog.messages';
3030
import { shouldShowEmptyWalletWarning } from '../../../utils/walletUtils';
3131
import { hasTokensLeftAfterTransaction } from '../../../utils/assets';
3232
import globalMessages from '../../../i18n/global-messages';
33+
import TopLevelPopOver from '../../widgets/TopLevelPopOver';
3334

3435
const SHOW_TOTAL_AMOUNT = false;
3536
type Props = {
@@ -382,7 +383,7 @@ class WalletSendAssetsConfirmationDialog extends Component<Props, State> {
382383
{intl.formatMessage(
383384
messages.unformattedAmountLabel
384385
)}
385-
<PopOver
386+
<TopLevelPopOver
386387
content={
387388
<div className="UnformattedAmountTooltip">
388389
<FormattedHTMLMessage
@@ -400,7 +401,7 @@ class WalletSendAssetsConfirmationDialog extends Component<Props, State> {
400401
<div className={styles.questionMark}>
401402
<SVGInline svg={questionMarkIcon} />
402403
</div>
403-
</PopOver>
404+
</TopLevelPopOver>
404405
{':'}
405406
</div>
406407
<div className={styles.unformattedAmount}>

source/renderer/app/components/wallet/wallet-import/WalletSelectImportDialog.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import checkmarkImage from '../../../assets/images/check-w.inline.svg';
2828
import { MAX_ADA_WALLETS_COUNT } from '../../../config/numbersConfig';
2929
import type { ExportedByronWallet } from '../../../types/walletExportTypes';
3030
import Dialog from '../../widgets/Dialog';
31+
import TopLevelPopOver from '../../widgets/TopLevelPopOver';
3132

3233
const messages = defineMessages({
3334
title: {
@@ -416,7 +417,7 @@ class WalletSelectImportDialog extends Component<Props> {
416417
</div>
417418
<div className={styles.walletsInputField}>
418419
{!wallet.name ? (
419-
<PopOver
420+
<TopLevelPopOver
420421
content={intl.formatMessage(
421422
messages.enterWalletNameTooltip
422423
)}
@@ -430,7 +431,7 @@ class WalletSelectImportDialog extends Component<Props> {
430431
nameValidator,
431432
onWalletNameChange
432433
)}
433-
</PopOver>
434+
</TopLevelPopOver>
434435
) : (
435436
<>
436437
{this.getInlineEditingSmallInput(
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import React from 'react';
2+
import { PopOver, PopOverProps } from 'react-polymorph/lib/components/PopOver';
3+
4+
const topLevelZIndex = 10000;
5+
6+
const TopLevelPopOver = ({ children, ...props }: PopOverProps) => (
7+
<PopOver
8+
zIndex={topLevelZIndex}
9+
{...props}
10+
>
11+
{children}
12+
</PopOver>
13+
)
14+
15+
export default TopLevelPopOver;

0 commit comments

Comments
 (0)