From 13496fbcdafd77b30c7433d9c7f765d812aaad6e Mon Sep 17 00:00:00 2001 From: AZ0228 <53315675+AZ0228@users.noreply.github.com> Date: Tue, 24 Mar 2026 16:57:40 -0400 Subject: [PATCH 1/2] chore(MER-999-Patch): sync events @ d71ebc6 --- private-deps.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/private-deps.lock b/private-deps.lock index d6632f66..89bf8a30 100644 --- a/private-deps.lock +++ b/private-deps.lock @@ -1,7 +1,7 @@ { "events": { "repo": "git@github.com:Study-Compass/Events-Backend.git", - "ref": "0cb405c8e30676a6a1e1f6dbc0ecc4893aa3edec", + "ref": "d71ebc6b94ba1535a11eef311a0aea7712259c4f", "dest": "backend/events" } } From 683aeec0d31756943b5b3425fd3afa1bebebbbc9 Mon Sep 17 00:00:00 2001 From: AZ0228 <53315675+AZ0228@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:26:20 -0400 Subject: [PATCH 2/2] MER-999 adding fully anonymous check-in --- .../components/EventCheckIn/CheckInList.jsx | 14 ++++-- .../EventCheckInButton/EventCheckInButton.jsx | 49 +++++++++++++------ .../src/pages/CheckIn/CheckInConfirmation.jsx | 36 +++++++++++++- .../pages/CheckIn/CheckInConfirmation.scss | 12 +++++ .../EventCheckInTab/CheckInSettingsModal.jsx | 18 ++++++- .../EventCheckInTab/EventCheckInTab.jsx | 5 ++ private-deps.lock | 2 +- 7 files changed, 113 insertions(+), 23 deletions(-) diff --git a/frontend/src/components/EventCheckIn/CheckInList.jsx b/frontend/src/components/EventCheckIn/CheckInList.jsx index 67e23749..73074f63 100644 --- a/frontend/src/components/EventCheckIn/CheckInList.jsx +++ b/frontend/src/components/EventCheckIn/CheckInList.jsx @@ -4,6 +4,9 @@ import { formatDistanceToNow } from 'date-fns'; import './EventCheckIn.scss'; function getAttendeeDisplayName(attendee) { + if (attendee.anonymousBrowserCheckIn) { + return attendee.guestName || 'Anonymous user'; + } if (attendee.formResponseId && (attendee.guestName || attendee.guestEmail)) { return attendee.guestName && String(attendee.guestName).trim() ? String(attendee.guestName).trim() @@ -49,12 +52,14 @@ function CheckInList({ attendees, onManualCheckIn, onRemoveCheckIn, onOpenManual }; const getUserPicture = (attendee) => { + if (attendee.anonymousBrowserCheckIn) return null; if (attendee.formResponseId) return null; const user = attendee.userId; return user?.picture || null; }; const getAttendeeRemoveId = (attendee) => { + if (attendee.anonymousBrowserCheckIn) return null; if (attendee.formResponseId) return { formResponseId: attendee.formResponseId }; const uid = attendee.userId && (attendee.userId._id || attendee.userId.id || attendee.userId); return uid ? { userId: uid } : null; @@ -117,9 +122,10 @@ function CheckInList({ attendees, onManualCheckIn, onRemoveCheckIn, onOpenManual const user = attendee.userId; const checkedInBy = attendee.checkedInBy; const isManual = !!checkedInBy; + const isAnonymousBrowser = !!attendee.anonymousBrowserCheckIn; const removeId = getAttendeeRemoveId(attendee); return ( -
+ Anonymous check-in is enabled for this event. This anonymous user can check in once without sharing personal details. +
+ )}