From 2de4abba653a8fd3b5cc549d2d974220900020e8 Mon Sep 17 00:00:00 2001 From: Alex van Andel Date: Thu, 3 Aug 2023 10:03:23 +0100 Subject: [PATCH] feat: Modify sort with if/elseif/else randomize when the dates are equal (#10448) Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Keith Williams Co-authored-by: Peer Richelsen --- packages/lib/server/getLuckyUser.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/lib/server/getLuckyUser.ts b/packages/lib/server/getLuckyUser.ts index bfc798b555..d0806ef805 100644 --- a/packages/lib/server/getLuckyUser.ts +++ b/packages/lib/server/getLuckyUser.ts @@ -92,7 +92,10 @@ async function leastRecentlyBookedUser>({ } const leastRecentlyBookedUser = availableUsers.sort((a, b) => { - return userIdAndAtCreatedPair[a.id] > userIdAndAtCreatedPair[b.id] ? 1 : -1; + if (userIdAndAtCreatedPair[a.id] > userIdAndAtCreatedPair[b.id]) return 1; + else if (userIdAndAtCreatedPair[a.id] < userIdAndAtCreatedPair[b.id]) return -1; + // if two (or more) dates are identical, we randomize the order + else return Math.random() > 0.5 ? 1 : -1; })[0]; return leastRecentlyBookedUser;