Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae383164bc | ||
|
|
0d8863fe8e | ||
|
|
51f6654635 | ||
|
|
fa11e10bcb |
Vendored
Vendored
Vendored
+8
@@ -0,0 +1,8 @@
|
|||||||
|
undecided:
|
||||||
|
- calcom-monorepo
|
||||||
|
- "@calcom/app-store-cli"
|
||||||
|
- "@calcom/platform-constants"
|
||||||
|
- "@calcom/platform-enums"
|
||||||
|
- "@calcom/platform-types"
|
||||||
|
- "@calcom/platform-utils"
|
||||||
|
- "@calcom/prisma"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@calcom/web",
|
"name": "@calcom/web",
|
||||||
"version": "5.4.9",
|
"version": "5.4.10",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"analyze": "ANALYZE=true next build",
|
"analyze": "ANALYZE=true next build",
|
||||||
|
|||||||
Binary file not shown.
@@ -484,16 +484,34 @@ class EventsInsights {
|
|||||||
: booking.attendees;
|
: booking.attendees;
|
||||||
|
|
||||||
const formattedAttendees = attendeeList
|
const formattedAttendees = attendeeList
|
||||||
.slice(0, 3)
|
.map((attendee) => (attendee ? `${attendee.name} (${attendee.email})` : null))
|
||||||
.map((attendee) => (attendee ? `${attendee.name} (${attendee.email})` : null));
|
.filter(Boolean);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
booking.uid,
|
booking.uid,
|
||||||
|
{ attendeeList: formattedAttendees, noShowGuest: attendeeList[0]?.noShow || false },
|
||||||
|
];
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
const maxAttendees = Math.max(
|
||||||
|
...Array.from(bookingMap.values()).map((data) => data.attendeeList.length),
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
const finalBookingMap = new Map(
|
||||||
|
Array.from(bookingMap.entries()).map(([uid, data]) => {
|
||||||
|
const attendeeFields: Record<string, string | null> = {};
|
||||||
|
|
||||||
|
for (let i = 1; i <= maxAttendees; i++) {
|
||||||
|
attendeeFields[`attendee${i}`] = data.attendeeList[i - 1] || null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
uid,
|
||||||
{
|
{
|
||||||
noShowGuest: attendeeList[0]?.noShow || false,
|
noShowGuest: data.noShowGuest,
|
||||||
attendee1: formattedAttendees[0] || null,
|
...attendeeFields,
|
||||||
attendee2: formattedAttendees[1] || null,
|
|
||||||
attendee3: formattedAttendees[2] || null,
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
@@ -502,33 +520,37 @@ class EventsInsights {
|
|||||||
const data = csvData.map((bookingTimeStatus) => {
|
const data = csvData.map((bookingTimeStatus) => {
|
||||||
if (!bookingTimeStatus.uid) {
|
if (!bookingTimeStatus.uid) {
|
||||||
// should not be reached because we filtered above
|
// should not be reached because we filtered above
|
||||||
|
const nullAttendeeFields: Record<string, null> = {};
|
||||||
|
for (let i = 1; i <= maxAttendees; i++) {
|
||||||
|
nullAttendeeFields[`attendee${i}`] = null;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...bookingTimeStatus,
|
...bookingTimeStatus,
|
||||||
noShowGuest: false,
|
noShowGuest: false,
|
||||||
attendee1: null,
|
...nullAttendeeFields,
|
||||||
attendee2: null,
|
|
||||||
attendee3: null,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const attendeeData = bookingMap.get(bookingTimeStatus.uid);
|
const attendeeData = finalBookingMap.get(bookingTimeStatus.uid);
|
||||||
|
|
||||||
if (!attendeeData) {
|
if (!attendeeData) {
|
||||||
|
const nullAttendeeFields: Record<string, null> = {};
|
||||||
|
for (let i = 1; i <= maxAttendees; i++) {
|
||||||
|
nullAttendeeFields[`attendee${i}`] = null;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...bookingTimeStatus,
|
...bookingTimeStatus,
|
||||||
noShowGuest: false,
|
noShowGuest: false,
|
||||||
attendee1: null,
|
...nullAttendeeFields,
|
||||||
attendee2: null,
|
|
||||||
attendee3: null,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...bookingTimeStatus,
|
...bookingTimeStatus,
|
||||||
noShowGuest: attendeeData.noShowGuest,
|
noShowGuest: attendeeData.noShowGuest,
|
||||||
attendee1: attendeeData.attendee1,
|
...Object.fromEntries(Object.entries(attendeeData).filter(([key]) => key.startsWith("attendee"))),
|
||||||
attendee2: attendeeData.attendee2,
|
|
||||||
attendee3: attendeeData.attendee3,
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2712,8 +2712,7 @@ __metadata:
|
|||||||
vite-plugin-node-polyfills: ^0.22.0
|
vite-plugin-node-polyfills: ^0.22.0
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^18.0.0 || ^19.0.0
|
react: ^18.0.0 || ^19.0.0
|
||||||
react-awesome-query-builder: ^5.1.2
|
typescript: ^5.0.0
|
||||||
react-dom: ^18.0.0 || ^19.0.0
|
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user