Skip to content

Commit 7265d0e

Browse files
committed
fix: wait for queries to be ready before repopulating qamap, (hopefully) avoiding races between updating shared questions and reviewcard
1 parent 5959ae3 commit 7265d0e

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

  • frontend-nextjs/src/app/[lang]/campaign/apply/[campaignId]/application/[applicationId]

frontend-nextjs/src/app/[lang]/campaign/apply/[campaignId]/application/[applicationId]/applicationanswer.tsx

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export default function ApplicationReview({
6868
}
6969

7070
for (const roleId of roleIds) {
71-
if (newQAMap.has(roleId)) continue;
71+
//if (newQAMap.has(roleId)) continue;
7272
const roleQs: Question[] | undefined = queryClient.getQueryData([`${campaignId}-${roleId}-role-questions`])
7373
const roleAnswers: Answer[] | undefined = queryClient.getQueryData([`${applicationId}-${roleId}-role-answers`])
7474
if (roleQs && roleAnswers) {
@@ -183,10 +183,23 @@ export default function ApplicationReview({
183183
console.error("Submission failed: ", e);
184184
}
185185
}
186+
186187
useEffect(() => {
187-
populateQAByRole(selectedRoleIds,campaignId, applicationId)
188-
console.log(qaByRole)
189-
}, [selectedRoleIds]);
188+
if (selectedRoleIds.length === 0) return;
189+
190+
const generalQs = queryClient.getQueryData([`${applicationId}-common-questions`]);
191+
const generalAnswers = queryClient.getQueryData([`${applicationId}-common-answers`]);
192+
193+
const allRoleQueriesReady = selectedRoleIds.every(roleId => {
194+
const roleQs = queryClient.getQueryData([`${campaignId}-${roleId}-role-questions`]);
195+
const roleAnswers = queryClient.getQueryData([`${applicationId}-${roleId}-role-answers`]);
196+
return roleQs !== undefined && roleAnswers !== undefined;
197+
});
198+
199+
if (generalQs && generalAnswers && allRoleQueriesReady) {
200+
populateQAByRole(selectedRoleIds, campaignId, applicationId);
201+
}
202+
}, [selectedRoleIds, campaignId, applicationId, queryClient]);
190203

191204
return (
192205
<div className="min-h-screen bg-background w-full">

0 commit comments

Comments
 (0)