Skip to content

Commit a6285d1

Browse files
authored
feat: arrow support className (#449)
* feat: arrow support className * chore: clear
1 parent c91ecc4 commit a6285d1

File tree

4 files changed

+22
-5
lines changed

4 files changed

+22
-5
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ Online examples: <https://react-component.github.io/tooltip/examples/>
170170
</tr>
171171
<tr>
172172
<td>showArrow</td>
173-
<td>boolean</td>
173+
<td>boolean | { className?: string }</td>
174174
<td>true</td>
175175
<td>arrow visible</td>
176176
</tr>

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
},
4242
"dependencies": {
4343
"@babel/runtime": "^7.11.2",
44-
"@rc-component/trigger": "^1.0.4",
44+
"@rc-component/trigger": "^1.10.0",
4545
"classnames": "^2.3.1"
4646
},
4747
"devDependencies": {

src/Tooltip.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { TriggerProps, TriggerRef } from '@rc-component/trigger';
1+
import type { TriggerProps, TriggerRef, ArrowType } from '@rc-component/trigger';
22
import Trigger from '@rc-component/trigger';
33
import type { ActionType, AlignType, AnimationType } from '@rc-component/trigger/lib/interface';
44
import * as React from 'react';
@@ -28,7 +28,7 @@ export interface TooltipProps extends Pick<TriggerProps, 'onPopupAlign' | 'built
2828
getTooltipContainer?: (node: HTMLElement) => HTMLElement;
2929
destroyTooltipOnHide?: boolean;
3030
align?: AlignType;
31-
showArrow?: boolean;
31+
showArrow?: boolean | ArrowType;
3232
arrowContent?: React.ReactNode;
3333
id?: string;
3434
children?: React.ReactElement;

tests/index.test.tsx

+18-1
Original file line numberDiff line numberDiff line change
@@ -178,9 +178,26 @@ describe('rc-tooltip', () => {
178178
</Tooltip>,
179179
);
180180
fireEvent.click(container.querySelector('.target'));
181-
console.log(container.innerHTML);
182181
expect(container.querySelector('.rc-tooltip-arrow')).toBeTruthy();
183182
});
183+
it('should show tooltip arrow when showArrow is object', () => {
184+
const { container } = render(
185+
<Tooltip
186+
destroyTooltipOnHide
187+
trigger={['click']}
188+
placement="left"
189+
overlay={<strong className="x-content">Tooltip content</strong>}
190+
showArrow={{
191+
className: 'abc'
192+
}}
193+
>
194+
<div className="target">Click this</div>
195+
</Tooltip>,
196+
);
197+
fireEvent.click(container.querySelector('.target'));
198+
expect(container.querySelector('.rc-tooltip-arrow')).toBeTruthy();
199+
expect(container.querySelector('.rc-tooltip-arrow').classList.contains('abc')).toBeTruthy();
200+
});
184201
it('should hide tooltip arrow when showArrow is false', () => {
185202
const { container } = render(
186203
<Tooltip

0 commit comments

Comments
 (0)