From 60d1b42c99c60e331501d32a69ec87505d8d124d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E8=89=B3=E5=85=B5?= Date: Thu, 3 Sep 2026 09:43:25 +0800 Subject: [PATCH] refactor: use renderable guards for panel content --- package.json | 2 +- src/Dialog/Content/Panel.tsx | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index bc3edbd9..f2383a8b 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "dependencies": { "@rc-component/motion": "^1.3.3", "@rc-component/portal": "^2.1.0", - "@rc-component/util": "^1.9.0", + "@rc-component/util": "^1.13.0", "clsx": "^2.1.1" }, "devDependencies": { diff --git a/src/Dialog/Content/Panel.tsx b/src/Dialog/Content/Panel.tsx index 3b260b08..08256843 100644 --- a/src/Dialog/Content/Panel.tsx +++ b/src/Dialog/Content/Panel.tsx @@ -1,5 +1,5 @@ import { clsx } from 'clsx'; -import { useComposeRef, useLockFocus, pickAttrs } from '@rc-component/util'; +import { isReactRenderable, pickAttrs, useComposeRef, useLockFocus } from '@rc-component/util'; import React, { useMemo, useRef } from 'react'; import { RefContext } from '../../context'; import type { IDialogPropTypes } from '../../IDialogPropTypes'; @@ -73,7 +73,10 @@ const Panel = React.forwardRef((props, ref) => { contentStyle.height = height; } // ================================ Render ================================ - const footerNode = footer ? ( + const hasFooter = isReactRenderable(footer); + const hasTitle = isReactRenderable(title); + + const footerNode = hasFooter ? (
((props, ref) => {
) : null; - const headerNode = title ? ( + const headerNode = hasTitle ? (
((props, ref) => {