diff --git a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/flags/page.tsx b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/flags/page.tsx index 7317bec27c..667786ac02 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/flags/page.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(admin-layout)/admin/flags/page.tsx @@ -1,6 +1,6 @@ import { _generateMetadata, getTranslate } from "app/_utils"; -import { FlagListingView } from "@calcom/features/flags/pages/flag-listing-view"; +import { FlagListingView } from "@calcom/web/modules/feature-flags/views/flag-listing-view"; import SettingsHeader from "@calcom/features/settings/appDir/SettingsHeader"; export const generateMetadata = async () => diff --git a/apps/web/components/getting-started/components/CreateEventsOnCalendarSelect.tsx b/apps/web/components/getting-started/components/CreateEventsOnCalendarSelect.tsx index 6b0fb73697..2b551b2dc6 100644 --- a/apps/web/components/getting-started/components/CreateEventsOnCalendarSelect.tsx +++ b/apps/web/components/getting-started/components/CreateEventsOnCalendarSelect.tsx @@ -1,4 +1,4 @@ -import DestinationCalendarSelector from "@calcom/features/calendars/DestinationCalendarSelector"; +import DestinationCalendarSelector from "@calcom/features/calendars/components/DestinationCalendarSelector"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import type { RouterInputs } from "@calcom/trpc/react"; import { trpc } from "@calcom/trpc/react"; diff --git a/apps/web/components/getting-started/steps-views/SetupAvailability.tsx b/apps/web/components/getting-started/steps-views/SetupAvailability.tsx index 55e2bf14ac..413b69a7e4 100644 --- a/apps/web/components/getting-started/steps-views/SetupAvailability.tsx +++ b/apps/web/components/getting-started/steps-views/SetupAvailability.tsx @@ -1,6 +1,6 @@ import { useForm } from "react-hook-form"; -import Schedule from "@calcom/features/schedules/components/Schedule"; +import Schedule from "@calcom/web/modules/schedules/components/Schedule"; import { DEFAULT_SCHEDULE } from "@calcom/lib/availability"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { trpc } from "@calcom/trpc/react"; diff --git a/apps/web/lib/app-providers-app-dir.tsx b/apps/web/lib/app-providers-app-dir.tsx index 239fb54bca..7c116c492d 100644 --- a/apps/web/lib/app-providers-app-dir.tsx +++ b/apps/web/lib/app-providers-app-dir.tsx @@ -11,7 +11,7 @@ import DynamicPostHogProvider from "~/ee/posthog/providerDynamic"; import DynamicPostHogPageView from "~/ee/posthog/pageViewDynamic"; import { OrgBrandingProvider } from "@calcom/features/ee/organizations/context/provider"; import { FeatureProvider } from "@calcom/features/flags/context/provider"; -import { useFlags } from "@calcom/features/flags/hooks"; +import { useFlags } from "@calcom/web/modules/feature-flags/hooks/useFlags"; import DynamicHelpscoutProvider from "@calcom/web/modules/ee/support/lib/helpscout/providerDynamic"; import DynamicIntercomProvider from "@calcom/web/modules/ee/support/lib/intercom/providerDynamic"; diff --git a/apps/web/lib/app-providers.tsx b/apps/web/lib/app-providers.tsx index b80e249625..21d2bc1441 100644 --- a/apps/web/lib/app-providers.tsx +++ b/apps/web/lib/app-providers.tsx @@ -21,7 +21,7 @@ import { useEffect } from "react"; import { OrgBrandingProvider } from "@calcom/features/ee/organizations/context/provider"; import { FeatureProvider } from "@calcom/features/flags/context/provider"; -import { useFlags } from "@calcom/features/flags/hooks"; +import { useFlags } from "@calcom/web/modules/feature-flags/hooks/useFlags"; import DynamicHelpscoutProvider from "@calcom/web/modules/ee/support/lib/helpscout/providerDynamic"; import DynamicIntercomProvider from "@calcom/web/modules/ee/support/lib/intercom/providerDynamic"; diff --git a/apps/web/modules/availability/availability-view.tsx b/apps/web/modules/availability/availability-view.tsx index 5e4ae68742..ce529583ff 100644 --- a/apps/web/modules/availability/availability-view.tsx +++ b/apps/web/modules/availability/availability-view.tsx @@ -9,7 +9,7 @@ import posthog from "posthog-js"; import { BulkEditDefaultForEventsModal } from "@calcom/web/modules/event-types/components/BulkEditDefaultForEventsModal"; import type { BulkUpdatParams } from "@calcom/web/modules/event-types/components/BulkEditDefaultForEventsModal"; -import { NewScheduleButton } from "@calcom/features/schedules/components/NewScheduleButton"; +import { NewScheduleButton } from "@calcom/web/modules/schedules/components/NewScheduleButton"; import { ScheduleListItem } from "@calcom/features/schedules/components/ScheduleListItem"; import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/apps/web/modules/bookings/components/Booker.test.tsx b/apps/web/modules/bookings/components/Booker.test.tsx index 751b01b212..956944c31e 100644 --- a/apps/web/modules/bookings/components/Booker.test.tsx +++ b/apps/web/modules/bookings/components/Booker.test.tsx @@ -81,7 +81,7 @@ const mockEvent = { isPending: false, }; -vi.mock("@calcom/features/calendars/NoAvailabilityDialog", () => ({ +vi.mock("@calcom/features/calendars/components/NoAvailabilityDialog", () => ({ default: () => { return null; }, diff --git a/apps/web/modules/bookings/components/DatePicker.test.tsx b/apps/web/modules/bookings/components/DatePicker.test.tsx index 43c81dfc48..fca02d08e6 100644 --- a/apps/web/modules/bookings/components/DatePicker.test.tsx +++ b/apps/web/modules/bookings/components/DatePicker.test.tsx @@ -2,12 +2,12 @@ import React from "react"; import { vi, afterEach } from "vitest"; import dayjs from "@calcom/dayjs"; -import { DatePicker as DatePickerComponent } from "@calcom/features/calendars/DatePicker"; +import { DatePicker as DatePickerComponent } from "@calcom/features/calendars/components/DatePicker"; import { render } from "@calcom/features/bookings/Booker/__tests__/test-utils"; import { DatePicker } from "./DatePicker"; -vi.mock("@calcom/features/calendars/DatePicker", () => { +vi.mock("@calcom/features/calendars/components/DatePicker", () => { return { DatePicker: vi.fn(() =>
), }; diff --git a/apps/web/modules/bookings/components/DatePicker.tsx b/apps/web/modules/bookings/components/DatePicker.tsx index d2d4193a93..3b67e75348 100644 --- a/apps/web/modules/bookings/components/DatePicker.tsx +++ b/apps/web/modules/bookings/components/DatePicker.tsx @@ -4,7 +4,7 @@ import type { Dayjs } from "@calcom/dayjs"; import dayjs from "@calcom/dayjs"; import { useBookerStoreContext } from "@calcom/features/bookings/Booker/BookerStoreProvider"; import type { DatePickerClassNames } from "@calcom/features/bookings/Booker/types"; -import { DatePicker as DatePickerComponent } from "@calcom/features/calendars/DatePicker"; +import { DatePicker as DatePickerComponent } from "@calcom/features/calendars/components/DatePicker"; import { useNonEmptyScheduleDays } from "@calcom/features/schedules/lib/use-schedule/useNonEmptyScheduleDays"; import { weekdayToWeekIndex } from "@calcom/lib/dayjs"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/apps/web/modules/embed/components/Embed.tsx b/apps/web/modules/embed/components/Embed.tsx index 2dc768cff4..14384e06ae 100644 --- a/apps/web/modules/embed/components/Embed.tsx +++ b/apps/web/modules/embed/components/Embed.tsx @@ -22,7 +22,7 @@ import { useEvent, useScheduleForEvent, } from "@calcom/features/bookings/Booker/utils/event"; -import DatePicker from "@calcom/features/calendars/DatePicker"; +import DatePicker from "@calcom/features/calendars/components/DatePicker"; import { Dialog } from "@calcom/features/components/controlled-dialog"; import { TimezoneSelect } from "@calcom/web/modules/timezone/components/TimezoneSelect"; import type { Slot } from "@calcom/features/schedules/lib/use-schedule/types"; 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 d8b123412a..4b9f222f20 100644 --- a/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx +++ b/apps/web/modules/event-types/components/tabs/advanced/EventAdvancedTab.tsx @@ -13,7 +13,7 @@ import { } 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"; +import DestinationCalendarSelector from "@calcom/features/calendars/components/DestinationCalendarSelector"; import { TimezoneSelect as WebTimezoneSelect } from "@calcom/web/modules/timezone/components/TimezoneSelect"; import useLockedFieldsManager from "@calcom/features/ee/managed-event-types/hooks/useLockedFieldsManager"; import { diff --git a/packages/features/flags/components/AssignFeatureSheet.tsx b/apps/web/modules/feature-flags/components/AssignFeatureSheet.tsx similarity index 100% rename from packages/features/flags/components/AssignFeatureSheet.tsx rename to apps/web/modules/feature-flags/components/AssignFeatureSheet.tsx diff --git a/packages/features/flags/components/FlagAdminList.tsx b/apps/web/modules/feature-flags/components/FlagAdminList.tsx similarity index 100% rename from packages/features/flags/components/FlagAdminList.tsx rename to apps/web/modules/feature-flags/components/FlagAdminList.tsx diff --git a/packages/features/flags/hooks/index.ts b/apps/web/modules/feature-flags/hooks/useFlags.ts similarity index 100% rename from packages/features/flags/hooks/index.ts rename to apps/web/modules/feature-flags/hooks/useFlags.ts diff --git a/packages/features/flags/pages/flag-listing-view.tsx b/apps/web/modules/feature-flags/views/flag-listing-view.tsx similarity index 100% rename from packages/features/flags/pages/flag-listing-view.tsx rename to apps/web/modules/feature-flags/views/flag-listing-view.tsx diff --git a/apps/web/modules/onboarding/components/InviteOptions.tsx b/apps/web/modules/onboarding/components/InviteOptions.tsx index 5cbda5b731..3ef587a9af 100644 --- a/apps/web/modules/onboarding/components/InviteOptions.tsx +++ b/apps/web/modules/onboarding/components/InviteOptions.tsx @@ -1,6 +1,6 @@ "use client"; -import { useFlags } from "@calcom/features/flags/hooks"; +import { useFlags } from "@calcom/web/modules/feature-flags/hooks/useFlags"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; import { Icon } from "@calcom/ui/components/icon"; diff --git a/apps/web/modules/onboarding/organization/invite/email/organization-invite-email-view.tsx b/apps/web/modules/onboarding/organization/invite/email/organization-invite-email-view.tsx index 2749d1d4b3..3de06b7f23 100644 --- a/apps/web/modules/onboarding/organization/invite/email/organization-invite-email-view.tsx +++ b/apps/web/modules/onboarding/organization/invite/email/organization-invite-email-view.tsx @@ -6,7 +6,7 @@ import React from "react"; import { useForm, useFieldArray } from "react-hook-form"; import { z } from "zod"; -import { useFlags } from "@calcom/features/flags/hooks"; +import { useFlags } from "@calcom/web/modules/feature-flags/hooks/useFlags"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; import { Form } from "@calcom/ui/components/form"; diff --git a/apps/web/modules/onboarding/organization/invite/organization-invite-view.tsx b/apps/web/modules/onboarding/organization/invite/organization-invite-view.tsx index 55030ec1e8..61203d157e 100644 --- a/apps/web/modules/onboarding/organization/invite/organization-invite-view.tsx +++ b/apps/web/modules/onboarding/organization/invite/organization-invite-view.tsx @@ -4,7 +4,7 @@ import { useRouter } from "next/navigation"; import posthog from "posthog-js"; import React from "react"; -import { useFlags } from "@calcom/features/flags/hooks"; +import { useFlags } from "@calcom/web/modules/feature-flags/hooks/useFlags"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; diff --git a/apps/web/modules/onboarding/teams/invite/team-invite-view.tsx b/apps/web/modules/onboarding/teams/invite/team-invite-view.tsx index 10f3b3e2e7..43200764f8 100644 --- a/apps/web/modules/onboarding/teams/invite/team-invite-view.tsx +++ b/apps/web/modules/onboarding/teams/invite/team-invite-view.tsx @@ -4,7 +4,7 @@ import { useRouter, useSearchParams } from "next/navigation"; import posthog from "posthog-js"; import React, { useEffect } from "react"; -import { useFlags } from "@calcom/features/flags/hooks"; +import { useFlags } from "@calcom/web/modules/feature-flags/hooks/useFlags"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; diff --git a/packages/features/schedules/components/NewScheduleButton.tsx b/apps/web/modules/schedules/components/NewScheduleButton.tsx similarity index 100% rename from packages/features/schedules/components/NewScheduleButton.tsx rename to apps/web/modules/schedules/components/NewScheduleButton.tsx diff --git a/apps/web/modules/schedules/components/Schedule.tsx b/apps/web/modules/schedules/components/Schedule.tsx new file mode 100644 index 0000000000..e8cae81dfd --- /dev/null +++ b/apps/web/modules/schedules/components/Schedule.tsx @@ -0,0 +1,29 @@ +import React from "react"; +import type { Control, FieldValues } from "react-hook-form"; + +import { + ScheduleComponent, + type FieldPathByValue, + type ScheduleLabelsType, +} from "@calcom/features/schedules/components/ScheduleComponent"; +import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery"; +import type { TimeRange } from "@calcom/types/schedule"; + +const Schedule = < + TFieldValues extends FieldValues, + TPath extends FieldPathByValue +>(props: { + name: TPath; + control: Control; + weekStart?: number; + disabled?: boolean; + labels?: ScheduleLabelsType; + userTimeFormat?: number | null; +}) => { + const query = useMeQuery(); + const { timeFormat } = query.data || { timeFormat: null }; + + return ; +}; + +export default Schedule; diff --git a/packages/features/schedules/components/date-override-list.test.tsx b/apps/web/modules/schedules/components/date-override-list.test.tsx similarity index 100% rename from packages/features/schedules/components/date-override-list.test.tsx rename to apps/web/modules/schedules/components/date-override-list.test.tsx diff --git a/apps/web/modules/timezone-buddy/components/AvailabilityEditSheet.tsx b/apps/web/modules/timezone-buddy/components/AvailabilityEditSheet.tsx index 1fb4d4ecc9..1abe8144cc 100644 --- a/apps/web/modules/timezone-buddy/components/AvailabilityEditSheet.tsx +++ b/apps/web/modules/timezone-buddy/components/AvailabilityEditSheet.tsx @@ -4,7 +4,7 @@ import dayjs from "@calcom/dayjs"; import { TimezoneSelect } from "@calcom/web/modules/timezone/components/TimezoneSelect"; import DateOverrideInputDialog from "@calcom/features/schedules/components/DateOverrideInputDialog"; import DateOverrideList from "@calcom/features/schedules/components/DateOverrideList"; -import Schedule from "@calcom/features/schedules/components/Schedule"; +import Schedule from "@calcom/web/modules/schedules/components/Schedule"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { HttpError } from "@calcom/lib/http-error"; import type { RouterOutputs } from "@calcom/trpc/react"; diff --git a/packages/features/calendars/__tests__/DatePicker.test.tsx b/packages/features/calendars/__tests__/DatePicker.test.tsx index 0f2f938fa0..aab9d0315b 100644 --- a/packages/features/calendars/__tests__/DatePicker.test.tsx +++ b/packages/features/calendars/__tests__/DatePicker.test.tsx @@ -7,7 +7,7 @@ import dayjs from "@calcom/dayjs"; import { BookerStoreProvider } from "@calcom/features/bookings/Booker/BookerStoreProvider"; import { PeriodType } from "@calcom/prisma/enums"; -import { DatePicker } from "../DatePicker"; +import { DatePicker } from "../components/DatePicker"; const noop = () => { /* noop */ diff --git a/packages/features/calendars/__tests__/NoAvailabilityDialog.test.tsx b/packages/features/calendars/__tests__/NoAvailabilityDialog.test.tsx index c1f80923f2..6f72099c23 100644 --- a/packages/features/calendars/__tests__/NoAvailabilityDialog.test.tsx +++ b/packages/features/calendars/__tests__/NoAvailabilityDialog.test.tsx @@ -4,7 +4,7 @@ import { vi } from "vitest"; import dayjs from "@calcom/dayjs"; import { PeriodType } from "@calcom/prisma/enums"; -import NoAvailabilityDialog from "../NoAvailabilityDialog"; +import NoAvailabilityDialog from "../components/NoAvailabilityDialog"; vi.mock("@calcom/lib/hooks/useLocale", () => ({ useLocale: () => ({ diff --git a/packages/features/calendars/DatePicker.tsx b/packages/features/calendars/components/DatePicker.tsx similarity index 100% rename from packages/features/calendars/DatePicker.tsx rename to packages/features/calendars/components/DatePicker.tsx diff --git a/packages/features/calendars/DestinationCalendarSelector.tsx b/packages/features/calendars/components/DestinationCalendarSelector.tsx similarity index 82% rename from packages/features/calendars/DestinationCalendarSelector.tsx rename to packages/features/calendars/components/DestinationCalendarSelector.tsx index c093f81669..59da48591c 100644 --- a/packages/features/calendars/DestinationCalendarSelector.tsx +++ b/packages/features/calendars/components/DestinationCalendarSelector.tsx @@ -1,6 +1,7 @@ import type { SelectClassNames } from "@calcom/features/eventtypes/lib/types"; import { useLocale } from "@calcom/lib/hooks/useLocale"; -import type { RouterOutputs } from "@calcom/trpc/react"; +import type { App } from "@calcom/types/App"; +import type { IntegrationCalendar } from "@calcom/types/Calendar"; import { Badge } from "@calcom/ui/components/badge"; import { Select } from "@calcom/ui/components/form"; import { Icon } from "@calcom/ui/components/icon"; @@ -9,6 +10,51 @@ import { useEffect, useState } from "react"; import type { OptionProps, SingleValueProps } from "react-select"; import { components } from "react-select"; + +type CalendarWithPrimary = Omit & { + primary?: boolean | null; + isSelected?: boolean; + credentialId?: number | null; + delegationCredentialId?: string | null; +}; + +interface ConnectedCalendar { + credentialId: number; + integration: App & { title?: string; slug?: string }; + primary?: CalendarWithPrimary | null; + calendars?: CalendarWithPrimary[] | null; + cacheUpdatedAt?: Date | string | null; + delegationCredentialId?: string | null; + error?: { + message: string; + }; +} + +interface DestinationCalendar { + integration: string; + externalId: string; + primaryEmail?: string | null; + name?: string | null; + integrationTitle?: string | null; + credentialId?: number | null; + email?: string | null; + readOnly?: boolean | null; + primary?: boolean | null; + id?: string | number | null; + userId?: number | null; + eventTypeId?: number | null; + customCalendarReminder?: number | null; + delegationCredentialId?: string | null; + domainWideDelegationCredentialId?: string | null; + createdAt?: Date | string | null; + updatedAt?: Date | string | null; +} + +interface CalendarsQueryData { + connectedCalendars: ConnectedCalendar[]; + destinationCalendar: DestinationCalendar | null; +} + interface Props { onChange: (value: { externalId: string; integration: string }) => void; isPending?: boolean; @@ -17,7 +63,7 @@ interface Props { value: string | undefined; maxWidth?: number; hideAdvancedText?: boolean; - calendarsQueryData?: RouterOutputs["viewer"]["calendars"]["connectedCalendars"]; + calendarsQueryData?: CalendarsQueryData; customClassNames?: SelectClassNames; } diff --git a/packages/features/calendars/NoAvailabilityDialog.tsx b/packages/features/calendars/components/NoAvailabilityDialog.tsx similarity index 100% rename from packages/features/calendars/NoAvailabilityDialog.tsx rename to packages/features/calendars/components/NoAvailabilityDialog.tsx diff --git a/packages/features/schedules/components/DateOverrideInputDialog.tsx b/packages/features/schedules/components/DateOverrideInputDialog.tsx index 493a8fd0e5..3ae7fb4246 100644 --- a/packages/features/schedules/components/DateOverrideInputDialog.tsx +++ b/packages/features/schedules/components/DateOverrideInputDialog.tsx @@ -15,9 +15,9 @@ import { Switch } from "@calcom/ui/components/form"; import { Form } from "@calcom/ui/components/form"; import { showToast } from "@calcom/ui/components/toast"; -import DatePicker from "../../calendars/DatePicker"; -import type { TimeRange } from "./Schedule"; -import { DayRanges } from "./Schedule"; +import DatePicker from "@calcom/features/calendars/components/DatePicker"; +import type { TimeRange } from "./ScheduleComponent"; +import { DayRanges } from "./ScheduleComponent"; const DateOverrideForm = ({ value, diff --git a/packages/features/schedules/components/DateOverrideList.tsx b/packages/features/schedules/components/DateOverrideList.tsx index f1c8906500..a212f6157b 100644 --- a/packages/features/schedules/components/DateOverrideList.tsx +++ b/packages/features/schedules/components/DateOverrideList.tsx @@ -4,7 +4,6 @@ import { formatInTimeZone } from "date-fns-tz"; import { useIsPlatform } from "@calcom/atoms/hooks/useIsPlatform"; import dayjs from "@calcom/dayjs"; import { useLocale } from "@calcom/lib/hooks/useLocale"; -import type { RouterOutputs } from "@calcom/trpc/react"; import type { TimeRange, WorkingHours } from "@calcom/types/schedule"; import { Button } from "@calcom/ui/components/button"; import { DialogTrigger } from "@calcom/ui/components/dialog"; @@ -16,6 +15,13 @@ const sortByDate = (a: { ranges: TimeRange[]; id: string }, b: { ranges: TimeRan return a.ranges[0].start > b.ranges[0].start ? 1 : -1; }; +interface TravelSchedule { + id: number; + startDate: Date; + endDate: Date | null; + timeZone: string; +} + // I would like this to be decoupled, but RHF really doesn't support this. const DateOverrideList = ({ workingHours, @@ -36,7 +42,7 @@ const DateOverrideList = ({ excludedDates?: string[]; userTimeFormat: number | null; hour12: boolean; - travelSchedules?: RouterOutputs["viewer"]["travelSchedules"]["get"]; + travelSchedules?: TravelSchedule[]; weekStart?: 0 | 1 | 2 | 3 | 4 | 5 | 6; handleAvailabilityUpdate?: VoidFunction; isDryRun?: boolean; diff --git a/packages/features/schedules/components/Schedule.tsx b/packages/features/schedules/components/ScheduleComponent.tsx similarity index 98% rename from packages/features/schedules/components/Schedule.tsx rename to packages/features/schedules/components/ScheduleComponent.tsx index edef612862..d9e3fbf8f5 100644 --- a/packages/features/schedules/components/Schedule.tsx +++ b/packages/features/schedules/components/ScheduleComponent.tsx @@ -187,23 +187,6 @@ const CopyButton = ({ ); }; -const Schedule = < - TFieldValues extends FieldValues, - TPath extends FieldPathByValue ->(props: { - name: TPath; - control: Control; - weekStart?: number; - disabled?: boolean; - labels?: ScheduleLabelsType; - userTimeFormat?: number | null; -}) => { - const query = useMeQuery(); - const { timeFormat } = query.data || { timeFormat: null }; - - return ; -}; - export const ScheduleComponent = < TFieldValues extends FieldValues, TPath extends FieldPathByValue @@ -820,5 +803,3 @@ const CopyTimes = ({
); }; - -export default Schedule; diff --git a/packages/features/schedules/components/ScheduleListItem.tsx b/packages/features/schedules/components/ScheduleListItem.tsx index e194260f78..12c73f9eab 100644 --- a/packages/features/schedules/components/ScheduleListItem.tsx +++ b/packages/features/schedules/components/ScheduleListItem.tsx @@ -6,7 +6,6 @@ import { Fragment, useState } from "react"; import { availabilityAsString } from "@calcom/lib/availability"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { sortAvailabilityStrings } from "@calcom/lib/weekstart"; -import type { RouterOutputs } from "@calcom/trpc/react"; import { Dialog } from "@calcom/features/components/controlled-dialog"; import { Badge } from "@calcom/ui/components/badge"; import { Button } from "@calcom/ui/components/button"; @@ -21,6 +20,23 @@ import { ConfirmationDialogContent } from "@calcom/ui/components/dialog"; import { Icon } from "@calcom/ui/components/icon"; import { showToast } from "@calcom/ui/components/toast"; +interface Schedule { + id: number; + name: string; + isDefault: boolean; + timeZone?: string | null; + availability: { + id: number; + userId: number | null; + eventTypeId: number | null; + days: number[]; + startTime: Date; + endTime: Date; + date: Date | null; + scheduleId: number | null; + }[]; +} + export function ScheduleListItem({ schedule, deleteFunction, @@ -30,7 +46,7 @@ export function ScheduleListItem({ duplicateFunction, redirectUrl, }: { - schedule: RouterOutputs["viewer"]["availability"]["list"]["schedules"][number]; + schedule: Schedule; deleteFunction: ({ scheduleId }: { scheduleId: number }) => void; displayOptions?: { timeZone?: string; diff --git a/packages/features/schedules/components/parse-time-string.test.ts b/packages/features/schedules/components/parse-time-string.test.ts index 9b9c86aa4f..61bf1fe9f7 100644 --- a/packages/features/schedules/components/parse-time-string.test.ts +++ b/packages/features/schedules/components/parse-time-string.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest"; -import { parseTimeString } from "./Schedule"; +import { parseTimeString } from "./ScheduleComponent"; describe("parseTimeString", () => { beforeEach(() => { diff --git a/packages/platform/atoms/availability/AvailabilitySettings.tsx b/packages/platform/atoms/availability/AvailabilitySettings.tsx index a740fa6a20..7e2ff2c9e0 100644 --- a/packages/platform/atoms/availability/AvailabilitySettings.tsx +++ b/packages/platform/atoms/availability/AvailabilitySettings.tsx @@ -24,9 +24,10 @@ import type { import { BulkEditDefaultForEventsModal } from "@calcom/web/modules/event-types/components/BulkEditDefaultForEventsModal"; import DateOverrideInputDialog from "@calcom/features/schedules/components/DateOverrideInputDialog"; import DateOverrideList from "@calcom/features/schedules/components/DateOverrideList"; -import WebSchedule, { +import { ScheduleComponent as PlatformSchedule, -} from "@calcom/features/schedules/components/Schedule"; +} from "@calcom/features/schedules/components/ScheduleComponent"; +import WebSchedule from "@calcom/web/modules/schedules/components/Schedule"; import { availabilityAsString } from "@calcom/lib/availability"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { sortAvailabilityStrings } from "@calcom/lib/weekstart"; diff --git a/packages/platform/atoms/availability/wrappers/AvailabilitySettingsPlatformWrapper.tsx b/packages/platform/atoms/availability/wrappers/AvailabilitySettingsPlatformWrapper.tsx index d25928caf5..402f6d9f20 100644 --- a/packages/platform/atoms/availability/wrappers/AvailabilitySettingsPlatformWrapper.tsx +++ b/packages/platform/atoms/availability/wrappers/AvailabilitySettingsPlatformWrapper.tsx @@ -1,7 +1,7 @@ import type { ReactNode } from "react"; import { forwardRef, useRef } from "react"; -import type { ScheduleLabelsType } from "@calcom/features/schedules/components/Schedule"; +import type { ScheduleLabelsType } from "@calcom/features/schedules/components/ScheduleComponent"; import type { UpdateScheduleResponse } from "@calcom/features/schedules/services/ScheduleService"; import type { ApiErrorResponse, ApiResponse, UpdateScheduleInput_2024_06_11 } from "@calcom/platform-types"; diff --git a/packages/platform/atoms/destination-calendar/DestinationCalendarSelector.tsx b/packages/platform/atoms/destination-calendar/DestinationCalendarSelector.tsx index 9f7a17c35d..98a8c37714 100644 --- a/packages/platform/atoms/destination-calendar/DestinationCalendarSelector.tsx +++ b/packages/platform/atoms/destination-calendar/DestinationCalendarSelector.tsx @@ -1,15 +1,17 @@ "use client"; +import { useState, useEffect, useMemo } from "react"; + import { OptionComponent, SingleValueComponent, -} from "@calcom/features/calendars/DestinationCalendarSelector"; +} from "@calcom/features/calendars/components/DestinationCalendarSelector"; import type { ConnectedDestinationCalendars } from "@calcom/features/calendars/lib/getConnectedDestinationCalendars"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import classNames from "@calcom/ui/classNames"; import { Badge } from "@calcom/ui/components/badge"; import { Select } from "@calcom/ui/components/form"; -import { useEffect, useMemo, useState } from "react"; + import { getPlaceholderContent } from "../lib/getPlaceholderContent"; export type DestinationCalendarProps = {