* feat: Cal.diy — community-driven MIT-licensed fork of Cal.com This squashed commit contains all Cal.diy changes applied on top of calcom/cal.com main: - Rebrand Cal.com to Cal.diy across the entire codebase - Remove Enterprise Edition (EE) features, license checks, and AGPL restrictions - Switch license from AGPL-3.0 to MIT - Remove docs/ directory (migrated to Nextra at cal.diy) - Remove dead code: org tests, EE tips, platform nav, premium username, SAML/SSO, etc. - Clean up .env.example for self-hosted Cal.diy - Update Docker image references to calcom/cal.diy - Update README, CONTRIBUTING.md, and issue templates for Cal.diy community fork - Add PR welcome bot for Cal.diy contributors - Fix API v2 breaking changes oasdiff ignore entries - Replace Blacksmith CI runners with default GitHub Actions 3893 files changed, 20789 insertions(+), 411020 deletions(-) Co-Authored-By: benny@cal.com <sldisek783@gmail.com> * refactor: remove org-specific /organizations/:orgId endpoints from API v2 atoms controllers (#1701) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix: revert Cal.diy Inc to Cal.com, Inc. in license files, copyright notices, and package metadata (#1702) Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * rip out org related comments in api v2 --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
28 lines
1.3 KiB
TypeScript
28 lines
1.3 KiB
TypeScript
import { usePathname } from "next/navigation";
|
|
|
|
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
|
|
// TODO: This approach of checking booking page isn't correct.
|
|
// app.cal.com/rick is a booking page but useIsBookingPage won't return true. This is because all unregistered router in Next.js could technically be a booking page throw catch all routes.
|
|
// The only way to confirm it is by actually checking if we actually rendered a booking route.
|
|
export default function useIsBookingPage(): boolean {
|
|
const pathname = usePathname();
|
|
const isBookingPage = [
|
|
"/booking",
|
|
"/cancel",
|
|
"/reschedule",
|
|
"/instant-meeting", // Instant booking page
|
|
"/team", // Team booking pages
|
|
"/d", // Private Link of booking page
|
|
"/router", // Headless router page - Loads as a page when redirect type is customPageMessage
|
|
].some((route) => pathname?.startsWith(route));
|
|
const isBookingsListPage = ["/upcoming", "/unconfirmed", "/recurring", "/cancelled", "/past"].some(
|
|
(route) => pathname?.endsWith(route)
|
|
);
|
|
|
|
const searchParams = useCompatSearchParams();
|
|
const isUserBookingPage = Boolean(searchParams?.get("user"));
|
|
const isUserBookingTypePage = Boolean(searchParams?.get("user") && searchParams?.get("type"));
|
|
|
|
return (isBookingPage && !isBookingsListPage) || isUserBookingPage || isUserBookingTypePage;
|
|
}
|