Skip to content

Commit 187be03

Browse files
authored
feat: tooltip support show-arrow cls when showArrow not falsy (#430)
* feat: tooltip support show-arrow cls when showArrow not falsy * feat: optimize code * feat: reset resolutions * chore: merge master * feat: optimize code
1 parent 61a3286 commit 187be03

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/Tooltip.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type { TriggerProps } from 'rc-trigger';
55
import type { AlignType, AnimationType, ActionType } from 'rc-trigger/lib/interface';
66
import { placements } from './placements';
77
import Popup from './Popup';
8+
import classNames from 'classnames';
89

910
export interface TooltipProps extends Pick<TriggerProps, 'onPopupAlign' | 'builtinPlacements'> {
1011
trigger?: ActionType | ActionType[];
@@ -64,7 +65,7 @@ const Tooltip = (props: TooltipProps, ref) => {
6465
arrowContent,
6566
overlay,
6667
id,
67-
showArrow,
68+
showArrow = true,
6869
...restProps
6970
} = props;
7071

@@ -101,7 +102,9 @@ const Tooltip = (props: TooltipProps, ref) => {
101102

102103
return (
103104
<Trigger
104-
popupClassName={overlayClassName}
105+
popupClassName={classNames(overlayClassName, {
106+
[`${prefixCls}-show-arrow`]: showArrow,
107+
})}
105108
prefixCls={prefixCls}
106109
popup={getPopupElement}
107110
action={trigger}

tests/index.test.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ describe('rc-tooltip', () => {
174174
</Tooltip>,
175175
);
176176
fireEvent.click(container.querySelector('.target'));
177+
expect(container.querySelector('.rc-tooltip').classList).toContain('rc-tooltip-show-arrow');
177178
expect(container.querySelector('.rc-tooltip-content').outerHTML).toBe(
178179
'<div class="rc-tooltip-content"><div class="rc-tooltip-arrow"></div><div class="rc-tooltip-inner" role="tooltip"><strong class="x-content">Tooltip content</strong></div></div>',
179180
);
@@ -191,6 +192,7 @@ describe('rc-tooltip', () => {
191192
</Tooltip>,
192193
);
193194
fireEvent.click(container.querySelector('.target'));
195+
expect(container.querySelector('.rc-tooltip').classList).toContain('rc-tooltip-show-arrow');
194196
expect(container.querySelector('.rc-tooltip-content').outerHTML).toBe(
195197
'<div class="rc-tooltip-content"><div class="rc-tooltip-arrow"></div><div class="rc-tooltip-inner" role="tooltip"><strong class="x-content">Tooltip content</strong></div></div>',
196198
);
@@ -208,6 +210,9 @@ describe('rc-tooltip', () => {
208210
</Tooltip>,
209211
);
210212
fireEvent.click(container.querySelector('.target'));
213+
expect(container.querySelector('.rc-tooltip').classList).not.toContain(
214+
'rc-tooltip-show-arrow',
215+
);
211216
expect(container.querySelector('.rc-tooltip-content').outerHTML).toBe(
212217
'<div class="rc-tooltip-content"><div class="rc-tooltip-inner" role="tooltip"><strong class="x-content">Tooltip content</strong></div></div>',
213218
);

0 commit comments

Comments
 (0)