From e2d5727cfcd85bf77302eb63802575ed1ba5f218 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Mon, 22 Apr 2024 17:53:31 +0200 Subject: [PATCH] fix: display create leads to survey rerender (#2505) --- apps/web/app/s/[surveyId]/components/LinkSurvey.tsx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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) => {