From 20d6eb52007e0f2594f9cb158cd243bd8a55c103 Mon Sep 17 00:00:00 2001 From: Keith Williams Date: Sun, 16 Mar 2025 22:22:48 -0300 Subject: [PATCH] perf: Slim down loggedInViewer tRPC router (#20111) * perf: Slim down loggedInViewer tRPC router * Fixed trpc client calls for new routes * Moved bookingUnconfirmedCount * Moved getUserTopBanners to me router * Moved shouldVerifyEmail to me router * Moved i18n from public to its own router * fix ssrInit * fix ssrInit usage * fix type check * better naming * fix * fix * Fix types * Removed used of importHandler --------- Co-authored-by: hbjORbj --- .../SettingsLayoutAppDirClient.tsx | 2 +- apps/web/components/I18nLanguageHandler.tsx | 2 +- .../steps-views/UserProfile.tsx | 4 +- .../steps-views/UserSettings.tsx | 2 +- .../settings/platform/hooks/usePlatformMe.ts | 2 +- .../UsernameAvailability/PremiumTextfield.tsx | 2 +- .../ui/UsernameAvailability/index.tsx | 2 +- .../[[...step]]/getServerSideProps.tsx | 2 +- apps/web/lib/hooks/useMeQuery.ts | 2 +- .../availability/availability-view.tsx | 2 +- ...ookings-single-view.getServerSideProps.tsx | 2 +- .../[[...step]]/onboarding-view.tsx | 2 +- .../settings/my-account/appearance-view.tsx | 4 +- .../settings/my-account/general-view.tsx | 4 +- .../settings/my-account/profile-view.tsx | 12 +-- .../settings/security/impersonation-view.tsx | 10 +-- .../settings/security/password-view.tsx | 12 +-- .../security/two-factor-auth-view.tsx | 2 +- apps/web/modules/teams/teams-view.tsx | 2 +- apps/web/modules/upgrade/upgrade-view.tsx | 2 +- apps/web/pages/api/trpc/i18n/[trpc].ts | 4 + apps/web/pages/api/trpc/me/[trpc].ts | 4 + .../playwright/auth/forgot-password.e2e.ts | 2 + apps/web/playwright/fixtures/users.ts | 2 + apps/web/playwright/locale.e2e.ts | 8 ++ apps/web/server/lib/ssr.ts | 12 +-- packages/app-store/components.tsx | 2 +- .../bookings/UnconfirmedBookingBadge.tsx | 2 +- .../components/OrgUpgradeBanner.tsx | 2 +- .../organizations/pages/settings/general.tsx | 2 +- .../support/lib/freshchat/FreshChatScript.tsx | 2 +- .../ee/support/lib/intercom/useIntercom.ts | 8 +- .../features/ee/teams/components/TeamList.tsx | 2 +- .../ee/teams/components/TeamListItem.tsx | 2 +- .../ee/teams/components/TeamsListing.tsx | 2 +- .../teams/components/TeamsUpgradeBanner.tsx | 2 +- .../components/WorkflowDetailsPage.tsx | 2 +- .../components/WorkflowStepContainer.tsx | 2 +- packages/features/embed/Embed.tsx | 2 +- packages/features/embed/EventTypeEmbed.tsx | 2 +- packages/features/embed/RoutingFormEmbed.tsx | 2 +- .../tabs/advanced/EventAdvancedTab.tsx | 2 +- .../availability/EventAvailabilityTab.tsx | 2 +- .../settings/BookerLayoutSelector.tsx | 4 +- .../settings/TimezoneChangeDialog.tsx | 2 +- packages/features/shell/banners/useBanners.ts | 2 +- .../shell/user-dropdown/ProfileDropdown.tsx | 2 +- .../components/CalendarCredentialBanner.tsx | 2 +- .../InvalidAppCredentialsBanner.tsx | 2 +- packages/lib/hooks/useHasPaidPlan.ts | 2 +- .../EventAvailabilityTabWebWrapper.tsx | 2 +- .../trpc/react/hooks/useEmailVerifyCheck.ts | 2 +- packages/trpc/react/hooks/useMeQuery.ts | 2 +- packages/trpc/react/shared.ts | 2 + packages/trpc/server/createNextApiHandler.ts | 2 +- .../server/routers/loggedInViewer/_router.tsx | 88 ------------------- .../routers/loggedInViewer/procedures/me.ts | 8 -- .../server/routers/publicViewer/_router.tsx | 5 -- .../trpc/server/routers/viewer/_router.tsx | 5 +- .../server/routers/viewer/i18n/_router.tsx | 10 +++ .../i18n}/i18n.handler.ts | 0 .../i18n}/i18n.schema.ts | 0 .../trpc/server/routers/viewer/me/_router.tsx | 36 ++++++++ .../me}/bookingUnconfirmedCount.handler.ts | 0 .../me}/bookingUnconfirmedCount.schema.ts | 0 .../me}/checkForInvalidAppCredentials.ts | 0 .../me}/deleteMe.handler.ts | 0 .../me}/deleteMe.schema.ts | 0 .../me}/deleteMeWithoutPassword.handler.ts | 0 .../me}/deleteMeWithoutPassword.schema.ts | 0 .../me/get.handler.ts} | 6 +- .../me.schema.ts => viewer/me/get.schema.ts} | 4 +- .../me}/getUserTopBanners.handler.ts | 4 +- .../me}/myStats.handler.ts | 0 .../me}/myStats.schema.ts | 0 .../me}/platformMe.handler.ts | 0 .../routers/viewer/me/procedures/get.ts | 8 ++ .../me}/procedures/myStats.ts | 2 +- .../me}/procedures/platformMe.ts | 2 +- .../me}/shouldVerifyEmail.handler.ts | 0 .../me}/shouldVerifyEmail.schema.ts | 0 81 files changed, 162 insertions(+), 188 deletions(-) create mode 100644 apps/web/pages/api/trpc/i18n/[trpc].ts create mode 100644 apps/web/pages/api/trpc/me/[trpc].ts delete mode 100644 packages/trpc/server/routers/loggedInViewer/procedures/me.ts create mode 100644 packages/trpc/server/routers/viewer/i18n/_router.tsx rename packages/trpc/server/routers/{publicViewer => viewer/i18n}/i18n.handler.ts (100%) rename packages/trpc/server/routers/{publicViewer => viewer/i18n}/i18n.schema.ts (100%) create mode 100644 packages/trpc/server/routers/viewer/me/_router.tsx rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/bookingUnconfirmedCount.handler.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/bookingUnconfirmedCount.schema.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/checkForInvalidAppCredentials.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/deleteMe.handler.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/deleteMe.schema.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/deleteMeWithoutPassword.handler.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/deleteMeWithoutPassword.schema.ts (100%) rename packages/trpc/server/routers/{loggedInViewer/me.handler.ts => viewer/me/get.handler.ts} (96%) rename packages/trpc/server/routers/{loggedInViewer/me.schema.ts => viewer/me/get.schema.ts} (53%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/getUserTopBanners.handler.ts (93%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/myStats.handler.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/myStats.schema.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/platformMe.handler.ts (100%) create mode 100644 packages/trpc/server/routers/viewer/me/procedures/get.ts rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/procedures/myStats.ts (71%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/procedures/platformMe.ts (71%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/shouldVerifyEmail.handler.ts (100%) rename packages/trpc/server/routers/{loggedInViewer => viewer/me}/shouldVerifyEmail.schema.ts (100%) diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx index 6986fcfc0d..404928dc8f 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx @@ -174,7 +174,7 @@ const organizationAdminKeys = [ const useTabs = ({ isDelegationCredentialEnabled }: { isDelegationCredentialEnabled: boolean }) => { const session = useSession(); - const { data: user } = trpc.viewer.me.useQuery({ includePasswordAdded: true }); + const { data: user } = trpc.viewer.me.get.useQuery({ includePasswordAdded: true }); const orgBranding = useOrgBranding(); const isAdmin = session.data?.user.role === UserPermissionRole.ADMIN; const isOrgAdminOrOwner = diff --git a/apps/web/components/I18nLanguageHandler.tsx b/apps/web/components/I18nLanguageHandler.tsx index 29ffcd97d9..746096903d 100644 --- a/apps/web/components/I18nLanguageHandler.tsx +++ b/apps/web/components/I18nLanguageHandler.tsx @@ -2,7 +2,7 @@ import { CALCOM_VERSION } from "@calcom/lib/constants"; import { trpc } from "@calcom/trpc/react"; export function useViewerI18n(locale: string) { - return trpc.viewer.public.i18n.useQuery( + return trpc.viewer.i18n.get.useQuery( { locale, CalComVersion: CALCOM_VERSION }, { /** diff --git a/apps/web/components/getting-started/steps-views/UserProfile.tsx b/apps/web/components/getting-started/steps-views/UserProfile.tsx index 9e5f9048bb..d09d929d61 100644 --- a/apps/web/components/getting-started/steps-views/UserProfile.tsx +++ b/apps/web/components/getting-started/steps-views/UserProfile.tsx @@ -15,7 +15,7 @@ type FormData = { }; const UserProfile = () => { - const [user] = trpc.viewer.me.useSuspenseQuery(); + const [user] = trpc.viewer.me.get.useSuspenseQuery(); const { t } = useLocale(); const avatarRef = useRef(null); const { setValue, handleSubmit, getValues } = useForm({ @@ -56,7 +56,7 @@ const UserProfile = () => { console.error(error); } - await utils.viewer.me.refetch(); + await utils.viewer.me.get.refetch(); const redirectUrl = localStorage.getItem("onBoardingRedirect"); localStorage.removeItem("onBoardingRedirect"); redirectUrl ? router.push(redirectUrl) : router.push("/"); diff --git a/apps/web/components/getting-started/steps-views/UserSettings.tsx b/apps/web/components/getting-started/steps-views/UserSettings.tsx index b6ee5f3902..9b02fe75e7 100644 --- a/apps/web/components/getting-started/steps-views/UserSettings.tsx +++ b/apps/web/components/getting-started/steps-views/UserSettings.tsx @@ -21,7 +21,7 @@ interface IUserSettingsProps { const UserSettings = (props: IUserSettingsProps) => { const { nextStep } = props; - const [user] = trpc.viewer.me.useSuspenseQuery(); + const [user] = trpc.viewer.me.get.useSuspenseQuery(); const { t } = useLocale(); const { setTimezone: setSelectedTimeZone, timezone: selectedTimeZone } = useTimePreferences(); const telemetry = useTelemetry(); diff --git a/apps/web/components/settings/platform/hooks/usePlatformMe.ts b/apps/web/components/settings/platform/hooks/usePlatformMe.ts index 97e3f942e0..1daf46fb6c 100644 --- a/apps/web/components/settings/platform/hooks/usePlatformMe.ts +++ b/apps/web/components/settings/platform/hooks/usePlatformMe.ts @@ -1,7 +1,7 @@ import { trpc } from "@calcom/trpc/react"; export function usePlatformMe() { - const meQuery = trpc.viewer.platformMe.useQuery(undefined, { + const meQuery = trpc.viewer.me.platformMe.useQuery(undefined, { retry(failureCount) { return failureCount > 3; }, diff --git a/apps/web/components/ui/UsernameAvailability/PremiumTextfield.tsx b/apps/web/components/ui/UsernameAvailability/PremiumTextfield.tsx index ecfcf456a0..63ac64022b 100644 --- a/apps/web/components/ui/UsernameAvailability/PremiumTextfield.tsx +++ b/apps/web/components/ui/UsernameAvailability/PremiumTextfield.tsx @@ -64,7 +64,7 @@ const PremiumTextfield = (props: ICustomUsernameProps) => { onErrorMutation, readonly: disabled, } = props; - const [user] = trpc.viewer.me.useSuspenseQuery(); + const [user] = trpc.viewer.me.get.useSuspenseQuery(); const [usernameIsAvailable, setUsernameIsAvailable] = useState(false); const [markAsError, setMarkAsError] = useState(false); const recentAttemptPaymentStatus = searchParams?.get("recentAttemptPaymentStatus"); diff --git a/apps/web/components/ui/UsernameAvailability/index.tsx b/apps/web/components/ui/UsernameAvailability/index.tsx index 820cf123ac..e8d67a18ef 100644 --- a/apps/web/components/ui/UsernameAvailability/index.tsx +++ b/apps/web/components/ui/UsernameAvailability/index.tsx @@ -47,7 +47,7 @@ export const UsernameAvailabilityField = ({ onErrorMutation, }: UsernameAvailabilityFieldProps) => { const searchParams = useSearchParams(); - const [user] = trpc.viewer.me.useSuspenseQuery(); + const [user] = trpc.viewer.me.get.useSuspenseQuery(); const [currentUsernameState, setCurrentUsernameState] = useState(user.username || ""); const { username: usernameFromQuery, setQuery: setUsernameFromQuery } = useRouterQuery("username"); const { username: currentUsername, setQuery: setCurrentUsername } = diff --git a/apps/web/lib/getting-started/[[...step]]/getServerSideProps.tsx b/apps/web/lib/getting-started/[[...step]]/getServerSideProps.tsx index bd948fcd5a..b45b011c32 100644 --- a/apps/web/lib/getting-started/[[...step]]/getServerSideProps.tsx +++ b/apps/web/lib/getting-started/[[...step]]/getServerSideProps.tsx @@ -18,7 +18,7 @@ export const getServerSideProps = async (context: GetServerSidePropsContext) => const ssr = await ssrInit(context); - await ssr.viewer.me.prefetch(); + await ssr.viewer.me.get.prefetch(); const user = await UserRepository.findUserTeams({ id: session.user.id, diff --git a/apps/web/lib/hooks/useMeQuery.ts b/apps/web/lib/hooks/useMeQuery.ts index 3bd57168c0..d32d27ca50 100644 --- a/apps/web/lib/hooks/useMeQuery.ts +++ b/apps/web/lib/hooks/useMeQuery.ts @@ -1,7 +1,7 @@ import { trpc } from "@calcom/trpc/react"; export function useMeQuery() { - const meQuery = trpc.viewer.me.useQuery(undefined, { + const meQuery = trpc.viewer.me.get.useQuery(undefined, { retry(failureCount) { return failureCount > 3; }, diff --git a/apps/web/modules/availability/availability-view.tsx b/apps/web/modules/availability/availability-view.tsx index a58712b468..49d1b66549 100644 --- a/apps/web/modules/availability/availability-view.tsx +++ b/apps/web/modules/availability/availability-view.tsx @@ -27,7 +27,7 @@ export function AvailabilityList({ schedules }: RouterOutputs["viewer"]["availab const [bulkUpdateModal, setBulkUpdateModal] = useState(false); const utils = trpc.useUtils(); - const meQuery = trpc.viewer.me.useQuery(); + const meQuery = trpc.viewer.me.get.useQuery(); const router = useRouter(); diff --git a/apps/web/modules/bookings/views/bookings-single-view.getServerSideProps.tsx b/apps/web/modules/bookings/views/bookings-single-view.getServerSideProps.tsx index 9f8b747898..c6eaec63b3 100644 --- a/apps/web/modules/bookings/views/bookings-single-view.getServerSideProps.tsx +++ b/apps/web/modules/bookings/views/bookings-single-view.getServerSideProps.tsx @@ -51,7 +51,7 @@ export async function getServerSideProps(context: GetServerSidePropsContext) { let userTimeFormat: number | null = null; let requiresLoginToUpdate = false; if (session) { - const user = await ssr.viewer.me.fetch(); + const user = await ssr.viewer.me.get.fetch(); tz = user.timeZone; userTimeFormat = user.timeFormat; } diff --git a/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx b/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx index e101727d7d..0ed64388dc 100644 --- a/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx +++ b/apps/web/modules/getting-started/[[...step]]/onboarding-view.tsx @@ -89,7 +89,7 @@ const OnboardingPage = (props: PageProps) => { const params = useParamsWithFallback(); const router = useRouter(); - const [user] = trpc.viewer.me.useSuspenseQuery(); + const [user] = trpc.viewer.me.get.useSuspenseQuery(); const { t } = useLocale(); const result = stepRouteSchema.safeParse({ diff --git a/apps/web/modules/settings/my-account/appearance-view.tsx b/apps/web/modules/settings/my-account/appearance-view.tsx index d031f2cdab..94b416405f 100644 --- a/apps/web/modules/settings/my-account/appearance-view.tsx +++ b/apps/web/modules/settings/my-account/appearance-view.tsx @@ -85,7 +85,7 @@ const AppearanceView = ({ user, hasPaidPlan, }: { - user: RouterOutputs["viewer"]["me"]; + user: RouterOutputs["viewer"]["me"]["get"]; hasPaidPlan: boolean; }) => { const { t } = useLocale(); @@ -436,7 +436,7 @@ const AppearanceView = ({ }; const AppearancePage = () => { - const { data: user, isPending } = trpc.viewer.me.useQuery(); + const { data: user, isPending } = trpc.viewer.me.get.useQuery(); const { isPending: isTeamPlanStatusLoading, hasPaidPlan } = useHasPaidPlan(); if (isPending || isTeamPlanStatusLoading || !user) return ; diff --git a/apps/web/modules/settings/my-account/general-view.tsx b/apps/web/modules/settings/my-account/general-view.tsx index 924b3109a7..fe74d8eaca 100644 --- a/apps/web/modules/settings/my-account/general-view.tsx +++ b/apps/web/modules/settings/my-account/general-view.tsx @@ -66,7 +66,7 @@ const SkeletonLoader = () => { interface GeneralViewProps { localeProp: string; - user: RouterOutputs["viewer"]["me"]; + user: RouterOutputs["viewer"]["me"]["get"]; travelSchedules: RouterOutputs["viewer"]["getTravelSchedules"]; revalidatePage: GeneralQueryViewProps["revalidatePage"]; } @@ -78,7 +78,7 @@ type GeneralQueryViewProps = { const GeneralQueryView = ({ revalidatePage }: GeneralQueryViewProps) => { const { t } = useLocale(); - const { data: user, isPending } = trpc.viewer.me.useQuery(); + const { data: user, isPending } = trpc.viewer.me.get.useQuery(); const { data: travelSchedules, isPending: isPendingTravelSchedules } = trpc.viewer.getTravelSchedules.useQuery(); diff --git a/apps/web/modules/settings/my-account/profile-view.tsx b/apps/web/modules/settings/my-account/profile-view.tsx index ae9f926a02..c4e6461281 100644 --- a/apps/web/modules/settings/my-account/profile-view.tsx +++ b/apps/web/modules/settings/my-account/profile-view.tsx @@ -95,13 +95,13 @@ const ProfileView = () => { const { t } = useLocale(); const utils = trpc.useUtils(); const { update } = useSession(); - const { data: user, isPending } = trpc.viewer.me.useQuery({ includePasswordAdded: true }); + const { data: user, isPending } = trpc.viewer.me.get.useQuery({ includePasswordAdded: true }); const updateProfileMutation = trpc.viewer.updateProfile.useMutation({ onSuccess: async (res) => { await update(res); utils.viewer.me.invalidate(); - utils.viewer.shouldVerifyEmail.invalidate(); + utils.viewer.me.shouldVerifyEmail.invalidate(); if (res.hasEmailBeenChanged && res.sendEmailVerification) { showToast(t("change_of_email_toast", { email: tempFormValues?.email }), "success"); @@ -187,14 +187,14 @@ const ProfileView = () => { setHasDeleteErrors(true); setDeleteErrorMessage(errorMessages[error.message]); }; - const deleteMeMutation = trpc.viewer.deleteMe.useMutation({ + const deleteMeMutation = trpc.viewer.me.deleteMe.useMutation({ onSuccess: onDeleteMeSuccessMutation, onError: onDeleteMeErrorMutation, async onSettled() { await utils.viewer.me.invalidate(); }, }); - const deleteMeWithoutPasswordMutation = trpc.viewer.deleteMeWithoutPassword.useMutation({ + const deleteMeWithoutPasswordMutation = trpc.viewer.me.deleteMeWithoutPassword.useMutation({ onSuccess: onDeleteMeSuccessMutation, onError: onDeleteMeErrorMutation, async onSettled() { @@ -511,8 +511,8 @@ const ProfileForm = ({ extraField?: React.ReactNode; isPending: boolean; isFallbackImg: boolean; - user: RouterOutputs["viewer"]["me"]; - userOrganization: RouterOutputs["viewer"]["me"]["organization"]; + user: RouterOutputs["viewer"]["me"]["get"]; + userOrganization: RouterOutputs["viewer"]["me"]["get"]["organization"]; isCALIdentityProvider: boolean; }) => { const { t } = useLocale(); diff --git a/apps/web/modules/settings/security/impersonation-view.tsx b/apps/web/modules/settings/security/impersonation-view.tsx index 3e3d8bd287..90dcb49cbc 100644 --- a/apps/web/modules/settings/security/impersonation-view.tsx +++ b/apps/web/modules/settings/security/impersonation-view.tsx @@ -17,7 +17,7 @@ const SkeletonLoader = () => { ); }; -const ProfileImpersonationView = ({ user }: { user: RouterOutputs["viewer"]["me"] }) => { +const ProfileImpersonationView = ({ user }: { user: RouterOutputs["viewer"]["me"]["get"] }) => { const { t } = useLocale(); const utils = trpc.useUtils(); const [disableImpersonation, setDisableImpersonation] = useState( @@ -32,8 +32,8 @@ const ProfileImpersonationView = ({ user }: { user: RouterOutputs["viewer"]["me" utils.viewer.me.invalidate(); }, onMutate: async ({ disableImpersonation }) => { - await utils.viewer.me.cancel(); - const previousValue = utils.viewer.me.getData(); + await utils.viewer.me.get.cancel(); + const previousValue = utils.viewer.me.get.getData(); setDisableImpersonation(disableImpersonation); @@ -41,7 +41,7 @@ const ProfileImpersonationView = ({ user }: { user: RouterOutputs["viewer"]["me" }, onError: (error, variables, context) => { if (context?.previousValue) { - utils.viewer.me.setData(undefined, context.previousValue); + utils.viewer.me.get.setData(undefined, context.previousValue); setDisableImpersonation(context.previousValue?.disableImpersonation); } showToast(`${t("error")}, ${error.message}`, "error"); @@ -68,7 +68,7 @@ const ProfileImpersonationView = ({ user }: { user: RouterOutputs["viewer"]["me" }; const ProfileImpersonationViewWrapper = () => { - const { data: user, isPending } = trpc.viewer.me.useQuery(); + const { data: user, isPending } = trpc.viewer.me.get.useQuery(); if (isPending || !user) return ; return ; diff --git a/apps/web/modules/settings/security/password-view.tsx b/apps/web/modules/settings/security/password-view.tsx index 56975be804..078dea5e05 100644 --- a/apps/web/modules/settings/security/password-view.tsx +++ b/apps/web/modules/settings/security/password-view.tsx @@ -33,7 +33,7 @@ type ChangePasswordSessionFormValues = { }; interface PasswordViewProps { - user: RouterOutputs["viewer"]["me"]; + user: RouterOutputs["viewer"]["me"]["get"]; } const SkeletonLoader = () => { @@ -72,12 +72,12 @@ const PasswordView = ({ user }: PasswordViewProps) => { utils.viewer.me.invalidate(); }, onMutate: async () => { - await utils.viewer.me.cancel(); - const previousValue = await utils.viewer.me.getData(); + await utils.viewer.me.get.cancel(); + const previousValue = await utils.viewer.me.get.getData(); const previousMetadata = userMetadataSchema.safeParse(previousValue?.metadata); if (previousValue && sessionTimeout && previousMetadata.success) { - utils.viewer.me.setData(undefined, { + utils.viewer.me.get.setData(undefined, { ...previousValue, metadata: { ...previousMetadata?.data, sessionTimeout: sessionTimeout }, }); @@ -86,7 +86,7 @@ const PasswordView = ({ user }: PasswordViewProps) => { }, onError: (error, _, context) => { if (context?.previousValue) { - utils.viewer.me.setData(undefined, context.previousValue); + utils.viewer.me.get.setData(undefined, context.previousValue); } showToast(`${t("session_timeout_change_error")}, ${error.message}`, "error"); }, @@ -305,7 +305,7 @@ const PasswordView = ({ user }: PasswordViewProps) => { }; const PasswordViewWrapper = () => { - const { data: user, isPending } = trpc.viewer.me.useQuery({ includePasswordAdded: true }); + const { data: user, isPending } = trpc.viewer.me.get.useQuery({ includePasswordAdded: true }); const { t } = useLocale(); if (isPending || !user) return ; diff --git a/apps/web/modules/settings/security/two-factor-auth-view.tsx b/apps/web/modules/settings/security/two-factor-auth-view.tsx index 59a10394a0..a294f2d945 100644 --- a/apps/web/modules/settings/security/two-factor-auth-view.tsx +++ b/apps/web/modules/settings/security/two-factor-auth-view.tsx @@ -26,7 +26,7 @@ const TwoFactorAuthView = () => { const utils = trpc.useUtils(); const { t } = useLocale(); - const { data: user, isPending } = trpc.viewer.me.useQuery({ includePasswordAdded: true }); + const { data: user, isPending } = trpc.viewer.me.get.useQuery({ includePasswordAdded: true }); const [enableModalOpen, setEnableModalOpen] = useState(false); const [disableModalOpen, setDisableModalOpen] = useState(false); diff --git a/apps/web/modules/teams/teams-view.tsx b/apps/web/modules/teams/teams-view.tsx index 20b0a5cdf7..4d08d97eaa 100644 --- a/apps/web/modules/teams/teams-view.tsx +++ b/apps/web/modules/teams/teams-view.tsx @@ -8,7 +8,7 @@ import { Button } from "@calcom/ui"; export const TeamsCTA = () => { const { t } = useLocale(); - const [user] = trpc.viewer.me.useSuspenseQuery(); + const [user] = trpc.viewer.me.get.useSuspenseQuery(); return !user.organizationId || user.organization.isOrgAdmin ? (