diff --git a/superset-frontend/packages/superset-ui-core/src/components/Popover/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/Popover/index.tsx index f7e41b5be62..d0609c4387d 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/Popover/index.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/Popover/index.tsx @@ -16,11 +16,14 @@ * specific language governing permissions and limitations * under the License. */ -import { Popover as AntdPopover } from 'antd'; +import { forwardRef } from 'react'; +import { Popover as AntdPopover, type TooltipRef } from 'antd'; import { PopoverProps as AntdPopoverProps } from 'antd/es/popover'; export interface PopoverProps extends AntdPopoverProps { forceRender?: boolean; } -export const Popover = (props: PopoverProps) => ; +export const Popover = forwardRef((props, ref) => ( + +)); diff --git a/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointPopoverTrigger.tsx b/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointPopoverTrigger.tsx index f4b85dd631b..7b66f9da812 100644 --- a/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointPopoverTrigger.tsx +++ b/superset-frontend/src/explore/components/controls/ColorBreakpointsControl/ColorBreakpointPopoverTrigger.tsx @@ -54,7 +54,9 @@ const ColorBreakpointsPopoverTrigger = ({ onOpenChange={setVisibility} destroyOnHidden > - {props.children} + {/* Wrap in span so the Popover can attach a ref without relying + on findDOMNode (deprecated in React 18+). */} + {props.children} ); }; diff --git a/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.tsx b/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.tsx index 69e4b90fefe..8ab8b29da13 100644 --- a/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.tsx +++ b/superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.tsx @@ -52,7 +52,9 @@ const ContourPopoverTrigger = ({ onOpenChange={setVisibility} destroyOnHidden > - {props.children} + {/* Wrap in span so the Popover can attach a ref without relying + on findDOMNode (deprecated in React 18+). */} + {props.children} ); }; diff --git a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.tsx b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.tsx index cf8692b7503..19cf507d256 100644 --- a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.tsx +++ b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/ColumnSelectPopoverTrigger.tsx @@ -201,7 +201,9 @@ const ColumnSelectPopoverTriggerInner = ({ title={popoverTitle} destroyOnHidden > - {children} + {/* Wrap in span so the Popover can attach a ref without relying + on findDOMNode (deprecated in React 18+). */} + {children} ); diff --git a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx index ead19ecd5e9..f7708ec676f 100644 --- a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx +++ b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterPopoverTrigger/index.tsx @@ -112,7 +112,9 @@ class AdhocFilterPopoverTrigger extends PureComponent< onOpenChange={togglePopover} destroyOnHidden > - {this.props.children} + {/* Wrap in span so the Popover can attach a ref without relying + on findDOMNode (deprecated in React 18+). */} + {this.props.children} ); }