diff --git a/apps/web/app/s/[surveyId]/components/LinkSurvey.tsx b/apps/web/app/s/[surveyId]/components/LinkSurvey.tsx index 5e248ff18f..06738a2447 100644 --- a/apps/web/app/s/[surveyId]/components/LinkSurvey.tsx +++ b/apps/web/app/s/[surveyId]/components/LinkSurvey.tsx @@ -76,7 +76,10 @@ export default function LinkSurvey({ }, [survey, startAt]); // pass in the responseId if the survey is a single use survey, ensures survey state is updated with the responseId - const [surveyState, setSurveyState] = useState(new SurveyState(survey.id, singleUseId, responseId, userId)); + let surveyState = useMemo(() => { + return new SurveyState(survey.id, singleUseId, responseId, userId); + }, [survey.id, singleUseId, responseId, userId]); + const prefillResponseData: TResponseData | undefined = prefillAnswer ? getPrefillResponseData(survey.questions[0], survey, prefillAnswer, languageCode) : undefined; @@ -95,7 +98,6 @@ export default function LinkSurvey({ // when response of current question is processed successfully setIsResponseSendingFinished(true); }, - setSurveyState: setSurveyState, }, surveyState ), @@ -149,6 +151,7 @@ export default function LinkSurvey({ if (!surveyState.isResponseFinished() && hasFinishedSingleUseResponse) { return ; } + if (survey.verifyEmail && emailVerificationStatus !== "verified") { if (emailVerificationStatus === "fishy") { return ; @@ -224,9 +227,8 @@ export default function LinkSurvey({ } const { id } = res.data; - const newSurveyState = surveyState.copy(); - newSurveyState.updateDisplayId(id); - setSurveyState(newSurveyState); + surveyState.updateDisplayId(id); + responseQueue.updateSurveyState(surveyState); } }} onResponse={(responseUpdate: TResponseUpdate) => {