From dd77c0367d8385fe2e72159edb9f06fd297606df Mon Sep 17 00:00:00 2001 From: JurreBrandsenInfoSupport <149962077+JurreBrandsenInfoSupport@users.noreply.github.com> Date: Fri, 26 Apr 2024 13:38:10 +0200 Subject: [PATCH] 105 sorting of experts (#108) * changed background of tooltip to transparant * random * typecheck errors --- src/app/find-the-expert/[role]/page.tsx | 39 ++++++++++++++++++------- src/components/show-results.tsx | 1 + 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/app/find-the-expert/[role]/page.tsx b/src/app/find-the-expert/[role]/page.tsx index 5579985..0c32ac7 100644 --- a/src/app/find-the-expert/[role]/page.tsx +++ b/src/app/find-the-expert/[role]/page.tsx @@ -118,7 +118,14 @@ const ShowTableWrapper = async () => { dataByRoleAndQuestion[roleName]?.[questionText]?.sort((a, b) => { const answerValueA = parseInt(a.answer); const answerValueB = parseInt(b.answer); - return answerValueA - answerValueB; + + if (answerValueA === answerValueB) { + // Returns a random value between -0.5 and 0.5 + return Math.random() - 0.5; + } else { + // Sort based on answer value + return answerValueA - answerValueB; + } }); } } @@ -136,18 +143,28 @@ const ShowTableWrapper = async () => { aggregatedDataByRole[roleName] = {}; } - const answerValue = parseInt(answerOptionMap[entry.answerId] ?? ""); - const userName = userMap[entry.userId]?.name ?? "Unknown User"; - const userEmail = userMap[entry.userId]?.email ?? "Unknown Email"; + if (userMap[entry.userId]) { + const answerValue = parseInt(answerOptionMap[entry.answerId] ?? "", 10); + const userName = userMap[entry.userId]?.name ?? "Unknown User"; + const userEmail = userMap[entry.userId]?.email ?? "Unknown Email"; + if (!isNaN(answerValue)) { + if (!aggregatedDataByRole[roleName]?.[userEmail]) { + aggregatedDataByRole[roleName]![userEmail] = { + name: userName, + counts: [0, 0, 0, 0], + }; + } + + if ( + !aggregatedDataByRole[roleName]?.[userEmail]?.counts[answerValue] + ) { + aggregatedDataByRole[roleName]![userEmail]!.counts[answerValue] = 0; + } - if (!isNaN(answerValue)) { - if (!aggregatedDataByRole[roleName]?.[userEmail]) { - aggregatedDataByRole[roleName]![userEmail] = { - name: userName, - counts: [0, 0, 0, 0], - }; + aggregatedDataByRole[roleName]![userEmail]!.counts[answerValue] = + (aggregatedDataByRole[roleName]![userEmail]?.counts[answerValue] ?? + 0) + 1; } - aggregatedDataByRole[roleName]![userEmail]!.counts[answerValue]++; } } } diff --git a/src/components/show-results.tsx b/src/components/show-results.tsx index 5d12f89..7448022 100644 --- a/src/components/show-results.tsx +++ b/src/components/show-results.tsx @@ -76,6 +76,7 @@ const ShowResults = ({ data }: { data: TransformedData }) => { }} /> }