Conversation
|
Paragon Review Unavailable Hi @hbjORbj! You are not toggled active by your team. Reach out to your admin. |
Contributor
|
Hey there and thank you for opening this pull request! 👋🏼 We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted. Details: |
Contributor
E2E results are ready! |
hbjORbj
commented
Feb 7, 2026
Comment on lines
-24
to
-52
| // ============================================================================ | ||
| // EXPLICIT TYPE DEFINITIONS | ||
| // ============================================================================ | ||
| // These explicit types prevent TypeScript from having to infer complex types | ||
| // through chains of .extend(), .partial(), .merge() etc. This significantly | ||
| // reduces type-checking time by giving TypeScript the answer directly. | ||
| // ============================================================================ | ||
|
|
||
| type HashedLinkInput = { | ||
| link: string; | ||
| expiresAt?: Date | null; | ||
| maxUsageCount?: number | null; | ||
| usageCount?: number | null; | ||
| }; | ||
|
|
||
| type AiPhoneCallConfig = { | ||
| generalPrompt: string; | ||
| enabled: boolean; | ||
| beginMessage: string | null; | ||
| yourPhoneNumber: string; | ||
| numberToCall: string; | ||
| guestName?: string | null; | ||
| guestEmail?: string | null; | ||
| guestCompany?: string | null; | ||
| templateType: TemplateType; | ||
| }; | ||
|
|
||
| type CalVideoSettings = { | ||
| disableRecordingForGuests?: boolean | null; |
Contributor
Author
There was a problem hiding this comment.
all these types are moved to packages/features/eventtypes/lib/types.ts
hbjORbj
commented
Feb 7, 2026
| ) : ( | ||
| <OmniInstallAppButton | ||
| className="ml-auto flex items-center" | ||
| appId={app.slug} |
Contributor
Author
There was a problem hiding this comment.
no longer needed as we are using app prop as it is
hbjORbj
commented
Feb 7, 2026
| * This avoids redundant API calls and prevents the app-store package from depending on the features package. | ||
| */ | ||
| export default function OmniInstallAppButton({ | ||
| appId, |
Contributor
Author
There was a problem hiding this comment.
no longer needed as we are using app prop as it is
hbjORbj
commented
Feb 7, 2026
Comment on lines
-1
to
-5
| import type { useScheduleForEventReturnType } from "@calcom/features/bookings/Booker/utils/event"; | ||
| import type { BookerEventQuery } from "@calcom/features/bookings/types"; | ||
| import type { IntlSupportedTimeZones } from "@calcom/lib/timeZones"; | ||
| import type { EventBusyDate } from "@calcom/types/Calendar"; | ||
| import type { TIsAvailableOutputSchema } from "@calcom/trpc/server/routers/viewer/slots/isAvailable.schema"; |
hbjORbj
commented
Feb 7, 2026
| @@ -1,20 +0,0 @@ | |||
| export function PermissionProvider({ children }: { children: React.ReactNode }) { | |||
hbjORbj
commented
Feb 7, 2026
Comment on lines
-1
to
-4
| // TODO: FormBuilder makes more sense in @calcom/ui but it has an additional thing that other components don't have | ||
| // It has zod schema associated with it and I currently can't import zod in there. | ||
| // Move it later there maybe? @sean | ||
| export { FormBuilderField } from "./FormBuilderField"; |
Contributor
Author
There was a problem hiding this comment.
Removing barrel file. FormBuilderField is moved to /apps/web
hbjORbj
commented
Feb 7, 2026
| import { defaultDayRange as DEFAULT_DAY_RANGE } from "@calcom/lib/availability"; | ||
| import { useLocale } from "@calcom/lib/hooks/useLocale"; | ||
| import { weekdayNames } from "@calcom/lib/weekday"; | ||
| import useMeQuery from "@calcom/trpc/react/hooks/useMeQuery"; |
…-stuff-from-features-to-web-2
keithwillcode
approved these changes
Feb 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Removes every
@calcom/trpc/reactimport and every tRPC hook call frompackages/features/, fully decoupling the shared features package from tRPC client-side code.@calcom/trpc/serverimports are the only remaining trpc imports in /features package now.Impact
@calcom/trpcimports removed frompackages/features/— 7 total, 0 remainingimport { trpc } from "@calcom/trpc/react"apps/hooks/useApp.tsimport { trpc } from "@calcom/trpc/react"bookings/Booker/utils/event.tsapps/web/import { trpc } from "@calcom/trpc/react"components/phone-input/PhoneInput.tsxapps/web/import type { RouterOutputs } from "@calcom/trpc/react"bookings/types.tsimport type { RouterOutputs, RouterInputs } from "@calcom/trpc/react"eventtypes/lib/types.tsimport useMeQuery from "@calcom/trpc/react/hooks/useMeQuery"pbac/client/context/PermissionProvider.tsximport type { TIsAvailableOutputSchema } from "@calcom/trpc/server/..."bookings/Booker/types.tstRPC hook calls eliminated from
@calcom/features— 4 removed, 0 remainingtrpc.viewer.apps.appById.useQueryuseApphook deleted;OmniInstallAppButtonrefactored to accept app data as proptrpc.viewer.public.event.useQueryuseEventhook moved toapps/web/modules/bookings/hooks/trpc.viewer.public.countryCode.useQueryPhoneInputmoved toapps/web/components/phone-input/useMeQueryPermissionProviderdeletedFiles moved from
packages/features/→apps/web/features/bookings/Booker/utils/event.tsapps/web/modules/bookings/hooks/useEvent.tsfeatures/components/phone-input/PhoneInput.tsxapps/web/components/phone-input/PhoneInput.tsxfeatures/components/phone-input/index.tsapps/web/components/phone-input/index.tsfeatures/eventtypes/components/locations/LocationInput.tsxapps/web/modules/event-types/components/LocationInput.tsxDead code removed
packages/features/apps/hooks/useApp.ts— deleted; consumers refactored to pass app data as propspackages/features/pbac/client/context/PermissionProvider.tsx— deleted (unused)bookings/Booker/types.tsTypes relocated (~242 lines)
packages/trpc/server/routers/viewer/eventTypes/types.ts→packages/features/eventtypes/lib/types.tsEvent-type form types now live next to the feature they belong to, not inside the tRPC router.
Result
packages/features/has zero@calcom/trpc/reactimports — no tRPC client or hook usage remains in the shared features package.Mandatory Tasks (DO NOT REMOVE)
How should this be tested?
Build verification only — no functional changes. Confirm the booker, embed, and booking form views render correctly.
Link to Devin run: https://app.devin.ai/sessions/d2e8db2ab39840bfadb633ed8be49800
Requested by: @hbjORbj