Fixes theme flickering on booking & availability select page (#771)
This commit is contained in:
parent
727793af02
commit
515c548acd
3 changed files with 37 additions and 36 deletions
|
@ -29,7 +29,7 @@ dayjs.extend(customParseFormat);
|
||||||
const AvailabilityPage = ({ profile, eventType, workingHours }: AvailabilityPageProps) => {
|
const AvailabilityPage = ({ profile, eventType, workingHours }: AvailabilityPageProps) => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { rescheduleUid } = router.query;
|
const { rescheduleUid } = router.query;
|
||||||
const themeLoaded = useTheme(profile.theme);
|
const { isReady } = useTheme(profile.theme);
|
||||||
|
|
||||||
const selectedDate = useMemo(() => {
|
const selectedDate = useMemo(() => {
|
||||||
const dateString = asStringOrNull(router.query.date);
|
const dateString = asStringOrNull(router.query.date);
|
||||||
|
@ -83,20 +83,20 @@ const AvailabilityPage = ({ profile, eventType, workingHours }: AvailabilityPage
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
themeLoaded && (
|
<>
|
||||||
<>
|
<HeadSeo
|
||||||
<HeadSeo
|
title={`${rescheduleUid ? "Reschedule" : ""} ${eventType.title} | ${profile.name}`}
|
||||||
title={`${rescheduleUid ? "Reschedule" : ""} ${eventType.title} | ${profile.name}`}
|
description={`${rescheduleUid ? "Reschedule" : ""} ${eventType.title}`}
|
||||||
description={`${rescheduleUid ? "Reschedule" : ""} ${eventType.title}`}
|
name={profile.name}
|
||||||
name={profile.name}
|
avatar={profile.image}
|
||||||
avatar={profile.image}
|
/>
|
||||||
/>
|
<div>
|
||||||
<div>
|
<main
|
||||||
<main
|
className={
|
||||||
className={
|
"mx-auto my-0 md:my-24 transition-max-width ease-in-out duration-500 " +
|
||||||
"mx-auto my-0 md:my-24 transition-max-width ease-in-out duration-500 " +
|
(selectedDate ? "max-w-5xl" : "max-w-3xl")
|
||||||
(selectedDate ? "max-w-5xl" : "max-w-3xl")
|
}>
|
||||||
}>
|
{isReady && (
|
||||||
<div className="bg-white border-gray-200 rounded-sm sm:dark:border-gray-600 dark:bg-gray-900 md:border">
|
<div className="bg-white border-gray-200 rounded-sm sm:dark:border-gray-600 dark:bg-gray-900 md:border">
|
||||||
{/* mobile: details */}
|
{/* mobile: details */}
|
||||||
<div className="block p-4 sm:p-8 md:hidden">
|
<div className="block p-4 sm:p-8 md:hidden">
|
||||||
|
@ -214,11 +214,11 @@ const AvailabilityPage = ({ profile, eventType, workingHours }: AvailabilityPage
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{(!eventType.users[0] || !isBrandingHidden(eventType.users[0])) && <PoweredByCalendso />}
|
)}
|
||||||
</main>
|
{(!eventType.users[0] || !isBrandingHidden(eventType.users[0])) && <PoweredByCalendso />}
|
||||||
</div>
|
</main>
|
||||||
</>
|
</div>
|
||||||
)
|
</>
|
||||||
);
|
);
|
||||||
|
|
||||||
function TimezoneDropdown() {
|
function TimezoneDropdown() {
|
||||||
|
|
|
@ -38,7 +38,7 @@ type BookingPageProps = BookPageProps | TeamBookingPageProps;
|
||||||
const BookingPage = (props: BookingPageProps) => {
|
const BookingPage = (props: BookingPageProps) => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { rescheduleUid } = router.query;
|
const { rescheduleUid } = router.query;
|
||||||
const themeLoaded = useTheme(props.profile.theme);
|
const { isReady } = useTheme(props.profile.theme);
|
||||||
|
|
||||||
const date = asStringOrNull(router.query.date);
|
const date = asStringOrNull(router.query.date);
|
||||||
const timeFormat = asStringOrNull(router.query.clock) === "24h" ? "H:mm" : "h:mma";
|
const timeFormat = asStringOrNull(router.query.clock) === "24h" ? "H:mm" : "h:mma";
|
||||||
|
@ -175,17 +175,17 @@ const BookingPage = (props: BookingPageProps) => {
|
||||||
const bookingHandler = useCallback(_bookingHandler, []);
|
const bookingHandler = useCallback(_bookingHandler, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
themeLoaded && (
|
<div>
|
||||||
<div>
|
<Head>
|
||||||
<Head>
|
<title>
|
||||||
<title>
|
{rescheduleUid ? "Reschedule" : "Confirm"} your {props.eventType.title} with {props.profile.name} |
|
||||||
{rescheduleUid ? "Reschedule" : "Confirm"} your {props.eventType.title} with {props.profile.name}{" "}
|
Cal.com
|
||||||
| Cal.com
|
</title>
|
||||||
</title>
|
<link rel="icon" href="/favicon.ico" />
|
||||||
<link rel="icon" href="/favicon.ico" />
|
</Head>
|
||||||
</Head>
|
|
||||||
|
|
||||||
<main className="max-w-3xl mx-auto my-0 sm:my-24">
|
<main className="max-w-3xl mx-auto my-0 sm:my-24">
|
||||||
|
{isReady && (
|
||||||
<div className="dark:bg-neutral-900 bg-white overflow-hidden border border-gray-200 dark:border-0 sm:rounded-sm">
|
<div className="dark:bg-neutral-900 bg-white overflow-hidden border border-gray-200 dark:border-0 sm:rounded-sm">
|
||||||
<div className="sm:flex px-4 py-5 sm:p-4">
|
<div className="sm:flex px-4 py-5 sm:p-4">
|
||||||
<div className="sm:w-1/2 sm:border-r sm:dark:border-black">
|
<div className="sm:w-1/2 sm:border-r sm:dark:border-black">
|
||||||
|
@ -459,9 +459,9 @@ const BookingPage = (props: BookingPageProps) => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
)}
|
||||||
</div>
|
</main>
|
||||||
)
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ export default function Success(props: inferSSRProps<typeof getServerSideProps>)
|
||||||
const needsConfirmation = props.eventType.requiresConfirmation && reschedule != "true";
|
const needsConfirmation = props.eventType.requiresConfirmation && reschedule != "true";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
isReady && (
|
(isReady && (
|
||||||
<div className="bg-neutral-50 dark:bg-neutral-900 h-screen">
|
<div className="bg-neutral-50 dark:bg-neutral-900 h-screen">
|
||||||
<HeadSeo
|
<HeadSeo
|
||||||
title={`Booking ${needsConfirmation ? "Submitted" : "Confirmed"}`}
|
title={`Booking ${needsConfirmation ? "Submitted" : "Confirmed"}`}
|
||||||
|
@ -235,7 +235,8 @@ export default function Success(props: inferSSRProps<typeof getServerSideProps>)
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
)
|
)) ||
|
||||||
|
null
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue