From e23d94756439bcc5f1665fe2413142f0470518f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Wed, 26 Nov 2025 16:41:26 +0800 Subject: [PATCH] fix: not prevent when child --- src/SelectInput/index.tsx | 3 ++- tests/components.test.tsx | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/SelectInput/index.tsx b/src/SelectInput/index.tsx index d73221ea..6eb93b2e 100644 --- a/src/SelectInput/index.tsx +++ b/src/SelectInput/index.tsx @@ -171,7 +171,8 @@ export default React.forwardRef(function Selec // ====================== Open ====================== const onInternalMouseDown: SelectInputProps['onMouseDown'] = useEvent((event) => { if (!disabled) { - if (event.target !== getDOM(inputRef.current)) { + const inputDOM = getDOM(inputRef.current); + if (inputDOM && event.target !== inputDOM && !inputDOM.contains(event.target as Node)) { event.preventDefault(); } diff --git a/tests/components.test.tsx b/tests/components.test.tsx index 77978e65..8d88e694 100644 --- a/tests/components.test.tsx +++ b/tests/components.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@testing-library/react'; +import { createEvent, fireEvent, render } from '@testing-library/react'; import React from 'react'; import Select from '../src'; import { injectRunAllTimers } from './utils/common'; @@ -22,4 +22,27 @@ describe('Select.Components', () => { expect(container.querySelector('textarea')?.getAttribute('placeholder')).toBe('test'); }); + + it('should not preventDefault when customize input contains input', () => { + const preventDefault = jest.fn(); + const { container } = render( +