diff --git a/apps/web/lib/clock.ts b/apps/web/lib/clock.ts index 7c44f96dc9..21ee205fb2 100644 --- a/apps/web/lib/clock.ts +++ b/apps/web/lib/clock.ts @@ -1,10 +1,10 @@ // handles logic related to user clock display using 24h display / timeZone options. -import { CURRENT_TIMEZONE } from "@calcom/lib/constants"; import { getIs24hClockFromLocalStorage, isBrowserLocale24h, setIs24hClockInLocalStorage, } from "@calcom/lib/timeFormat"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import { localStorage } from "@calcom/lib/webstorage"; interface TimeOptions { diff --git a/apps/web/modules/bookings/views/bookings-single-view.tsx b/apps/web/modules/bookings/views/bookings-single-view.tsx index a8f2d6750f..fd46527e55 100644 --- a/apps/web/modules/bookings/views/bookings-single-view.tsx +++ b/apps/web/modules/bookings/views/bookings-single-view.tsx @@ -28,7 +28,7 @@ import { SystemField, TITLE_FIELD, } from "@calcom/features/bookings/lib/SystemField"; -import { APP_NAME, CURRENT_TIMEZONE } from "@calcom/lib/constants"; +import { APP_NAME } from "@calcom/lib/constants"; import { formatToLocalizedDate, formatToLocalizedTime, @@ -45,6 +45,7 @@ import isSmsCalEmail from "@calcom/lib/isSmsCalEmail"; import { markdownToSafeHTML } from "@calcom/lib/markdownToSafeHTML"; import { getEveryFreqFor } from "@calcom/lib/recurringStrings"; import { getIs24hClockFromLocalStorage, isBrowserLocale24h } from "@calcom/lib/timeFormat"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import { localStorage } from "@calcom/lib/webstorage"; import { BookingStatus, SchedulingType } from "@calcom/prisma/enums"; import { bookingMetadataSchema, eventTypeMetaDataSchemaWithTypedApps } from "@calcom/prisma/zod-utils"; diff --git a/apps/web/modules/signup-view.tsx b/apps/web/modules/signup-view.tsx index 4863b1ad49..effba7c8ee 100644 --- a/apps/web/modules/signup-view.tsx +++ b/apps/web/modules/signup-view.tsx @@ -22,7 +22,6 @@ import { APP_NAME, URL_PROTOCOL_REGEX, IS_CALCOM, - IS_EUROPE, WEBAPP_URL, CLOUDFLARE_SITE_ID, WEBSITE_PRIVACY_POLICY_URL, @@ -36,6 +35,7 @@ import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams"; import { useDebounce } from "@calcom/lib/hooks/useDebounce"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { collectPageParameters, telemetryEventTypes, useTelemetry } from "@calcom/lib/telemetry"; +import { IS_EUROPE } from "@calcom/lib/timezoneConstants"; import { signupSchema as apiSignupSchema } from "@calcom/prisma/zod-utils"; import type { inferSSRProps } from "@calcom/types/inferSSRProps"; import { Button, PasswordField, TextField, Form, Alert, CheckboxField, Icon, showToast } from "@calcom/ui"; diff --git a/packages/features/bookings/Booker/components/EventMeta.tsx b/packages/features/bookings/Booker/components/EventMeta.tsx index 7ae1c0720d..ce08086910 100644 --- a/packages/features/bookings/Booker/components/EventMeta.tsx +++ b/packages/features/bookings/Booker/components/EventMeta.tsx @@ -10,9 +10,9 @@ import { SeatsAvailabilityText } from "@calcom/features/bookings/components/Seat import { EventMetaBlock } from "@calcom/features/bookings/components/event-meta/Details"; import { useTimePreferences } from "@calcom/features/bookings/lib"; import type { BookerEvent } from "@calcom/features/bookings/types"; -import { CURRENT_TIMEZONE } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { markdownToSafeHTMLClient } from "@calcom/lib/markdownToSafeHTMLClient"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import type { EventTypeTranslation } from "@calcom/prisma/client"; import { EventTypeAutoTranslatedField } from "@calcom/prisma/enums"; diff --git a/packages/features/bookings/lib/timePreferences.ts b/packages/features/bookings/lib/timePreferences.ts index 4eeb742fee..6b04041419 100644 --- a/packages/features/bookings/lib/timePreferences.ts +++ b/packages/features/bookings/lib/timePreferences.ts @@ -1,7 +1,7 @@ import { create } from "zustand"; -import { CURRENT_TIMEZONE } from "@calcom/lib/constants"; import { TimeFormat, detectBrowserTimeFormat, setIs24hClockInLocalStorage } from "@calcom/lib/timeFormat"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import { localStorage } from "@calcom/lib/webstorage"; type TimePreferencesStore = { diff --git a/packages/features/ee/payments/components/PaymentPage.tsx b/packages/features/ee/payments/components/PaymentPage.tsx index dfb9a143b0..f535db68d1 100644 --- a/packages/features/ee/payments/components/PaymentPage.tsx +++ b/packages/features/ee/payments/components/PaymentPage.tsx @@ -10,11 +10,12 @@ import dayjs from "@calcom/dayjs"; import { sdkActionManager, useIsEmbed } from "@calcom/embed-core/embed-iframe"; import { PayIcon } from "@calcom/features/bookings/components/event-meta/PayIcon"; import { Price } from "@calcom/features/bookings/components/event-meta/Price"; -import { APP_NAME, WEBSITE_URL, CURRENT_TIMEZONE } from "@calcom/lib/constants"; +import { APP_NAME, WEBSITE_URL } from "@calcom/lib/constants"; import { getPaymentAppData } from "@calcom/lib/getPaymentAppData"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import useTheme from "@calcom/lib/hooks/useTheme"; import { getIs24hClockFromLocalStorage, isBrowserLocale24h } from "@calcom/lib/timeFormat"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import { localStorage } from "@calcom/lib/webstorage"; import type { PaymentPageProps } from "../pages/payment"; diff --git a/packages/features/ee/teams/components/TeamAvailabilityModal.tsx b/packages/features/ee/teams/components/TeamAvailabilityModal.tsx index 8f926d678d..04f01a98dc 100644 --- a/packages/features/ee/teams/components/TeamAvailabilityModal.tsx +++ b/packages/features/ee/teams/components/TeamAvailabilityModal.tsx @@ -4,8 +4,9 @@ import dayjs from "@calcom/dayjs"; import { TimezoneSelect } from "@calcom/features/components/timezone-select"; import type { ITimezone } from "@calcom/features/components/timezone-select"; import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired"; -import { WEBAPP_URL, CURRENT_TIMEZONE } from "@calcom/lib/constants"; +import { WEBAPP_URL } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import type { RouterOutputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; import { Avatar, DatePicker, Label, Select } from "@calcom/ui"; diff --git a/packages/features/settings/TimezoneChangeDialog.tsx b/packages/features/settings/TimezoneChangeDialog.tsx index 5df01f612d..e241e1730d 100644 --- a/packages/features/settings/TimezoneChangeDialog.tsx +++ b/packages/features/settings/TimezoneChangeDialog.tsx @@ -5,8 +5,8 @@ import { useSession } from "next-auth/react"; import { useEffect, useState } from "react"; import dayjs from "@calcom/dayjs"; -import { CURRENT_TIMEZONE } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import { trpc } from "@calcom/trpc/react"; import { showToast, Dialog, DialogClose, DialogContent, DialogFooter, DialogHeader } from "@calcom/ui"; diff --git a/packages/features/timezone-buddy/components/AvailabilitySliderTable.tsx b/packages/features/timezone-buddy/components/AvailabilitySliderTable.tsx index 9eb5d8d513..9527150a75 100644 --- a/packages/features/timezone-buddy/components/AvailabilitySliderTable.tsx +++ b/packages/features/timezone-buddy/components/AvailabilitySliderTable.tsx @@ -8,10 +8,10 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import dayjs from "@calcom/dayjs"; import { DataTable, DataTableToolbar } from "@calcom/features/data-table"; import { APP_NAME, WEBAPP_URL } from "@calcom/lib/constants"; -import { CURRENT_TIMEZONE } from "@calcom/lib/constants"; import type { DateRange } from "@calcom/lib/date-ranges"; import { useDebounce } from "@calcom/lib/hooks/useDebounce"; import { useLocale } from "@calcom/lib/hooks/useLocale"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import type { MembershipRole } from "@calcom/prisma/enums"; import { trpc } from "@calcom/trpc"; import type { UserProfile } from "@calcom/types/UserProfile"; diff --git a/packages/lib/constants.ts b/packages/lib/constants.ts index b8266f4f72..dbe0cab284 100644 --- a/packages/lib/constants.ts +++ b/packages/lib/constants.ts @@ -1,5 +1,3 @@ -import dayjs from "@calcom/dayjs"; - const VERCEL_URL = process.env.NEXT_PUBLIC_VERCEL_URL ? `https://${process.env.NEXT_PUBLIC_VERCEL_URL}` : ""; const RAILWAY_STATIC_URL = process.env.RAILWAY_STATIC_URL ? `https://${process.env.RAILWAY_STATIC_URL}` : ""; const HEROKU_URL = process.env.HEROKU_APP_NAME ? `https://${process.env.HEROKU_APP_NAME}.herokuapp.com` : ""; @@ -63,8 +61,6 @@ export const TRIAL_LIMIT_DAYS = 14; export const HOSTED_CAL_FEATURES = process.env.NEXT_PUBLIC_HOSTED_CAL_FEATURES || !IS_SELF_HOSTED; -export const IS_EUROPE = dayjs.tz.guess()?.indexOf("Europe") !== -1; - export const PUBLIC_QUERY_RESERVATION_INTERVAL_SECONDS = parseInt(process.env.NEXT_PUBLIC_QUERY_RESERVATION_INTERVAL_SECONDS ?? "", 10) || 30; @@ -80,8 +76,6 @@ export const PUBLIC_INVALIDATE_AVAILABLE_SLOTS_ON_BOOKING_FORM = export const PUBLIC_QUICK_AVAILABILITY_ROLLOUT = parseInt(process.env.NEXT_PUBLIC_QUICK_AVAILABILITY_ROLLOUT ?? "", 10) || 0; -export const CURRENT_TIMEZONE = dayjs.tz.guess() !== "Etc/Unknown" ? dayjs.tz.guess() : "Europe/London"; - /** @deprecated use `WEBAPP_URL` */ export const NEXT_PUBLIC_BASE_URL = process.env.NEXT_PUBLIC_WEBAPP_URL || `https://${process.env.VERCEL_URL}`; export const LOGO = "/calcom-logo-white-word.svg"; diff --git a/packages/lib/timezoneConstants.ts b/packages/lib/timezoneConstants.ts new file mode 100644 index 0000000000..aa3545bbf3 --- /dev/null +++ b/packages/lib/timezoneConstants.ts @@ -0,0 +1,4 @@ +import dayjs from "@calcom/dayjs"; + +export const IS_EUROPE = dayjs.tz.guess()?.indexOf("Europe") !== -1; +export const CURRENT_TIMEZONE = dayjs.tz.guess() !== "Etc/Unknown" ? dayjs.tz.guess() : "Europe/London"; diff --git a/packages/platform/atoms/event-types/payments/PaymentForm.tsx b/packages/platform/atoms/event-types/payments/PaymentForm.tsx index 19fba5237e..2c108ca9e9 100644 --- a/packages/platform/atoms/event-types/payments/PaymentForm.tsx +++ b/packages/platform/atoms/event-types/payments/PaymentForm.tsx @@ -5,10 +5,11 @@ import dayjs from "@calcom/dayjs"; import { PayIcon } from "@calcom/features/bookings/components/event-meta/PayIcon"; import { Price } from "@calcom/features/bookings/components/event-meta/Price"; import type { PaymentPageProps } from "@calcom/features/ee/payments/pages/payment"; -import { APP_NAME, WEBSITE_URL, CURRENT_TIMEZONE } from "@calcom/lib/constants"; +import { APP_NAME, WEBSITE_URL } from "@calcom/lib/constants"; import { getPaymentAppData } from "@calcom/lib/getPaymentAppData"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { isBrowserLocale24h } from "@calcom/lib/timeFormat"; +import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import { localStorage } from "@calcom/lib/webstorage"; import { AtomsWrapper } from "../../src/components/atoms-wrapper";