From 2efdb7b887e74f73b7429688e24e1d7ae4625df2 Mon Sep 17 00:00:00 2001
From: yyh <92089059+lyzno1@users.noreply.github.com>
Date: Fri, 19 Dec 2025 15:52:21 +0800
Subject: [PATCH] fix: workflow log search input controlled state (#29930)
---
.../app/workflow-log/filter.spec.tsx | 22 ++++++++++++++-----
.../components/app/workflow-log/filter.tsx | 2 +-
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/web/app/components/app/workflow-log/filter.spec.tsx b/web/app/components/app/workflow-log/filter.spec.tsx
index d7bec41224..04216e5cc8 100644
--- a/web/app/components/app/workflow-log/filter.spec.tsx
+++ b/web/app/components/app/workflow-log/filter.spec.tsx
@@ -7,6 +7,7 @@
* - Keyword search
*/
+import { useState } from 'react'
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import Filter, { TIME_PERIOD_MAPPING } from './filter'
@@ -293,12 +294,21 @@ describe('Filter', () => {
const user = userEvent.setup()
const setQueryParams = jest.fn()
- render(
- ,
- )
+ const Wrapper = () => {
+ const [queryParams, updateQueryParams] = useState(createDefaultQueryParams())
+ const handleSetQueryParams = (next: QueryParam) => {
+ updateQueryParams(next)
+ setQueryParams(next)
+ }
+ return (
+
+ )
+ }
+
+ render()
const input = screen.getByPlaceholderText('common.operation.search')
await user.type(input, 'workflow')
diff --git a/web/app/components/app/workflow-log/filter.tsx b/web/app/components/app/workflow-log/filter.tsx
index 0c8d72c1be..a4db4c9642 100644
--- a/web/app/components/app/workflow-log/filter.tsx
+++ b/web/app/components/app/workflow-log/filter.tsx
@@ -65,7 +65,7 @@ const Filter: FC = ({ queryParams, setQueryParams }: IFilterProps)
wrapperClassName='w-[200px]'
showLeftIcon
showClearIcon
- value={queryParams.keyword}
+ value={queryParams.keyword ?? ''}
placeholder={t('common.operation.search')!}
onChange={(e) => {
setQueryParams({ ...queryParams, keyword: e.target.value })