[MM-58442] Migrate tooltips of 'components/drafts/panel/panel_header' to WithTooltip (#27197)

Этот коммит содержится в:
ahmadJT
2024-06-21 17:40:36 +01:00
коммит произвёл GitHub
родитель e23f992b26
Коммит c5c0912abe
3 изменённых файлов: 32 добавлений и 67 удалений

Просмотреть файл

@@ -137,31 +137,20 @@ exports[`components/drafts/panel/panel_header should show sync icon when draft i
<div <div
className="PanelHeader__sync-icon" className="PanelHeader__sync-icon"
> >
<OverlayTrigger <WithTooltip
defaultOverlayShown={false}
delayShow={400}
overlay={
<Tooltip
id="drafts-sync-tooltip" id="drafts-sync-tooltip"
> placement="top"
title={
<Memo(MemoizedFormattedMessage) <Memo(MemoizedFormattedMessage)
defaultMessage="Updated from another device" defaultMessage="Updated from another device"
id="drafts.info.sync" id="drafts.info.sync"
/> />
</Tooltip>
}
placement="top"
trigger={
Array [
"hover",
"focus",
]
} }
> >
<SyncIcon <SyncIcon
size={18} size={18}
/> />
</OverlayTrigger> </WithTooltip>
</div> </div>
<div <div
className="PanelHeader__timestamp" className="PanelHeader__timestamp"

Просмотреть файл

@@ -4,7 +4,7 @@
import {shallow} from 'enzyme'; import {shallow} from 'enzyme';
import React from 'react'; import React from 'react';
import OverlayTrigger from 'components/overlay_trigger'; import WithTooltip from 'components/with_tooltip';
import PanelHeader from './panel_header'; import PanelHeader from './panel_header';
@@ -25,7 +25,7 @@ describe('components/drafts/panel/panel_header', () => {
); );
expect(wrapper.find('div.PanelHeader__actions').hasClass('PanelHeader__actions show')).toBe(false); expect(wrapper.find('div.PanelHeader__actions').hasClass('PanelHeader__actions show')).toBe(false);
expect(wrapper.find(OverlayTrigger).exists()).toBe(false); expect(wrapper.find(WithTooltip).exists()).toBe(false);
expect(wrapper).toMatchSnapshot(); expect(wrapper).toMatchSnapshot();
}); });
@@ -41,7 +41,7 @@ describe('components/drafts/panel/panel_header', () => {
/>, />,
); );
expect(wrapper.find(OverlayTrigger).exists()).toBe(true); expect(wrapper.find(WithTooltip).exists()).toBe(true);
expect(wrapper).toMatchSnapshot(); expect(wrapper).toMatchSnapshot();
}); });

Просмотреть файл

@@ -8,12 +8,9 @@ import {FormattedMessage} from 'react-intl';
import {SyncIcon} from '@mattermost/compass-icons/components'; import {SyncIcon} from '@mattermost/compass-icons/components';
import OverlayTrigger from 'components/overlay_trigger';
import Timestamp from 'components/timestamp'; import Timestamp from 'components/timestamp';
import Tooltip from 'components/tooltip';
import Tag from 'components/widgets/tag/tag'; import Tag from 'components/widgets/tag/tag';
import WithTooltip from 'components/with_tooltip';
import Constants from 'utils/constants';
import './panel_header.scss'; import './panel_header.scss';
@@ -21,15 +18,7 @@ const TIMESTAMP_PROPS: Partial<ComponentProps<typeof Timestamp>> = {
day: 'numeric', day: 'numeric',
useSemanticOutput: false, useSemanticOutput: false,
useTime: false, useTime: false,
units: [ units: ['now', 'minute', 'hour', 'day', 'week', 'month', 'year'],
'now',
'minute',
'hour',
'day',
'week',
'month',
'year',
],
}; };
type Props = { type Props = {
@@ -38,46 +27,33 @@ type Props = {
timestamp: number; timestamp: number;
remote: boolean; remote: boolean;
title: React.ReactNode; title: React.ReactNode;
} };
function PanelHeader({
actions,
hover,
timestamp,
remote,
title,
}: Props) {
const syncTooltip = (
<Tooltip id='drafts-sync-tooltip'>
<FormattedMessage
id='drafts.info.sync'
defaultMessage='Updated from another device'
/>
</Tooltip>
);
function PanelHeader({actions, hover, timestamp, remote, title}: Props) {
return ( return (
<header className='PanelHeader'> <header className='PanelHeader'>
<div className='PanelHeader__left'> <div className='PanelHeader__left'>{title}</div>
{title}
</div>
<div className='PanelHeader__right'> <div className='PanelHeader__right'>
<div className={cn('PanelHeader__actions', {show: hover})}> <div className={cn('PanelHeader__actions', {show: hover})}>
{actions} {actions}
</div> </div>
<div className={cn('PanelHeader__info', {hide: hover})}> <div className={cn('PanelHeader__info', {hide: hover})}>
{remote && <div className='PanelHeader__sync-icon'> {remote && (
<OverlayTrigger <div className='PanelHeader__sync-icon'>
trigger={Constants.OVERLAY_DEFAULT_TRIGGER} <WithTooltip
delayShow={Constants.OVERLAY_TIME_DELAY} id='drafts-sync-tooltip'
placement='top' placement='top'
overlay={syncTooltip} title={
> <FormattedMessage
<SyncIcon id='drafts.info.sync'
size={18} defaultMessage='Updated from another device'
/> />
</OverlayTrigger> }
</div>} >
<SyncIcon size={18}/>
</WithTooltip>
</div>
)}
<div className='PanelHeader__timestamp'> <div className='PanelHeader__timestamp'>
{Boolean(timestamp) && ( {Boolean(timestamp) && (
<Timestamp <Timestamp