diff --git a/frontend/src/components/TaskEditorModal.tsx b/frontend/src/components/TaskEditorModal.tsx index d3bf386..1d38891 100644 --- a/frontend/src/components/TaskEditorModal.tsx +++ b/frontend/src/components/TaskEditorModal.tsx @@ -1,10 +1,5 @@ import { zodResolver } from '@hookform/resolvers/zod' -import { - keepPreviousData, - useMutation, - useQuery, - useQueryClient, -} from '@tanstack/react-query' +import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query' import { Button, Checkbox, @@ -214,7 +209,6 @@ export function TaskEditorModal({ actionType === 'script' && isPythonScript && Boolean(debouncedWorkingDir.trim()), - placeholderData: keepPreviousData, retry: false, staleTime: 15_000, }) @@ -236,9 +230,7 @@ export function TaskEditorModal({ onError: (error) => toast.error(error.message), }) const linkedVenv = - isPythonScript && - !venvProbe.isPlaceholderData && - venvProbe.data?.status === 'linked' + isPythonScript && venvProbe.data?.status === 'linked' ? venvProbe.data : null const previewVirtualEnv = isPythonScript @@ -278,7 +270,7 @@ export function TaskEditorModal({ // 探测到虚拟环境就自动填进「虚拟环境目录」,但用户自己改过就保留用户的值。 useEffect(() => { - if (!open || !isPythonScript || venvProbe.isPlaceholderData) { + if (!open || !isPythonScript) { return } const probe = venvProbe.data @@ -303,7 +295,7 @@ export function TaskEditorModal({ shouldDirty: true, shouldValidate: true, }) - }, [debouncedVenv, debouncedWorkingDir, getValues, isPythonScript, open, setValue, venvProbe.data, venvProbe.isPlaceholderData]) + }, [debouncedVenv, debouncedWorkingDir, getValues, isPythonScript, open, setValue, venvProbe.data]) // 打开后把焦点给第一个可编辑字段:新建时是任务标识,编辑时 ID 已锁定,跳名称。 // 原生 dialog 默认聚焦关闭按钮,不符合编辑表单的节奏。 @@ -603,7 +595,7 @@ export function TaskEditorModal({ - 填写工作目录后自动检测环境 + + ● 请输入有效的工作目录以探测环境 + ) } - if (!probe) { - if (pending) { - return ( -
- ⏳ 正在检测环境... -
- ) - } - if (failed) { - return ( -
- ● 环境探测失败,可稍后重试 -
- ) - } + if (pending) { return (
- 正在检测环境... + ⏳ 正在探测解释器... +
+ ) + } + + if (failed || !probe) { + return ( +
+ ● 环境探测失败,可稍后重试
) }