fix(Propover): Isolate Form.Item status from popup-type components (#56728)

* 🧪 add unit test

* fix(Propover): Isolate `Form.Item` status from popup-type components
This commit is contained in:
𝑾𝒖𝒙𝒉
2026-01-26 14:49:03 +08:00
committed by GitHub
parent 705c3642d3
commit 3034888500
2 changed files with 12 additions and 1 deletions

View File

@@ -27,6 +27,7 @@ import Radio from '../../radio';
import Select from '../../select';
import Slider from '../../slider';
import Switch from '../../switch';
import Popover from '../../popover';
import TreeSelect from '../../tree-select';
import Upload from '../../upload';
import type { NamePath } from '../interface';
@@ -1850,6 +1851,11 @@ describe('Form', () => {
<Select className="drawer-select" />
</Drawer>
</Form.Item>
<Form.Item validateStatus="error">
<Popover open content={<Input className="custom-popup-input" />}>
<span>issue#56615</span>
</Popover>
</Form.Item>
</Form>
);
const { container } = render(<Demo />, { container: document.body });
@@ -1857,6 +1863,11 @@ describe('Form', () => {
expect(container.querySelector('.modal-select')).not.toHaveClass('status-error');
expect(container.querySelector('.drawer-select')).not.toHaveClass('in-form-item');
expect(container.querySelector('.drawer-select')).not.toHaveClass('status-error');
// https://github.com/ant-design/ant-design/issues/56615
expect(container.querySelector('.custom-popup-input')).not.toHaveClass(
'ant-input-status-error',
);
});
// eslint-disable-next-line jest/no-disabled-tests

View File

@@ -270,7 +270,7 @@ const InternalTooltip = React.forwardRef<TooltipRef, InternalTooltipProps>((prop
}, [overlay, title]);
const memoOverlayWrapper = (
<ContextIsolator space>
<ContextIsolator space form>
{typeof memoOverlay === 'function' ? memoOverlay() : memoOverlay}
</ContextIsolator>
);