diff --git a/apps/web/modules/bookings/components/SlotSelectionModalHeader.tsx b/apps/web/modules/bookings/components/SlotSelectionModalHeader.tsx index 78bb2d9594..3e8857ee2b 100644 --- a/apps/web/modules/bookings/components/SlotSelectionModalHeader.tsx +++ b/apps/web/modules/bookings/components/SlotSelectionModalHeader.tsx @@ -1,26 +1,34 @@ -import dynamic from "next/dynamic"; -import { useMemo } from "react"; -import { shallow } from "zustand/shallow"; - import { Timezone as PlatformTimezoneSelect } from "@calcom/atoms/timezone"; +import dayjs from "@calcom/dayjs"; import { useBookerStoreContext } from "@calcom/features/bookings/Booker/BookerStoreProvider"; import type { Timezone } from "@calcom/features/bookings/Booker/types"; +import { useTimePreferences } from "@calcom/features/bookings/lib"; import type { BookerEvent } from "@calcom/features/bookings/types"; import { EventDetailBlocks } from "@calcom/features/bookings/types"; -import { useTimePreferences } from "@calcom/features/bookings/lib"; +import type { TimezoneSelectComponentProps } from "@calcom/features/timezone/components/TimezoneSelectComponent"; +import { useLocale } from "@calcom/lib/hooks/useLocale"; import { CURRENT_TIMEZONE } from "@calcom/lib/timezoneConstants"; import { Button } from "@calcom/ui/components/button"; import { Icon } from "@calcom/ui/components/icon"; - +import dynamic from "next/dynamic"; +import type { ComponentType } from "react"; +import { useMemo } from "react"; +import { shallow } from "zustand/shallow"; import { EventDetails } from "./event-meta/Details"; -import { useLocale } from "@calcom/lib/hooks/useLocale"; -const LoadingState = () => { +const LoadingState = (): JSX.Element => { const { t } = useLocale(); return {t("loading")}; }; -const WebTimezoneSelect = dynamic( +type TimezoneSelectProps = Omit< + TimezoneSelectComponentProps, + "data" | "isPending" | "isWebTimezoneSelect" +> & { + timeZones?: Timezone[]; +}; + +const WebTimezoneSelect: ComponentType = dynamic( () => import("@calcom/web/modules/timezone/components/TimezoneSelect").then( (mod) => mod.TimezoneSelect @@ -58,7 +66,7 @@ export const SlotSelectionModalHeader = ({ isPlatform = false, timeZones, selectedDate, -}: SlotSelectionModalHeaderProps) => { +}: SlotSelectionModalHeaderProps): JSX.Element => { const { i18n } = useLocale(); const [setTimezone] = useTimePreferences((state) => [state.setTimezone]); const [timezone, setBookerStoreTimezone] = useBookerStoreContext( @@ -72,23 +80,19 @@ export const SlotSelectionModalHeader = ({ const formattedDate = useMemo(() => { if (!selectedDate) return { dayOfWeek: "", fullDate: "" }; - const date = new Date(selectedDate); - const dayOfWeek = date.toLocaleDateString(i18n.language, { - weekday: "long", - }); - const fullDate = date.toLocaleDateString(i18n.language, { - month: "long", - day: "numeric", - year: "numeric", - }); + + const date = dayjs(selectedDate); + const dayOfWeek = date.locale(i18n.language).format("dddd"); + const fullDate = date.locale(i18n.language).format("MMMM D, YYYY"); + return { dayOfWeek, fullDate }; }, [selectedDate, i18n.language]); return ( -
+
- +