Skip to content

Commit

Permalink
[#538] Fix onChange lag in WebformPage
Browse files Browse the repository at this point in the history
  • Loading branch information
wayangalihpratama committed Mar 29, 2024
1 parent e858a25 commit 3c6815f
Showing 1 changed file with 18 additions and 6 deletions.
24 changes: 18 additions & 6 deletions frontend/src/pages/survey/WebformPage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -745,9 +745,21 @@ const WebformPage = ({
.filter((x) => x); // isNan, allow comment with no value to submit
};

const onChange = ({ values }) => {
const onChange = ({ current, values }) => {
// handle data unavailable checkbox - comment
const dataUnavailable = Object.keys(values)
const allKeyWithNA = Object.keys(values)
.filter((key) => key.includes("na"))
.map((key) => {
const elCheckUnavailable = document.getElementById(key);
const isChecked = elCheckUnavailable?.checked;
const keySplit = key.split("_");
const qidWithRepeatIndex = keySplit[1];
return {
[qidWithRepeatIndex]: isChecked ? text.inputDataUnavailable : null,
};
})
.reduce((acc, curr) => ({ ...acc, ...curr }), {});
const dataUnavailable = Object.keys(current)
.filter((key) => key.includes("na"))
.map((key) => {
const elCheckUnavailable = document.getElementById(key);
Expand Down Expand Up @@ -797,10 +809,10 @@ const WebformPage = ({
const filteredValues = Object.keys(values)
.filter((key) => !key.includes("na"))
.reduce((acc, curr) => ({ ...acc, [curr]: values[curr] }), {});
const transformedAnswerValues = transformValues(
filteredValues,
dataUnavailable
);
const transformedAnswerValues = transformValues(filteredValues, {
...allKeyWithNA,
...dataUnavailable,
});
setDisableSubmit(transformValues.length === 0);
setAnswer(transformedAnswerValues);

Expand Down

0 comments on commit 3c6815f

Please # to comment.