diff --git a/apps/web/components/eventtype/EventTypeSingleLayout.tsx b/apps/web/components/eventtype/EventTypeSingleLayout.tsx index 532f193120..ecb6c12b05 100644 --- a/apps/web/components/eventtype/EventTypeSingleLayout.tsx +++ b/apps/web/components/eventtype/EventTypeSingleLayout.tsx @@ -205,6 +205,7 @@ function EventTypeSingleLayout({ activeWebhooksNumber, }: Props) { const { t } = useLocale(); + const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const hasPermsToDelete = diff --git a/apps/web/playwright/teams.e2e.ts b/apps/web/playwright/teams.e2e.ts index 0a636e7aac..cb38d23063 100644 --- a/apps/web/playwright/teams.e2e.ts +++ b/apps/web/playwright/teams.e2e.ts @@ -275,6 +275,46 @@ testBothFutureAndLegacyRoutes.describe("Teams - NonOrg", (routeVariant) => { await expect(page.locator('[data-testid="you-cannot-see-team-members"]')).toBeVisible(); await expect(page.locator('[data-testid="team-members-container"]')).toBeHidden(); }); + test("Email Embeds slots are loading for team event types", async ({ page, users }) => { + const teamMatesObj = [ + { name: "teammate-1" }, + { name: "teammate-2" }, + { name: "teammate-3" }, + { name: "teammate-4" }, + ]; + + const owner = await users.create( + { username: "pro-user", name: "pro-user" }, + { + hasTeam: true, + teammates: teamMatesObj, + schedulingType: SchedulingType.COLLECTIVE, + } + ); + + await owner.apiLogin(); + const { team } = await owner.getFirstTeamMembership(); + const { + title: teamEventTitle, + slug: teamEventSlug, + id: teamEventId, + } = await owner.getFirstTeamEvent(team.id); + + await page.goto("/event-types"); + + await page.getByTestId(`event-type-options-${teamEventId}`).first().click(); + await page.getByTestId("embed").click(); + await page.getByTestId("email").click(); + await page.getByTestId("incrementMonth").click(); + + await page.waitForLoadState("networkidle"); + + await expect(page.getByTestId("no-slots-available")).toBeHidden(); + + // Check Team Url + const availableTimesUrl = await page.getByTestId("see_all_available_times").getAttribute("href"); + await expect(availableTimesUrl).toContain(`/team/${team.slug}/${teamEventSlug}`); + }); todo("Create a Round Robin with different leastRecentlyBooked hosts"); todo("Reschedule a Collective EventType booking"); diff --git a/packages/features/bookings/components/AvailableTimes.tsx b/packages/features/bookings/components/AvailableTimes.tsx index 642fc99d15..c91b6157c0 100644 --- a/packages/features/bookings/components/AvailableTimes.tsx +++ b/packages/features/bookings/components/AvailableTimes.tsx @@ -194,7 +194,9 @@ export const AvailableTimes = ({
{t("all_booked_today")} diff --git a/packages/features/embed/Embed.tsx b/packages/features/embed/Embed.tsx index 9a9afcc0fd..e34daab051 100644 --- a/packages/features/embed/Embed.tsx +++ b/packages/features/embed/Embed.tsx @@ -53,7 +53,15 @@ const enum Theme { dark = "dark", } -const queryParamsForDialog = ["embedType", "embedTabName", "embedUrl", "eventId"]; +const queryParamsForDialog = [ + "embedType", + "embedTabName", + "embedUrl", + "eventId", + "namespace", + "date", + "month", +]; function useRouterHelpers() { const router = useRouter(); @@ -131,10 +139,12 @@ const EmailEmbed = ({ eventType, username, orgSlug, + isTeamEvent, }: { eventType?: EventType; username: string; orgSlug?: string; + isTeamEvent: boolean; }) => { const { t, i18n } = useLocale(); @@ -145,6 +155,8 @@ const EmailEmbed = ({ eventSlug: eventType?.slug ?? "", eventId: eventType?.id, layout: BookerLayouts.MONTH_VIEW, + org: orgSlug, + isTeamEvent, }); const [month, selectedDate, selectedDatesAndTimes] = useBookerStore( @@ -301,6 +313,7 @@ const EmailEmbedPreview = ({ username, month, selectedDateAndTime, + calLink, }: { eventType: EventType; timezone?: string; @@ -308,9 +321,11 @@ const EmailEmbedPreview = ({ username?: string; month?: string; selectedDateAndTime: { [key: string]: string[] }; + calLink: string; }) => { const { t } = useLocale(); const [timeFormat, timezone] = useTimePreferences((state) => [state.timeFormat, state.timezone]); + if (!eventType) { return null; } @@ -471,7 +486,8 @@ const EmailEmbedPreview = ({