diff --git a/packages/@headlessui-react/src/utils/render.ts b/packages/@headlessui-react/src/utils/render.ts index ae9a6b65b..36018cefe 100644 --- a/packages/@headlessui-react/src/utils/render.ts +++ b/packages/@headlessui-react/src/utils/render.ts @@ -1,4 +1,4 @@ -import { +import React, { Fragment, cloneElement, createElement, @@ -257,7 +257,7 @@ function _render( mergedProps, dataAttributes, refRelatedProps, - { ref: mergeRefs((resolvedChildren as any).ref, refRelatedProps.ref) }, + { ref: mergeRefs(getElementRef(resolvedChildren), refRelatedProps.ref) }, classNameProps ) ) @@ -460,3 +460,8 @@ function omit>(object: T, keysToOmit: string[] = []) } return clone } + +function getElementRef(element: React.ReactElement) { + // @ts-expect-error + return React.version.split('.')[0] >= '19' ? element.props.ref : element.ref +}