diff --git a/app/client/src/sagas/SaaSPaneSagas.ts b/app/client/src/sagas/SaaSPaneSagas.ts index 5bbb11f76c..7e1da37a97 100644 --- a/app/client/src/sagas/SaaSPaneSagas.ts +++ b/app/client/src/sagas/SaaSPaneSagas.ts @@ -22,6 +22,7 @@ import { SAAS_EDITOR_FORM } from "constants/forms"; import { getFormData } from "selectors/formSelectors"; import { setActionProperty } from "actions/pluginActionActions"; import { autofill } from "redux-form"; +import { get } from "lodash"; function* handleDatasourceCreatedSaga(actionPayload: ReduxAction) { const plugin = yield select(getPlugin, actionPayload.payload.pluginId); @@ -64,7 +65,6 @@ function* formValueChangeSaga( if (field === "dynamicBindingPathList" || field === "name") return; if (form !== SAAS_EDITOR_FORM) return; const { values } = yield select(getFormData, SAAS_EDITOR_FORM); - if (field === "datasource.id") { const datasource = yield select(getDatasource, actionPayload.payload); @@ -83,13 +83,29 @@ function* formValueChangeSaga( return; } - yield put( - setActionProperty({ - actionId: values.id, - propertyName: field, - value: actionPayload.payload, - }), - ); + // Special handling of the case when the where clause row is added or removed + if ( + actionPayload.type === ReduxFormActionTypes.ARRAY_REMOVE || + actionPayload.type === ReduxFormActionTypes.ARRAY_PUSH + ) { + // Sending only the value for the where clause rather than the payload + const value = get(values, field); + yield put( + setActionProperty({ + actionId: values.id, + propertyName: field, + value, + }), + ); + } else { + yield put( + setActionProperty({ + actionId: values.id, + propertyName: field, + value: actionPayload.payload, + }), + ); + } } export default function* root() {