2022-01-07 20:23:37 +00:00
import { useSession } from "next-auth/react" ;
2021-09-22 19:52:38 +00:00
import { useRouter } from "next/router" ;
2022-03-17 13:20:49 +00:00
import { useLocale } from "@calcom/lib/hooks/useLocale" ;
2022-03-16 23:36:43 +00:00
import Button from "@calcom/ui/Button" ;
2022-07-27 02:24:00 +00:00
import { Icon } from "@calcom/ui/Icon" ;
2021-10-13 10:49:15 +00:00
2021-09-22 19:52:38 +00:00
import { HeadSeo } from "@components/seo/head-seo" ;
2021-06-06 01:26:14 +00:00
2021-09-14 08:45:28 +00:00
export default function CancelSuccess() {
2021-10-13 10:49:15 +00:00
const { t } = useLocale ( ) ;
2021-08-08 19:21:33 +00:00
// Get router variables
const router = useRouter ( ) ;
2022-06-10 20:38:06 +00:00
const { title , name , eventPage , recurring } = router . query ;
2022-06-13 12:18:51 +00:00
let team : string | string [ ] | number | undefined = router . query . team ;
2022-01-07 20:23:37 +00:00
const { data : session , status } = useSession ( ) ;
2022-06-21 14:57:04 +00:00
const isRecurringEvent = recurring === "true" ? true : false ;
2022-01-07 20:23:37 +00:00
const loading = status === "loading" ;
2022-06-13 12:18:51 +00:00
// If team param passed wrongly just assume it be a non team case.
if ( team instanceof Array || typeof team === "undefined" ) {
team = 0 ;
}
const isTeamEvent = + team === 1 ;
// FIXME: In case of Dynamic Event Booking, it takes the booker to one of the user's page(e.g. A) in the dynamic group(A+B+...). Booker should be taken to the same dynamic group
// This isn't directly possible because a booking doesn't know if it was done for a Dynamic Event(booking.eventType is null)
const eventUrl = ` / ${ isTeamEvent ? "team/" : "" } ${ eventPage as string } ` ;
2021-08-08 19:21:33 +00:00
return (
< div >
2021-10-13 10:49:15 +00:00
< HeadSeo
title = { ` ${ t ( "cancelled" ) } ${ title } | ${ name } ` }
description = { ` ${ t ( "cancelled" ) } ${ title } | ${ name } ` }
/ >
2022-02-09 00:05:13 +00:00
< main className = "mx-auto my-24 max-w-3xl" >
2022-03-18 09:55:02 +00:00
< div className = "fixed inset-0 z-50 overflow-y-auto" >
< div className = "flex min-h-screen items-end justify-center px-4 pt-4 pb-20 text-center sm:block sm:p-0" >
< div className = "fixed inset-0 my-4 transition-opacity sm:my-0" aria - hidden = "true" >
< span className = "hidden sm:inline-block sm:h-screen sm:align-middle" aria - hidden = "true" >
& # 8203 ;
< / span >
< div
className = "inline-block transform overflow-hidden rounded-lg bg-white px-4 pt-5 pb-4 text-left align-bottom shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-sm sm:p-6 sm:align-middle"
role = "dialog"
aria - modal = "true"
aria - labelledby = "modal-headline" >
< div >
< div className = "mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-green-100" >
2022-08-03 16:01:29 +00:00
< Icon.FiCheck className = "h-6 w-6 text-green-600" / >
2022-03-18 09:55:02 +00:00
< / div >
< div className = "mt-3 text-center sm:mt-5" >
< h3 className = "text-lg font-medium leading-6 text-gray-900" id = "modal-headline" >
{ t ( "cancellation_successful" ) }
< / h3 >
{ ! loading && ! session ? . user && (
< div className = "mt-2" >
< p className = "text-sm text-gray-500" > { t ( "free_to_pick_another_event_type" ) } < / p >
< / div >
) }
< / div >
< / div >
< div className = "mt-5 text-center sm:mt-6" >
< div className = "mt-5" >
2022-06-13 12:18:51 +00:00
{ ! loading && ! session ? . user && < Button href = { eventUrl } > Pick another < / Button > }
2022-03-18 09:55:02 +00:00
{ ! loading && session ? . user && (
2022-06-10 20:38:06 +00:00
< Button
data - testid = "back-to-bookings"
2022-07-19 23:29:52 +00:00
href = { isRecurringEvent ? "/bookings/recurring" : "/bookings/upcoming" }
2022-08-03 16:01:29 +00:00
StartIcon = { Icon . FiArrowLeft } >
2022-03-18 09:55:02 +00:00
{ t ( "back_to_bookings" ) }
< / Button >
) }
< / div >
< / div >
2021-08-08 19:21:33 +00:00
< / div >
< / div >
2022-03-18 09:55:02 +00:00
< / div >
< / div >
2021-08-08 19:21:33 +00:00
< / main >
< / div >
) ;
2021-06-06 01:26:14 +00:00
}