fix: not check in top run button

pull/21369/head
Joel 11 months ago
parent baaada7205
commit f922454ee8

@ -142,6 +142,7 @@ const useLastRun = <T>({
iterationRunResult, iterationRunResult,
loopRunResult, loopRunResult,
setNodeRunning, setNodeRunning,
checkValid,
} = oneStepRunRes } = oneStepRunRes
const { const {
@ -200,6 +201,9 @@ const useLastRun = <T>({
const invalidLastRun = useInvalidLastRun(appId!, id) const invalidLastRun = useInvalidLastRun(appId!, id)
const handleRunWithParams = async (data: Record<string, any>) => { const handleRunWithParams = async (data: Record<string, any>) => {
const { isValid } = checkValid()
if(!isValid)
return
setIsRunAfterSingleRun(true) setIsRunAfterSingleRun(true)
setTabType(TabType.lastRun) setTabType(TabType.lastRun)
callRunApi(data, () => { callRunApi(data, () => {
@ -270,6 +274,9 @@ const useLastRun = <T>({
} }
const handleSingleRun = () => { const handleSingleRun = () => {
const { isValid } = checkValid()
if(!isValid)
return
// no need to input params // no need to input params
if (isAllVarsHasValue(singleRunParams?.getDependentVars?.())) { if (isAllVarsHasValue(singleRunParams?.getDependentVars?.())) {
callRunApi({}, async () => { callRunApi({}, async () => {

@ -152,6 +152,7 @@ const useOneStepRun = <T>({
} }
const checkValid = checkValidFns[data.type] const checkValid = checkValidFns[data.type]
const appId = useAppStore.getState().appDetail?.id const appId = useAppStore.getState().appDetail?.id
const [runInputData, setRunInputData] = useState<Record<string, any>>(defaultRunInputData || {}) const [runInputData, setRunInputData] = useState<Record<string, any>>(defaultRunInputData || {})
const runInputDataRef = useRef(runInputData) const runInputDataRef = useRef(runInputData)
@ -216,6 +217,25 @@ const useOneStepRun = <T>({
}, },
}) })
} }
const checkValidWrap = () => {
if(!checkValid)
return { isValid: true, errorMessage: '' }
const res = checkValid(data, t, moreDataForCheckValid)
if(!res.isValid) {
handleNodeDataUpdate({
id,
data: {
...data,
_isSingleRun: false,
},
})
Toast.notify({
type: 'error',
message: res.errorMessage,
})
}
return res
}
const [canShowSingleRun, setCanShowSingleRun] = useState(false) const [canShowSingleRun, setCanShowSingleRun] = useState(false)
const isShowSingleRun = data._isSingleRun && canShowSingleRun const isShowSingleRun = data._isSingleRun && canShowSingleRun
const [iterationRunResult, setIterationRunResult] = useState<NodeTracing[]>([]) const [iterationRunResult, setIterationRunResult] = useState<NodeTracing[]>([])
@ -228,21 +248,8 @@ const useOneStepRun = <T>({
} }
if (data._isSingleRun) { if (data._isSingleRun) {
const { isValid, errorMessage } = checkValid(data, t, moreDataForCheckValid) const { isValid } = checkValidWrap()
setCanShowSingleRun(isValid) setCanShowSingleRun(isValid)
if (!isValid) {
handleNodeDataUpdate({
id,
data: {
...data,
_isSingleRun: false,
},
})
Toast.notify({
type: 'error',
message: errorMessage,
})
}
} }
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [data._isSingleRun]) }, [data._isSingleRun])
@ -645,6 +652,7 @@ const useOneStepRun = <T>({
iterationRunResult, iterationRunResult,
loopRunResult, loopRunResult,
setNodeRunning, setNodeRunning,
checkValid: checkValidWrap,
} }
} }

Loading…
Cancel
Save