From 2092fa10e654c9011aebacefa5eea6c2dff5adfe 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, 14 May 2025 18:10:40 +0800 Subject: [PATCH] refactor: Remove legacy api --- src/TriggerWrapper.tsx | 44 ------------------------------------------ src/index.tsx | 27 +++++++------------------- 2 files changed, 7 insertions(+), 64 deletions(-) delete mode 100644 src/TriggerWrapper.tsx diff --git a/src/TriggerWrapper.tsx b/src/TriggerWrapper.tsx deleted file mode 100644 index 66472b25..00000000 --- a/src/TriggerWrapper.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { - fillRef, - getNodeRef, - supportRef, - useComposeRef, -} from '@rc-component/util/lib/ref'; -import * as React from 'react'; -import type { TriggerProps } from '.'; - -export interface TriggerWrapperProps { - getTriggerDOMNode?: TriggerProps['getTriggerDOMNode']; - children: React.ReactElement; -} - -const TriggerWrapper = React.forwardRef( - (props, ref) => { - const { children, getTriggerDOMNode } = props; - - const canUseRef = supportRef(children); - - // When use `getTriggerDOMNode`, we should do additional work to get the real dom - const setRef = React.useCallback( - (node: React.ReactInstance) => { - fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node); - }, - [getTriggerDOMNode], - ); - - const mergedRef = useComposeRef( - setRef, - getNodeRef(children), - ); - - return canUseRef - ? React.cloneElement(children, { ref: mergedRef }) - : children; - }, -); - -if (process.env.NODE_ENV !== 'production') { - TriggerWrapper.displayName = 'TriggerWrapper'; -} - -export default TriggerWrapper; diff --git a/src/index.tsx b/src/index.tsx index 455ff408..83923b72 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -10,7 +10,6 @@ import useLayoutEffect from '@rc-component/util/lib/hooks/useLayoutEffect'; import isMobile from '@rc-component/util/lib/isMobile'; import * as React from 'react'; import Popup from './Popup'; -import TriggerWrapper from './TriggerWrapper'; import type { TriggerContextProps } from './context'; import TriggerContext from './context'; import useAction from './hooks/useAction'; @@ -113,13 +112,6 @@ export interface TriggerProps { // ==================== Arrow ==================== arrow?: boolean | ArrowTypeOuter; - // =================== Private =================== - /** - * @private Get trigger DOM node. - * Used for some component is function component which can not access by `findDOMNode` - */ - getTriggerDOMNode?: (node: React.ReactInstance) => HTMLElement; - // // ========================== Mobile ========================== // /** @private Bump fixed position at bottom in mobile. // * This is internal usage currently, do not use in your prod */ @@ -188,9 +180,6 @@ export function generateTrigger( popupMotion, maskMotion, - // Private - getTriggerDOMNode, - ...restProps } = props; @@ -634,12 +623,6 @@ export function generateTrigger( } }); - // Child Node - const triggerNode = React.cloneElement(child, { - ...mergedChildrenProps, - ...passedProps, - }); - const arrowPos: ArrowPos = { x: arrowX, y: arrowY, @@ -652,6 +635,12 @@ export function generateTrigger( } : null; + // Child Node + const triggerNode = React.cloneElement(child, { + ...mergedChildrenProps, + ...passedProps, + }); + // Render return ( <> @@ -660,9 +649,7 @@ export function generateTrigger( ref={setTargetRef} onResize={onTargetResize} > - - {triggerNode} - + {triggerNode}