Skip to content

Commit 1cdbf7a

Browse files
authored
Merge pull request #2299 from oasisprotocol/mz/uil-tooltip-2
Replace MUI Tooltip with Oasis UI Library component
2 parents 9054484 + 1ff6aa5 commit 1cdbf7a

File tree

7 files changed

+19
-34
lines changed

7 files changed

+19
-34
lines changed

.changelog/2299.internal.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Replace MUI Tooltip with Oasis UI Library component

playwright/tests/getPreciseNumberFormat.spec.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ async function setup(page: Page, balance: string, decimals: number) {
5252

5353
// Trigger tooltips to find all precise numbers
5454
await page.evaluate(() => {
55-
document.querySelectorAll('[aria-label]').forEach(el => {
56-
el.dispatchEvent(new MouseEvent('mouseover', { view: window, bubbles: true, cancelable: true }))
55+
document.querySelectorAll('[data-slot="tooltip-trigger"]').forEach(el => {
56+
el.dispatchEvent(new MouseEvent('focusin', { view: window, bubbles: true, cancelable: true }))
5757
})
5858
})
5959
}
@@ -62,7 +62,7 @@ test.describe('getPreciseNumberFormat', () => {
6262
test('small number should be precise and formatted', async ({ page }) => {
6363
await setup(page, '111222333444555', 9)
6464
// Expect precisely formatted small number even when browser doesn't support precise formatting for large numbers
65-
await expect(page.getByText('111,222.333444555', { exact: true })).toBeVisible()
65+
await expect(page.getByText('111,222.333444555', { exact: true }).first()).toBeVisible()
6666
})
6767

6868
test('large number should be precise and formatted or fallback to precise unformatted number in browsers without support', async ({
@@ -72,8 +72,9 @@ test.describe('getPreciseNumberFormat', () => {
7272
await expect(
7373
page
7474
.getByText('111,222,333,444,555,666,777,888,999.111222333444555666', { exact: true })
75+
.first()
7576
// Expect precise fallback when browser doesn't support precise formatting
76-
.or(page.getByText('111222333444555666777888999.111222333444555666', { exact: true })),
77+
.or(page.getByText('111222333444555666777888999.111222333444555666', { exact: true }).first()),
7778
).toBeVisible()
7879
})
7980

@@ -82,7 +83,7 @@ test.describe('getPreciseNumberFormat', () => {
8283
}) => {
8384
await setup(page, '111222333444555666777888999111222333444555666', 36)
8485
await expect(
85-
page.getByText('111222333.444555666777888999111222333444555666', { exact: true }),
86+
page.getByText('111222333.444555666777888999111222333444555666', { exact: true }).first(),
8687
).toBeVisible()
8788
})
8889
})

src/app/components/RoundedBalance/index.tsx

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { FC } from 'react'
22
import { Trans, useTranslation } from 'react-i18next'
33
import BigNumber from 'bignumber.js'
4-
import Tooltip from '@mui/material/Tooltip'
5-
import { tooltipDelay } from '../../../styles/theme'
4+
import { Tooltip } from '@oasisprotocol/ui-library/src/components/tooltip'
65
import { SearchScope } from '../../../types/searchScope'
76
import { TokenLink } from '../Tokens/TokenLink'
87
import { PlaceholderLabel } from '../../utils/PlaceholderLabel'
@@ -53,13 +52,7 @@ export const RoundedBalance: FC<RoundedBalanceProps> = ({
5352

5453
if (compactAllNumbers || (number.isGreaterThan(100_000) && compactLargeNumbers)) {
5554
return (
56-
<Tooltip
57-
arrow
58-
placement="top"
59-
title={t('common.valueInToken', preciseValueFormat)}
60-
enterDelay={tooltipDelay}
61-
enterNextDelay={tooltipDelay}
62-
>
55+
<Tooltip title={t('common.valueInToken', preciseValueFormat)}>
6356
<span>
6457
<Trans
6558
t={t}
@@ -96,13 +89,7 @@ export const RoundedBalance: FC<RoundedBalanceProps> = ({
9689

9790
return (
9891
<span>
99-
<Tooltip
100-
arrow
101-
placement="top"
102-
title={t('common.valueInToken', preciseValueFormat)}
103-
enterDelay={tooltipDelay}
104-
enterNextDelay={tooltipDelay}
105-
>
92+
<Tooltip title={t('common.valueInToken', preciseValueFormat)}>
10693
<span>
10794
<Trans
10895
t={t}

src/app/components/TableCellAge/index.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { FC } from 'react'
2-
import Tooltip from '@mui/material/Tooltip'
2+
import { Tooltip } from '@oasisprotocol/ui-library/src/components/tooltip'
33
import { formatDistanceToNow } from '../../utils/dateFormatter'
44
import { useFormattedTimestamp } from '../../hooks/useFormattedTimestamp'
5-
import { tooltipDelay } from '../../../styles/theme'
65
import { formatDistanceStrict } from 'date-fns/formatDistanceStrict'
76
import { useLocalSettings } from '../../hooks/useLocalSettings'
87
import { TableAgeType } from '../../../types/table-age-type'
@@ -31,15 +30,15 @@ export const TableCellAge: FC<{ sinceTimestamp: string }> = ({ sinceTimestamp })
3130
addSuffix: true,
3231
})
3332
const title = (
34-
<span>
35-
{defaultFormatted}
33+
<>
34+
<div className="font-medium">{defaultFormatted}</div>
3635
<div className="font-normal">{distanceWithSuffix}</div>
37-
</span>
36+
</>
3837
)
3938
const content = ageHeaderType === TableAgeType.DateTime ? tableFormatted : distance
4039

4140
return (
42-
<Tooltip title={title} enterDelay={tooltipDelay} placement={'top'}>
41+
<Tooltip title={title}>
4342
<div>{content}</div>
4443
</Tooltip>
4544
)

src/app/components/Tokens/TokenLinkWithIcon.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { SearchScope } from '../../../types/searchScope'
44
import { TokenLink } from './TokenLink'
55
import { useAccountMetadata } from '../../hooks/useAccountMetadata'
66
import { InitialsAvatar } from '../AccountAvatar/InitialsAvatar'
7-
import Tooltip from '@mui/material/Tooltip'
7+
import { Tooltip } from '@oasisprotocol/ui-library/src/components/tooltip'
88
import { Trans, useTranslation } from 'react-i18next'
99

1010
export const TokenLinkWithIcon: FC<{
@@ -18,9 +18,6 @@ export const TokenLinkWithIcon: FC<{
1818
return (
1919
<div className="flex items-center gap-2">
2020
<Tooltip
21-
placement="top"
22-
arrow
23-
slotProps={{ tooltip: { sx: { fontWeight: 'normal' } } }}
2421
title={
2522
metadata?.origin && (
2623
<Trans

src/app/pages/RoflAppDetailsPage/GridRow.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { FC, ReactNode } from 'react'
22
import { useTranslation } from 'react-i18next'
3-
import Tooltip from '@mui/material/Tooltip'
3+
import { Tooltip } from '@oasisprotocol/ui-library/src/components/tooltip'
44
import InfoIcon from '@mui/icons-material/Info'
55
import { COLORS } from '../../../styles/theme/colors'
66

@@ -18,7 +18,7 @@ export const GridRow: FC<GridRowProps> = ({ label, children, tooltip }) => {
1818
<div className="col-span-1 border-b border-gray-100 p-2 md:p-4 flex gap-1">
1919
{label}:
2020
{tooltip && (
21-
<Tooltip title={tooltip} placement="top">
21+
<Tooltip title={tooltip}>
2222
<InfoIcon htmlColor={COLORS.brandDark} fontSize="small" />
2323
</Tooltip>
2424
)}

0 commit comments

Comments
 (0)