fix: floatButton tooltip should support number 0 (#39425)

* fix: tooltip should support number 0

* fix

* update snap
This commit is contained in:
lijianan 2022-12-09 14:54:21 +08:00 committed by GitHub
parent 1666eb2721
commit dd50c59c9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 519 additions and 6 deletions

View File

@ -53,16 +53,12 @@ const FloatButton: React.ForwardRefRenderFunction<
[prefixCls, description, icon, type], [prefixCls, description, icon, type],
); );
const buttonNode = tooltip ? ( const buttonNode = (
<Tooltip title={tooltip} placement="left"> <Tooltip title={tooltip} placement="left">
<div className={`${prefixCls}-body`}> <div className={`${prefixCls}-body`}>
<Content {...contentProps} /> <Content {...contentProps} />
</div> </div>
</Tooltip> </Tooltip>
) : (
<div className={`${prefixCls}-body`}>
<Content {...contentProps} />
</div>
); );
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {

View File

@ -64,6 +64,28 @@ exports[`renders ./components/float-button/demo/basic.tsx extend context correct
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
`; `;
@ -110,6 +132,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button>, </button>,
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-square" class="ant-float-btn ant-float-btn-default ant-float-btn-square"
@ -129,6 +173,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button>, </button>,
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-square" class="ant-float-btn ant-float-btn-default ant-float-btn-square"
@ -171,6 +237,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button>, </button>,
] ]
`; `;
@ -219,6 +307,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-circle" class="ant-float-btn ant-float-btn-default ant-float-btn-circle"
@ -255,6 +365,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
</div>, </div>,
<div <div
@ -299,6 +431,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-square" class="ant-float-btn ant-float-btn-default ant-float-btn-square"
@ -335,6 +489,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-square" class="ant-float-btn ant-float-btn-default ant-float-btn-square"
@ -371,6 +547,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
</div>, </div>,
] ]
@ -415,6 +613,28 @@ exports[`renders ./components/float-button/demo/group-menu.tsx extend context co
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
</div> </div>
`; `;
@ -458,6 +678,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-pure ant-float-btn-default ant-float-btn-circle" class="ant-float-btn ant-float-btn-pure ant-float-btn-default ant-float-btn-circle"
@ -494,6 +736,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-pure ant-float-btn-primary ant-float-btn-square" class="ant-float-btn ant-float-btn-pure ant-float-btn-primary ant-float-btn-square"
@ -538,6 +802,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<div <div
class="ant-float-btn-group ant-float-btn-pure ant-float-btn-group-square ant-float-btn-group-square-shadow" class="ant-float-btn-group ant-float-btn-pure ant-float-btn-group-square ant-float-btn-group-square-shadow"
@ -580,6 +866,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-square" class="ant-float-btn ant-float-btn-default ant-float-btn-square"
@ -616,6 +924,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-square" class="ant-float-btn ant-float-btn-default ant-float-btn-square"
@ -652,6 +982,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
</div> </div>
<div <div
@ -698,6 +1050,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-circle" class="ant-float-btn ant-float-btn-default ant-float-btn-circle"
@ -734,6 +1108,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-circle" class="ant-float-btn ant-float-btn-default ant-float-btn-circle"
@ -770,6 +1166,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
</div> </div>
<button <button
@ -807,6 +1225,28 @@ exports[`renders ./components/float-button/demo/render-panel.tsx extend context
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button> </button>
</div> </div>
</div> </div>
@ -893,6 +1333,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button>, </button>,
] ]
`; `;
@ -1003,6 +1465,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button>, </button>,
<button <button
class="ant-float-btn ant-float-btn-default ant-float-btn-circle" class="ant-float-btn ant-float-btn-default ant-float-btn-circle"
@ -1043,6 +1527,28 @@ Array [
</div> </div>
</div> </div>
</div> </div>
<div>
<div
class="ant-tooltip"
style="opacity:0"
>
<div
class="ant-tooltip-content"
>
<div
class="ant-tooltip-arrow"
>
<span
class="ant-tooltip-arrow-content"
/>
</div>
<div
class="ant-tooltip-inner"
role="tooltip"
/>
</div>
</div>
</div>
</button>, </button>,
] ]
`; `;

View File

@ -2,7 +2,7 @@ import React from 'react';
import FloatButton from '..'; import FloatButton from '..';
import mountTest from '../../../tests/shared/mountTest'; import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest'; import rtlTest from '../../../tests/shared/rtlTest';
import { fireEvent, render } from '../../../tests/utils'; import { fireEvent, render, waitFakeTimer } from '../../../tests/utils';
describe('FloatButton', () => { describe('FloatButton', () => {
mountTest(FloatButton); mountTest(FloatButton);
@ -51,4 +51,15 @@ describe('FloatButton', () => {
); );
errSpy.mockRestore(); errSpy.mockRestore();
}); });
it('tooltip should support number `0`', async () => {
jest.useFakeTimers();
const { container } = render(<FloatButton tooltip={0} />);
fireEvent.mouseEnter(container.querySelector<HTMLDivElement>('.ant-float-btn-body')!);
await waitFakeTimer();
const element = container.querySelector('.ant-tooltip')?.querySelector('.ant-tooltip-inner');
expect(element?.textContent).toBe('0');
jest.clearAllTimers();
jest.useRealTimers();
});
}); });