Skip to content

Commit

Permalink
fix/success-page-seats-description-5338 (#5390)
Browse files Browse the repository at this point in the history
* Add validations for server side loading of bookingInfo for seats event types

* Fix prop used for validating if booking has seats enabled

* Fix types

* Removed frontend filter for seatsShowAttendees as not needed anymore

Co-authored-by: Alex van Andel <me@alexvanandel.com>
  • Loading branch information
alannnc and emrysal authored Nov 5, 2022
1 parent 5954144 commit 7517feb
Showing 1 changed file with 32 additions and 17 deletions.
49 changes: 32 additions & 17 deletions apps/web/pages/success.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -369,23 +369,12 @@ export default function Success(props: SuccessProps) {
<p className="text-bookinglight">{bookingInfo.user.email}</p>
</div>
)}
{!eventType.seatsShowAttendees
? bookingInfo?.attendees
.filter((attendee) => attendee.email === email)
.map((attendee) => (
<div key={attendee.name} className="mb-3">
<p>{attendee.name}</p>
<p className="text-bookinglight">{attendee.email}</p>
</div>
))
: bookingInfo?.attendees.map((attendee, index) => (
<div
key={attendee.name}
className={index === bookingInfo.attendees.length - 1 ? "" : "mb-3"}>
<p>{attendee.name}</p>
<p className="text-bookinglight">{attendee.email}</p>
</div>
))}
{bookingInfo?.attendees.map((attendee, index) => (
<div key={attendee.name} className="mb-3 last:mb-0">
<p>{attendee.name}</p>
<p className="text-bookinglight">{attendee.email}</p>
</div>
))}
</>
</div>
</>
Expand Down Expand Up @@ -786,6 +775,28 @@ const schema = z.object({
bookingId: strToNumber,
});

const handleSeatsEventTypeOnBooking = (
eventType: {
seatsPerTimeSlot?: boolean | null;
seatsShowAttendees: boolean | null;
[x: string | number | symbol]: unknown;
},
booking: Partial<
Prisma.BookingGetPayload<{ include: { attendees: { select: { name: true; email: true } } } }>
>,
email: string
) => {
if (eventType?.seatsPerTimeSlot !== null) {
// @TODO: right now bookings with seats doesn't save every description that its entered by every user
delete booking.description;
}
if (!eventType.seatsShowAttendees) {
const attendee = booking?.attendees?.find((a) => a.email === email);
booking["attendees"] = attendee ? [attendee] : [];
}
return;
};

export async function getServerSideProps(context: GetServerSidePropsContext) {
const ssr = await ssrInit(context);
const parsedQuery = schema.safeParse(context.query);
Expand Down Expand Up @@ -884,6 +895,10 @@ export async function getServerSideProps(context: GetServerSidePropsContext) {
},
},
});
if (bookingInfo !== null && email) {
handleSeatsEventTypeOnBooking(eventType, bookingInfo, email);
}

let recurringBookings = null;
if (recurringEventIdQuery) {
// We need to get the dates for the bookings to be able to show them in the UI
Expand Down

0 comments on commit 7517feb

Please sign in to comment.