diff --git a/app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/UQIEditorForm.tsx b/app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/UQIEditorForm.tsx index c8fb86c43a..b4a6ea2adc 100644 --- a/app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/UQIEditorForm.tsx +++ b/app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/UQIEditorForm.tsx @@ -18,6 +18,10 @@ const UQIEditorForm = () => { const { data, evaluationState } = useFormData(); + if (!data) { + return null; + } + return ( { - const data = useSelector(getFormValues(QUERY_EDITOR_FORM_NAME)) as + const formData = useSelector(getFormValues(QUERY_EDITOR_FORM_NAME)) as | QueryAction | SaaSAction; + const { action } = usePluginActionContext(); const formEvaluation = useSelector(getFormEvaluationState); - let evaluationState = {}; - - // Fetching evaluations state only once the formData is populated - if (!!data) { - evaluationState = formEvaluation[data.id]; + // When switching between actions, the formData is not updated immediately. + // So we need to return null data and evaluationState in that case instead of stale data + if (!formData || formData.id !== action.id) { + return { data: null, evaluationState: {} }; } - return { data, evaluationState }; + // Fetching evaluations state only once the formData is populated + const evaluationState = formEvaluation[formData.id]; + + return { data: formData, evaluationState }; };