diff --git a/apps/web/app/(use-page-wrapper)/event-types/[type]/page.tsx b/apps/web/app/(use-page-wrapper)/event-types/[type]/page.tsx index bbe79e13f1b85a..f6bbefed7d27d9 100644 --- a/apps/web/app/(use-page-wrapper)/event-types/[type]/page.tsx +++ b/apps/web/app/(use-page-wrapper)/event-types/[type]/page.tsx @@ -6,7 +6,7 @@ import { cookies, headers } from "next/headers"; import { redirect } from "next/navigation"; import { z } from "zod"; -import { EventTypeWebWrapper } from "@calcom/atoms/event-types/wrappers/EventTypeWebWrapper"; +import { EventTypeWebWrapper } from "@calcom/web/modules/event-types/components/EventTypeWebWrapper"; import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; import { getEventTypePermissions } from "@calcom/features/pbac/lib/event-type-permissions"; import { eventTypesRouter } from "@calcom/trpc/server/routers/viewer/eventTypes/_router"; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/my-account/conferencing/loading.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/my-account/conferencing/loading.tsx index 40bb0e320529c3..dd4be8266ca636 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/my-account/conferencing/loading.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/my-account/conferencing/loading.tsx @@ -1,4 +1,4 @@ -import { SkeletonLoader } from "@calcom/atoms/connect/conferencing-apps/ConferencingAppsViewWebWrapper"; +import { SkeletonLoader } from "@calcom/web/modules/apps/components/ConferencingAppsViewWebWrapper"; export default function Loading() { return ; diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/my-account/conferencing/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/my-account/conferencing/page.tsx index ebb7bd810f4a1a..ccd9a1e193fa1e 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/my-account/conferencing/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/my-account/conferencing/page.tsx @@ -1,7 +1,7 @@ import { createRouterCaller } from "app/_trpc/context"; import { _generateMetadata } from "app/_utils"; -import { ConferencingAppsViewWebWrapper } from "@calcom/atoms/connect/conferencing-apps/ConferencingAppsViewWebWrapper"; +import { ConferencingAppsViewWebWrapper } from "@calcom/web/modules/apps/components/ConferencingAppsViewWebWrapper"; import { appsRouter } from "@calcom/trpc/server/routers/viewer/apps/_router"; import { eventTypesRouter } from "@calcom/trpc/server/routers/viewer/eventTypes/_router"; diff --git a/apps/web/components/apps/CalendarListContainer.tsx b/apps/web/components/apps/CalendarListContainer.tsx index bdcbbb46caf5e4..69836304ced798 100644 --- a/apps/web/components/apps/CalendarListContainer.tsx +++ b/apps/web/components/apps/CalendarListContainer.tsx @@ -3,8 +3,8 @@ import { useEffect, Suspense } from "react"; import { InstallAppButton } from "@calcom/app-store/InstallAppButton"; -import { DestinationCalendarSettingsWebWrapper } from "@calcom/atoms/destination-calendar/wrappers/DestinationCalendarSettingsWebWrapper"; -import { SelectedCalendarsSettingsWebWrapper } from "@calcom/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsWebWrapper"; +import { DestinationCalendarSettingsWebWrapper } from "./DestinationCalendarSettingsWebWrapper"; +import { SelectedCalendarsSettingsWebWrapper } from "@calcom/web/modules/calendars/components/SelectedCalendarsSettingsWebWrapper"; import AppListCard from "@calcom/web/modules/apps/components/AppListCard"; import { SkeletonLoader } from "@calcom/web/modules/apps/components/SkeletonLoader"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; diff --git a/packages/platform/atoms/destination-calendar/wrappers/DestinationCalendarSettingsWebWrapper.tsx b/apps/web/components/apps/DestinationCalendarSettingsWebWrapper.tsx similarity index 80% rename from packages/platform/atoms/destination-calendar/wrappers/DestinationCalendarSettingsWebWrapper.tsx rename to apps/web/components/apps/DestinationCalendarSettingsWebWrapper.tsx index 94b9be78975851..b046f8cce602c9 100644 --- a/packages/platform/atoms/destination-calendar/wrappers/DestinationCalendarSettingsWebWrapper.tsx +++ b/apps/web/components/apps/DestinationCalendarSettingsWebWrapper.tsx @@ -1,7 +1,7 @@ import { trpc } from "@calcom/trpc/react"; -import { AtomsWrapper } from "../../src/components/atoms-wrapper"; -import { DestinationCalendarSettings } from "../DestinationCalendar"; +import { AtomsWrapper } from "../../../../packages/platform/atoms/src/components/atoms-wrapper"; +import { DestinationCalendarSettings } from "../../../../packages/platform/atoms/destination-calendar/DestinationCalendar"; export const DestinationCalendarSettingsWebWrapper = () => { const calendars = trpc.viewer.calendars.connectedCalendars.useQuery(); diff --git a/packages/platform/atoms/connect/conferencing-apps/ConferencingAppsViewWebWrapper.tsx b/apps/web/modules/apps/components/ConferencingAppsViewWebWrapper.tsx similarity index 97% rename from packages/platform/atoms/connect/conferencing-apps/ConferencingAppsViewWebWrapper.tsx rename to apps/web/modules/apps/components/ConferencingAppsViewWebWrapper.tsx index b9febb21acd65e..b6e929f04f446a 100644 --- a/packages/platform/atoms/connect/conferencing-apps/ConferencingAppsViewWebWrapper.tsx +++ b/apps/web/modules/apps/components/ConferencingAppsViewWebWrapper.tsx @@ -2,8 +2,6 @@ import { useReducer } from "react"; -import { AppList } from "@calcom/web/modules/apps/components/AppList"; -import DisconnectIntegrationModal from "@calcom/web/modules/apps/components/DisconnectIntegrationModal"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; @@ -13,6 +11,9 @@ import { EmptyScreen } from "@calcom/ui/components/empty-screen"; import { SkeletonText, SkeletonContainer } from "@calcom/ui/components/skeleton"; import { showToast } from "@calcom/ui/components/toast"; +import { AppList } from "./AppList"; +import DisconnectIntegrationModal from "./DisconnectIntegrationModal"; + export type UpdateUsersDefaultConferencingAppParams = { appSlug: string; appLink?: string; diff --git a/packages/platform/atoms/booker/BookerWebWrapper.tsx b/apps/web/modules/bookings/components/BookerWebWrapper.tsx similarity index 98% rename from packages/platform/atoms/booker/BookerWebWrapper.tsx rename to apps/web/modules/bookings/components/BookerWebWrapper.tsx index e8cd69411d2287..95b74f43e386f1 100644 --- a/packages/platform/atoms/booker/BookerWebWrapper.tsx +++ b/apps/web/modules/bookings/components/BookerWebWrapper.tsx @@ -2,7 +2,7 @@ import { useSession } from "next-auth/react"; import { useSearchParams, usePathname, useRouter } from "next/navigation"; -import { useMemo, useCallback, useEffect, useRef } from "react"; +import { useMemo, useCallback, useEffect } from "react"; import React from "react"; import { shallow } from "zustand/shallow"; @@ -12,7 +12,6 @@ import { } from "@calcom/embed-core/embed-iframe"; import { useBookerEmbedEvents } from "@calcom/embed-core/src/embed-iframe/react-hooks"; import type { BookerProps } from "@calcom/features/bookings/Booker"; -import { Booker as BookerComponent } from "@calcom/web/modules/bookings/components/Booker"; import { BookerStoreProvider, useInitializeBookerStoreContext, @@ -33,6 +32,8 @@ import { DEFAULT_LIGHT_BRAND_COLOR, DEFAULT_DARK_BRAND_COLOR, WEBAPP_URL } from import { useRouterQuery } from "@calcom/lib/hooks/useRouterQuery"; import { localStorage } from "@calcom/lib/webstorage"; +import { Booker as BookerComponent } from "./Booker"; + export type BookerWebWrapperAtomProps = BookerProps & { eventData?: NonNullable>>; }; diff --git a/packages/platform/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsWebWrapper.tsx b/apps/web/modules/calendars/components/SelectedCalendarsSettingsWebWrapper.tsx similarity index 99% rename from packages/platform/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsWebWrapper.tsx rename to apps/web/modules/calendars/components/SelectedCalendarsSettingsWebWrapper.tsx index 4b327163871852..4770405eb59f24 100644 --- a/packages/platform/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsWebWrapper.tsx +++ b/apps/web/modules/calendars/components/SelectedCalendarsSettingsWebWrapper.tsx @@ -12,7 +12,7 @@ import { Alert } from "@calcom/ui/components/alert"; import { Select } from "@calcom/ui/components/form"; import { List } from "@calcom/ui/components/list"; -import { SelectedCalendarsSettings } from "../SelectedCalendarsSettings"; +import { SelectedCalendarsSettings } from "@calcom/atoms/selected-calendars/SelectedCalendarsSettings"; export enum SelectedCalendarSettingsScope { User = "user", @@ -147,7 +147,6 @@ export const SelectedCalendarsSettingsWebWrapper = (props: SelectedCalendarsSett const query = trpc.viewer.calendars.connectedCalendars.useQuery( { - eventTypeId: scope === SelectedCalendarSettingsScope.EventType ? eventTypeId! : null, }, { diff --git a/apps/web/modules/d/[link]/d-type-view.tsx b/apps/web/modules/d/[link]/d-type-view.tsx index b733cba23dd030..9fa2d998f0a88f 100644 --- a/apps/web/modules/d/[link]/d-type-view.tsx +++ b/apps/web/modules/d/[link]/d-type-view.tsx @@ -1,6 +1,6 @@ "use client"; -import { BookerWebWrapper as Booker } from "@calcom/atoms/booker"; +import { BookerWebWrapper as Booker } from "@calcom/web/modules/bookings/components/BookerWebWrapper"; import { getBookerWrapperClasses } from "@calcom/features/bookings/Booker/utils/getBookerWrapperClasses"; import { type PageProps } from "@lib/d/[link]/[slug]/getServerSideProps"; diff --git a/apps/web/modules/event-types/components/AddMembersWithSwitch.tsx b/apps/web/modules/event-types/components/AddMembersWithSwitch.tsx index 47a761fee3cc2e..a4c0d35cdfa05d 100644 --- a/apps/web/modules/event-types/components/AddMembersWithSwitch.tsx +++ b/apps/web/modules/event-types/components/AddMembersWithSwitch.tsx @@ -4,7 +4,7 @@ import { Controller } from "react-hook-form"; import type { Options } from "react-select"; import { AddMembersWithSwitchPlatformWrapper } from "@calcom/atoms/add-members-switch/AddMembersWithSwitchPlatformWrapper"; -import { AddMembersWithSwitchWebWrapper } from "@calcom/atoms/add-members-switch/AddMembersWithSwitchWebWrapper"; +import { AddMembersWithSwitchWebWrapper } from "./AddMembersWithSwitchWebWrapper"; import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform"; import { Segment } from "@calcom/features/Segment"; import type { diff --git a/packages/platform/atoms/add-members-switch/AddMembersWithSwitchWebWrapper.tsx b/apps/web/modules/event-types/components/AddMembersWithSwitchWebWrapper.tsx similarity index 59% rename from packages/platform/atoms/add-members-switch/AddMembersWithSwitchWebWrapper.tsx rename to apps/web/modules/event-types/components/AddMembersWithSwitchWebWrapper.tsx index 7a530b7e9e8ad5..6ea54bca11c23f 100644 --- a/packages/platform/atoms/add-members-switch/AddMembersWithSwitchWebWrapper.tsx +++ b/apps/web/modules/event-types/components/AddMembersWithSwitchWebWrapper.tsx @@ -1,7 +1,8 @@ -import type { AddMembersWithSwitchProps } from "@calcom/web/modules/event-types/components/AddMembersWithSwitch"; -import { AddMembersWithSwitch } from "@calcom/web/modules/event-types/components/AddMembersWithSwitch"; import { trpc } from "@calcom/trpc/react"; +import type { AddMembersWithSwitchProps } from "./AddMembersWithSwitch"; +import { AddMembersWithSwitch } from "./AddMembersWithSwitch"; + export const AddMembersWithSwitchWebWrapper = ({ ...props }: AddMembersWithSwitchProps) => { const utils = trpc.useUtils(); diff --git a/packages/platform/atoms/event-types/wrappers/EventTypeWebWrapper.tsx b/apps/web/modules/event-types/components/EventTypeWebWrapper.tsx similarity index 86% rename from packages/platform/atoms/event-types/wrappers/EventTypeWebWrapper.tsx rename to apps/web/modules/event-types/components/EventTypeWebWrapper.tsx index 5f4c8853786222..355a0b84cd64c4 100644 --- a/packages/platform/atoms/event-types/wrappers/EventTypeWebWrapper.tsx +++ b/apps/web/modules/event-types/components/EventTypeWebWrapper.tsx @@ -6,8 +6,6 @@ import { useEffect, useRef, useState } from "react"; import { z } from "zod"; import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider"; -import type { ChildrenEventType } from "@calcom/web/modules/event-types/components/ChildrenEventTypeSelect"; -import { EventType as EventTypeComponent } from "@calcom/web/modules/event-types/components/EventType"; import type { EventTypeSetupProps } from "@calcom/features/eventtypes/lib/types"; import { EventPermissionProvider } from "@calcom/features/pbac/client/context/EventPermissionContext"; import { useWorkflowPermission } from "@calcom/features/pbac/client/hooks/useEventPermission"; @@ -20,14 +18,17 @@ import { trpc } from "@calcom/trpc/react"; import type { RouterOutputs } from "@calcom/trpc/react"; import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery"; import { showToast } from "@calcom/ui/components/toast"; -import { revalidateTeamEventTypeCache } from "@calcom/web/app/(booking-page-wrapper)/team/[slug]/[type]/actions"; -import { revalidateEventTypeEditPage } from "@calcom/web/app/(use-page-wrapper)/event-types/[type]/actions"; import { TRPCClientError } from "@trpc/react-query"; -import { useEventTypeForm } from "../hooks/useEventTypeForm"; -import { useHandleRouteChange } from "../hooks/useHandleRouteChange"; -import { useTabsNavigations } from "../hooks/useTabsNavigations"; +import { revalidateTeamEventTypeCache } from "@calcom/web/app/(booking-page-wrapper)/team/[slug]/[type]/actions"; +import { revalidateEventTypeEditPage } from "@calcom/web/app/(use-page-wrapper)/event-types/[type]/actions"; + +import type { ChildrenEventType } from "./ChildrenEventTypeSelect"; +import { EventType as EventTypeComponent } from "./EventType"; +import { useEventTypeForm } from "@calcom/atoms/event-types/hooks/useEventTypeForm"; +import { useHandleRouteChange } from "@calcom/atoms/event-types/hooks/useHandleRouteChange"; +import { useTabsNavigations } from "@calcom/atoms/event-types/hooks/useTabsNavigations"; type EventPermissions = { eventTypes: { @@ -44,65 +45,49 @@ type EventPermissions = { }; }; -const ManagedEventTypeDialog = dynamic( - () => import("@calcom/web/modules/event-types/components/dialogs/ManagedEventDialog") -); +const ManagedEventTypeDialog = dynamic(() => import("./dialogs/ManagedEventDialog")); -const AssignmentWarningDialog = dynamic( - () => import("@calcom/web/modules/event-types/components/dialogs/AssignmentWarningDialog") -); +const AssignmentWarningDialog = dynamic(() => import("./dialogs/AssignmentWarningDialog")); const EventSetupTab = dynamic( - () => - // import web wrapper when it's ready - import("./EventSetupTabWebWrapper").then((mod) => mod), + () => import("./tabs/setup/EventSetupTabWebWrapper").then((mod) => mod), { loading: () => null } ); const EventAvailabilityTab = dynamic(() => - // import web wrapper when it's ready - import("./EventAvailabilityTabWebWrapper").then((mod) => mod) + import("./tabs/availability/EventAvailabilityTabWebWrapper").then((mod) => mod) ); -const EventTeamAssignmentTab = dynamic(() => import("./EventTeamAssignmentTabWebWrapper").then((mod) => mod)); +const EventTeamAssignmentTab = dynamic(() => import("./tabs/assignment/EventTeamAssignmentTabWebWrapper").then((mod) => mod)); const EventLimitsTab = dynamic(() => - // import web wrapper when it's ready - import("./EventLimitsTabWebWrapper").then((mod) => mod) + import("./tabs/limits/EventLimitsTabWebWrapper").then((mod) => mod) ); const EventAdvancedTab = dynamic(() => - // import web wrapper when it's ready - import("./EventAdvancedWebWrapper").then((mod) => mod) + import("./tabs/advanced/EventAdvancedWebWrapper").then((mod) => mod) ); const EventInstantTab = dynamic(() => - import("@calcom/web/modules/event-types/components/tabs/instant/EventInstantTab").then( - (mod) => mod.EventInstantTab - ) + import("./tabs/instant/EventInstantTab").then((mod) => mod.EventInstantTab) ); const EventRecurringTab = dynamic(() => - // import web wrapper when it's ready - import("./EventRecurringWebWrapper").then((mod) => mod) + import("./tabs/recurring/EventRecurringWebWrapper").then((mod) => mod) ); const EventAppsTab = dynamic(() => - import("@calcom/web/modules/event-types/components/tabs/apps/EventAppsTab").then((mod) => mod.EventAppsTab) + import("./tabs/apps/EventAppsTab").then((mod) => mod.EventAppsTab) ); -const EventWorkflowsTab = dynamic( - () => import("@calcom/web/modules/event-types/components/tabs/workflows/EventWorkflowsTab") -); +const EventWorkflowsTab = dynamic(() => import("./tabs/workflows/EventWorkflowsTab")); const EventWebhooksTab = dynamic(() => - import("@calcom/web/modules/event-types/components/tabs/webhooks/EventWebhooksTab").then( - (mod) => mod.EventWebhooksTab - ) + import("./tabs/webhooks/EventWebhooksTab").then((mod) => mod.EventWebhooksTab) ); const EventAITab = dynamic(() => - import("@calcom/web/modules/event-types/components/tabs/ai/EventAITab").then((mod) => mod.EventAITab) + import("./tabs/ai/EventAITab").then((mod) => mod.EventAITab) ); export type EventTypeWebWrapperProps = { diff --git a/apps/web/modules/event-types/components/HostEditDialogs.tsx b/apps/web/modules/event-types/components/HostEditDialogs.tsx index cd756da61b70f9..90e1aa2bf316eb 100644 --- a/apps/web/modules/event-types/components/HostEditDialogs.tsx +++ b/apps/web/modules/event-types/components/HostEditDialogs.tsx @@ -10,7 +10,7 @@ import type { InputClassNames, SelectClassNames, } from "@calcom/features/eventtypes/lib/types"; -import { groupHostsByGroupId, getHostsFromOtherGroups } from "@calcom/lib/bookings/hostGroupUtils"; +import { groupHostsByGroupId, getHostsFromOtherGroups, sortHosts } from "@calcom/lib/bookings/hostGroupUtils"; import { DEFAULT_GROUP_ID } from "@calcom/lib/constants"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import classNames from "@calcom/ui/classNames"; @@ -128,27 +128,6 @@ export const PriorityDialog = ( ); }; -export function sortHosts( - hostA: { priority: number | null; weight: number | null }, - hostB: { priority: number | null; weight: number | null }, - isRRWeightsEnabled: boolean -) { - const weightA = hostA.weight ?? 100; - const priorityA = hostA.priority ?? 2; - const weightB = hostB.weight ?? 100; - const priorityB = hostB.priority ?? 2; - - if (isRRWeightsEnabled) { - if (weightA === weightB) { - return priorityB - priorityA; - } else { - return weightB - weightA; - } - } else { - return priorityB - priorityA; - } -} - export type WeightDialogCustomClassNames = { container?: string; label?: string; diff --git a/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx b/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx index feb0323d31fb60..55a42cb2e75e9d 100644 --- a/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx +++ b/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx @@ -10,7 +10,7 @@ import { SelectedCalendarsSettingsWebWrapper, SelectedCalendarSettingsScope, SelectedCalendarsSettingsWebWrapperSkeleton, -} from "@calcom/atoms/selected-calendars/wrappers/SelectedCalendarsSettingsWebWrapper"; +} from "@calcom/web/modules/calendars/components/SelectedCalendarsSettingsWebWrapper"; import { Timezone as PlatformTimzoneSelect } from "@calcom/atoms/timezone"; import getLocationsOptionsForSelect from "@calcom/features/bookings/lib/getLocationOptionsForSelect"; import DestinationCalendarSelector from "@calcom/features/calendars/DestinationCalendarSelector"; diff --git a/packages/platform/atoms/event-types/wrappers/EventAdvancedWebWrapper.tsx b/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedWebWrapper.tsx similarity index 76% rename from packages/platform/atoms/event-types/wrappers/EventAdvancedWebWrapper.tsx rename to apps/web/modules/event-types/components/tabs/advanced/EventAdvancedWebWrapper.tsx index 99b51bfad3c582..ec711897c69e35 100644 --- a/packages/platform/atoms/event-types/wrappers/EventAdvancedWebWrapper.tsx +++ b/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedWebWrapper.tsx @@ -1,7 +1,8 @@ import { localeOptions } from "@calcom/lib/i18n"; import { trpc } from "@calcom/trpc/react"; -import type { EventAdvancedBaseProps } from "@calcom/web/modules/event-types/components/tabs/advanced/EventAdvancedTab"; -import { EventAdvancedTab } from "@calcom/web/modules/event-types/components/tabs/advanced/EventAdvancedTab"; + +import type { EventAdvancedBaseProps } from "./EventAdvancedTab"; +import { EventAdvancedTab } from "./EventAdvancedTab"; const EventAdvancedWebWrapper = ({ ...props }: EventAdvancedBaseProps) => { const connectedCalendarsQuery = trpc.viewer.calendars.connectedCalendars.useQuery(); diff --git a/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab.tsx b/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab.tsx index 561247ba962e6c..54818fbc9e981f 100644 --- a/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab.tsx +++ b/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab.tsx @@ -14,7 +14,7 @@ import AssignAllTeamMembers from "@calcom/web/modules/event-types/components/Ass import type { ChildrenEventTypeSelectCustomClassNames } from "@calcom/web/modules/event-types/components/ChildrenEventTypeSelect"; import ChildrenEventTypeSelect from "@calcom/web/modules/event-types/components/ChildrenEventTypeSelect"; import { EditWeightsForAllTeamMembers } from "@calcom/web/modules/event-types/components/EditWeightsForAllTeamMembers"; -import { sortHosts } from "@calcom/web/modules/event-types/components/HostEditDialogs"; +import { sortHosts } from "@calcom/lib/bookings/hostGroupUtils"; import { LearnMoreLink } from "@calcom/web/modules/event-types/components/LearnMoreLink"; import WeightDescription from "@calcom/web/modules/event-types/components/WeightDescription"; import type { diff --git a/packages/platform/atoms/event-types/wrappers/EventTeamAssignmentTabWebWrapper.tsx b/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTabWebWrapper.tsx similarity index 80% rename from packages/platform/atoms/event-types/wrappers/EventTeamAssignmentTabWebWrapper.tsx rename to apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTabWebWrapper.tsx index e28d863979cc53..4a3f10b2d71b22 100644 --- a/packages/platform/atoms/event-types/wrappers/EventTeamAssignmentTabWebWrapper.tsx +++ b/apps/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTabWebWrapper.tsx @@ -1,7 +1,7 @@ import { EventTeamAssignmentTab, type EventTeamAssignmentTabBaseProps, -} from "@calcom/web/modules/event-types/components/tabs/assignment/EventTeamAssignmentTab"; +} from "./EventTeamAssignmentTab"; const EventTeamAssignmentTabWebWrapper = ( props: Omit diff --git a/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTab.tsx b/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTab.tsx index cc09b4922bdce3..5da456431915ad 100644 --- a/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTab.tsx +++ b/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTab.tsx @@ -5,7 +5,7 @@ import { Controller, useFormContext } from "react-hook-form"; import type { OptionProps, SingleValueProps } from "react-select"; import { components } from "react-select"; -import type { GetAllSchedulesByUserIdQueryType } from "@calcom/atoms/event-types/wrappers/EventAvailabilityTabWebWrapper"; +import type { GetAllSchedulesByUserIdQueryType } from "./EventAvailabilityTabWebWrapper"; import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform"; import dayjs from "@calcom/dayjs"; import { SelectSkeletonLoader } from "@calcom/features/availability/components/SkeletonLoader"; diff --git a/packages/platform/atoms/event-types/wrappers/EventAvailabilityTabWebWrapper.tsx b/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTabWebWrapper.tsx similarity index 93% rename from packages/platform/atoms/event-types/wrappers/EventAvailabilityTabWebWrapper.tsx rename to apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTabWebWrapper.tsx index fbcbcd6362cba2..ccf3c6680e6246 100644 --- a/packages/platform/atoms/event-types/wrappers/EventAvailabilityTabWebWrapper.tsx +++ b/apps/web/modules/event-types/components/tabs/availability/EventAvailabilityTabWebWrapper.tsx @@ -1,12 +1,13 @@ import { useFormContext } from "react-hook-form"; import useLockedFieldsManager from "@calcom/features/ee/managed-event-types/hooks/useLockedFieldsManager"; -import type { TeamMembers } from "@calcom/web/modules/event-types/components/EventType"; import type { EventTypeSetup, FormValues } from "@calcom/features/eventtypes/lib/types"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { RouterOutputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; -import { EventAvailabilityTab } from "@calcom/web/modules/event-types/components/tabs/availability/EventAvailabilityTab"; + +import type { TeamMembers } from "../../EventType"; +import { EventAvailabilityTab } from "./EventAvailabilityTab"; export type EventAvailabilityTabWebWrapperProps = { eventType: EventTypeSetup; diff --git a/packages/platform/atoms/event-types/wrappers/EventLimitsTabWebWrapper.tsx b/apps/web/modules/event-types/components/tabs/limits/EventLimitsTabWebWrapper.tsx similarity index 88% rename from packages/platform/atoms/event-types/wrappers/EventLimitsTabWebWrapper.tsx rename to apps/web/modules/event-types/components/tabs/limits/EventLimitsTabWebWrapper.tsx index 91f9ee42716da2..a81548a860bb12 100644 --- a/packages/platform/atoms/event-types/wrappers/EventLimitsTabWebWrapper.tsx +++ b/apps/web/modules/event-types/components/tabs/limits/EventLimitsTabWebWrapper.tsx @@ -5,4 +5,4 @@ const EventLimitsTabWebWrapper = (props: EventLimitsTabProps) => { return ; }; -export default EventLimitsTabWebWrapper; +export default EventLimitsTabWebWrapper; \ No newline at end of file diff --git a/packages/platform/atoms/event-types/wrappers/EventRecurringWebWrapper.tsx b/apps/web/modules/event-types/components/tabs/recurring/EventRecurringWebWrapper.tsx similarity index 89% rename from packages/platform/atoms/event-types/wrappers/EventRecurringWebWrapper.tsx rename to apps/web/modules/event-types/components/tabs/recurring/EventRecurringWebWrapper.tsx index 37f3c286334b9b..a20f91fed16c77 100644 --- a/packages/platform/atoms/event-types/wrappers/EventRecurringWebWrapper.tsx +++ b/apps/web/modules/event-types/components/tabs/recurring/EventRecurringWebWrapper.tsx @@ -5,4 +5,4 @@ const EventRecurringWebWrapper = (props: EventRecurringTabProps) => { return ; }; -export default EventRecurringWebWrapper; +export default EventRecurringWebWrapper; \ No newline at end of file diff --git a/packages/platform/atoms/event-types/wrappers/EventSetupTabWebWrapper.tsx b/apps/web/modules/event-types/components/tabs/setup/EventSetupTabWebWrapper.tsx similarity index 78% rename from packages/platform/atoms/event-types/wrappers/EventSetupTabWebWrapper.tsx rename to apps/web/modules/event-types/components/tabs/setup/EventSetupTabWebWrapper.tsx index 26b507d333dc3d..b6f5f23e449ab9 100644 --- a/packages/platform/atoms/event-types/wrappers/EventSetupTabWebWrapper.tsx +++ b/apps/web/modules/event-types/components/tabs/setup/EventSetupTabWebWrapper.tsx @@ -3,8 +3,9 @@ import { useSession } from "next-auth/react"; import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider"; import { WEBSITE_URL } from "@calcom/lib/constants"; import { localeOptions } from "@calcom/lib/i18n"; -import type { EventSetupTabProps } from "@calcom/web/modules/event-types/components/tabs/setup/EventSetupTab"; -import { EventSetupTab } from "@calcom/web/modules/event-types/components/tabs/setup/EventSetupTab"; + +import type { EventSetupTabProps } from "./EventSetupTab"; +import { EventSetupTab } from "./EventSetupTab"; const EventSetupTabWebWrapper = (props: EventSetupTabProps) => { const orgBranding = useOrgBranding(); diff --git a/apps/web/modules/org/[orgSlug]/instant-meeting/team/[slug]/[type]/instant-meeting-view.tsx b/apps/web/modules/org/[orgSlug]/instant-meeting/team/[slug]/[type]/instant-meeting-view.tsx index f1184c3c6b886e..ede5ad6c4b50ee 100644 --- a/apps/web/modules/org/[orgSlug]/instant-meeting/team/[slug]/[type]/instant-meeting-view.tsx +++ b/apps/web/modules/org/[orgSlug]/instant-meeting/team/[slug]/[type]/instant-meeting-view.tsx @@ -2,7 +2,7 @@ import type { EmbedProps } from "app/WithEmbedSSR"; -import { BookerWebWrapper as Booker } from "@calcom/atoms/booker"; +import { BookerWebWrapper as Booker } from "@calcom/web/modules/bookings/components/BookerWebWrapper"; import { getBookerWrapperClasses } from "@calcom/features/bookings/Booker/utils/getBookerWrapperClasses"; import type { getServerSideProps } from "@lib/org/[orgSlug]/instant-meeting/team/[slug]/[type]/getServerSideProps"; diff --git a/apps/web/modules/team/type-view-cached.tsx b/apps/web/modules/team/type-view-cached.tsx index b679bd88ed3198..53428722870661 100644 --- a/apps/web/modules/team/type-view-cached.tsx +++ b/apps/web/modules/team/type-view-cached.tsx @@ -1,6 +1,6 @@ "use client"; -import { BookerWebWrapper, type BookerWebWrapperAtomProps } from "@calcom/atoms/booker"; +import { BookerWebWrapper, type BookerWebWrapperAtomProps } from "@calcom/web/modules/bookings/components/BookerWebWrapper"; import { getBookerWrapperClasses } from "@calcom/features/bookings/Booker/utils/getBookerWrapperClasses"; import BookingPageErrorBoundary from "@components/error/BookingPageErrorBoundary"; diff --git a/apps/web/modules/team/type-view.tsx b/apps/web/modules/team/type-view.tsx index 88e6e2598838b4..2e2c312086df6c 100644 --- a/apps/web/modules/team/type-view.tsx +++ b/apps/web/modules/team/type-view.tsx @@ -3,7 +3,7 @@ import type { EmbedProps } from "app/WithEmbedSSR"; import { useSearchParams } from "next/navigation"; -import { BookerWebWrapper as Booker } from "@calcom/atoms/booker"; +import { BookerWebWrapper as Booker } from "@calcom/web/modules/bookings/components/BookerWebWrapper"; import { getBookerWrapperClasses } from "@calcom/features/bookings/Booker/utils/getBookerWrapperClasses"; import type { getServerSideProps } from "@lib/team/[slug]/[type]/getServerSideProps"; diff --git a/apps/web/modules/users/views/users-type-public-view.tsx b/apps/web/modules/users/views/users-type-public-view.tsx index 197ae7be9e326d..ab9910bdbaaccb 100644 --- a/apps/web/modules/users/views/users-type-public-view.tsx +++ b/apps/web/modules/users/views/users-type-public-view.tsx @@ -3,7 +3,7 @@ import type { EmbedProps } from "app/WithEmbedSSR"; import { useSearchParams } from "next/navigation"; -import { BookerWebWrapper as Booker } from "@calcom/atoms/booker"; +import { BookerWebWrapper as Booker } from "@calcom/web/modules/bookings/components/BookerWebWrapper"; import { getBookerWrapperClasses } from "@calcom/features/bookings/Booker/utils/getBookerWrapperClasses"; import type { inferSSRProps } from "@lib/types/inferSSRProps"; diff --git a/packages/lib/bookings/hostGroupUtils.ts b/packages/lib/bookings/hostGroupUtils.ts index 71d75057aa544c..cdae6f0839a7e0 100644 --- a/packages/lib/bookings/hostGroupUtils.ts +++ b/packages/lib/bookings/hostGroupUtils.ts @@ -37,3 +37,24 @@ export function getHostsFromOtherGroups( (host) => (groupId && (!host.groupId || host.groupId !== groupId)) || (!groupId && host.groupId) ); } + +export function sortHosts( + hostA: { priority: number | null; weight: number | null }, + hostB: { priority: number | null; weight: number | null }, + isRRWeightsEnabled: boolean +) { + const weightA = hostA.weight ?? 100; + const priorityA = hostA.priority ?? 2; + const weightB = hostB.weight ?? 100; + const priorityB = hostB.priority ?? 2; + + if (isRRWeightsEnabled) { + if (weightA === weightB) { + return priorityB - priorityA; + } else { + return weightB - weightA; + } + } else { + return priorityB - priorityA; + } +} diff --git a/packages/platform/atoms/booker/index.ts b/packages/platform/atoms/booker/index.ts deleted file mode 100644 index 9fbfb6a67fd80b..00000000000000 --- a/packages/platform/atoms/booker/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { BookerWebWrapper } from "./BookerWebWrapper"; -export type { BookerWebWrapperAtomProps } from "./BookerWebWrapper"; diff --git a/packages/platform/atoms/event-types/hooks/useEventTypeForm.ts b/packages/platform/atoms/event-types/hooks/useEventTypeForm.ts index 698570b77299be..b7eebe89e59539 100644 --- a/packages/platform/atoms/event-types/hooks/useEventTypeForm.ts +++ b/packages/platform/atoms/event-types/hooks/useEventTypeForm.ts @@ -7,8 +7,8 @@ import checkForMultiplePaymentApps from "@calcom/app-store/_utils/payments/check import { locationsResolver } from "@calcom/app-store/locations"; import { DEFAULT_PROMPT_VALUE, DEFAULT_BEGIN_MESSAGE } from "@calcom/features/calAIPhone/promptTemplates"; import type { TemplateType } from "@calcom/features/calAIPhone/zod-utils"; -import { sortHosts } from "@calcom/web/modules/event-types/components/HostEditDialogs"; import { validateCustomEventName } from "@calcom/features/eventtypes/lib/eventNaming"; +import { sortHosts } from "@calcom/lib/bookings/hostGroupUtils"; import type { FormValues, EventTypeSetupProps, diff --git a/packages/platform/atoms/package.json b/packages/platform/atoms/package.json index ee7096ad495a11..30afb007a34acf 100644 --- a/packages/platform/atoms/package.json +++ b/packages/platform/atoms/package.json @@ -54,15 +54,12 @@ "require": "./dist/cal-atoms.umd.cjs" }, "./add-members-switch/AddMembersWithSwitchPlatformWrapper": "./add-members-switch/AddMembersWithSwitchPlatformWrapper.tsx", - "./add-members-switch/AddMembersWithSwitchWebWrapper": "./add-members-switch/AddMembersWithSwitchWebWrapper.tsx", "./availability/AvailabilitySettings": "./availability/AvailabilitySettings.tsx", "./booker": "./booker/index.ts", + "./selected-calendars/SelectedCalendarsSettings": "./selected-calendars/SelectedCalendarsSettings.tsx", "./components/ui/shell": "./src/components/ui/shell.tsx", - "./connect/conferencing-apps/ConferencingAppsViewWebWrapper": "./connect/conferencing-apps/ConferencingAppsViewWebWrapper.tsx", - "./destination-calendar/wrappers/DestinationCalendarSettingsWebWrapper": "./destination-calendar/wrappers/DestinationCalendarSettingsWebWrapper.tsx", "./dist/index.ts": "./index.ts", "./dist/index.d.ts": "./dist/index.d.ts", - "./event-types/wrappers/EventTypeWebWrapper": "./event-types/wrappers/EventTypeWebWrapper.tsx", "./globals.min.css": "./globals.min.css", "./hooks/bookings/useBookings": "./hooks/bookings/useBookings.ts", "./hooks/bookings/useHandleBookEvent": "./hooks/bookings/useHandleBookEvent.ts", @@ -72,7 +69,9 @@ "./hooks/useIsPlatform": "./hooks/useIsPlatform.ts", "./hooks/useIsPlatformBookerEmbed": "./hooks/useIsPlatformBookerEmbed.ts", "./hooks/event-types/private/useEventTypeById": "./hooks/event-types/private/useEventTypeById.ts", - "./selected-calendars/wrappers/SelectedCalendarsSettingsWebWrapper": "./selected-calendars/wrappers/SelectedCalendarsSettingsWebWrapper.tsx", + "./event-types/hooks/useEventTypeForm": "./event-types/hooks/useEventTypeForm.ts", + "./event-types/hooks/useHandleRouteChange": "./event-types/hooks/useHandleRouteChange.ts", + "./event-types/hooks/useTabsNavigations": "./event-types/hooks/useTabsNavigations.tsx", "./timezone": "./timezone/index.tsx" }, "types": "./dist/index.d.ts",