From 81c3091a5c4071d082a79233f2aa006ec8f9bc0b Mon Sep 17 00:00:00 2001 From: samanhappy Date: Wed, 20 Aug 2025 14:21:51 +0800 Subject: [PATCH] fix: filter out empty values in tool arguments for improved functionality (#280) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- frontend/src/components/ui/ToolCard.tsx | 11 +++++++++++ frontend/src/pages/LoginPage.tsx | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/ui/ToolCard.tsx b/frontend/src/components/ui/ToolCard.tsx index d189a2d..49c8c6e 100644 --- a/frontend/src/components/ui/ToolCard.tsx +++ b/frontend/src/components/ui/ToolCard.tsx @@ -14,6 +14,15 @@ interface ToolCardProps { onDescriptionUpdate?: (toolName: string, description: string) => void } +// Helper to check for "empty" values +function isEmptyValue(value: any): boolean { + if (value == null) return true; // null or undefined + if (typeof value === 'string') return value.trim() === ''; + if (Array.isArray(value)) return value.length === 0; + if (typeof value === 'object') return Object.keys(value).length === 0; + return false; +} + const ToolCard = ({ tool, server, onToggle, onDescriptionUpdate }: ToolCardProps) => { const { t } = useTranslation() const [isExpanded, setIsExpanded] = useState(false) @@ -100,6 +109,8 @@ const ToolCard = ({ tool, server, onToggle, onDescriptionUpdate }: ToolCardProps const handleRunTool = async (arguments_: Record) => { setIsRunning(true) try { + // filter empty values + arguments_ = Object.fromEntries(Object.entries(arguments_).filter(([_, v]) => !isEmptyValue(v))) const result = await callTool({ toolName: tool.name, arguments: arguments_, diff --git a/frontend/src/pages/LoginPage.tsx b/frontend/src/pages/LoginPage.tsx index 154e8c8..9adcbd6 100644 --- a/frontend/src/pages/LoginPage.tsx +++ b/frontend/src/pages/LoginPage.tsx @@ -68,9 +68,9 @@ const LoginPage: React.FC = () => { {/* Main content */} -
+
{/* Left: brand + slogan */} -
+
{t('app.name')}