chore: Remove next-collect package (#25146)

This commit is contained in:
Alex van Andel
2025-11-19 13:54:26 +00:00
committed by GitHub
parent cf7430d531
commit 90a42c37fd
24 changed files with 53 additions and 184 deletions
@@ -6,8 +6,6 @@ import { sdkActionManager } from "@calcom/embed-core/embed-iframe";
import { shouldChargeNoShowCancellationFee } from "@calcom/features/bookings/lib/payment/shouldChargeNoShowCancellationFee";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useRefreshData } from "@calcom/lib/hooks/useRefreshData";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { collectPageParameters, telemetryEventTypes } from "@calcom/lib/telemetry";
import type { RecurringEvent } from "@calcom/types/Calendar";
import { Button } from "@calcom/ui/components/button";
import { Label, Select, TextArea, CheckboxField } from "@calcom/ui/components/form";
@@ -123,7 +121,6 @@ export default function CancelBooking(props: Props) {
eventTypeMetadata,
} = props;
const [loading, setLoading] = useState(false);
const telemetry = useTelemetry();
const [error, setError] = useState<string | null>(booking ? null : t("booking_already_cancelled"));
const [internalNote, setInternalNote] = useState<{ id: number; name: string } | null>(null);
const [acknowledgeCancellationNoShowFee, setAcknowledgeCancellationNoShowFee] = useState(false);
@@ -171,7 +168,7 @@ export default function CancelBooking(props: Props) {
node.scrollIntoView({ behavior: "smooth" });
node.focus();
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return (
@@ -264,7 +261,7 @@ export default function CancelBooking(props: Props) {
onClick={async () => {
setLoading(true);
telemetry.event(telemetryEventTypes.bookingCancelled, collectPageParameters());
// telemetry.event(telemetryEventTypes.bookingCancelled, collectPageParameters());
const response = await fetch("/api/csrf?sameSite=none", { cache: "no-store" });
const { csrfToken } = await response.json();
@@ -59,12 +59,6 @@ vi.mock("@calcom/lib/hooks/useLocale", () => ({
}),
}));
vi.mock("@calcom/lib/hooks/useTelemetry", () => ({
useTelemetry: () => ({
event: vi.fn(),
}),
}));
vi.mock("@calcom/lib/hooks/useRefreshData", () => ({
useRefreshData: () => vi.fn(),
}));
@@ -5,9 +5,7 @@ import { useRef, useState } from "react";
import { useForm } from "react-hook-form";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { md } from "@calcom/lib/markdownIt";
import { telemetryEventTypes } from "@calcom/lib/telemetry";
import turndown from "@calcom/lib/turndownService";
import { localStorage } from "@calcom/lib/webstorage";
import { trpc } from "@calcom/trpc/react";
@@ -39,7 +37,6 @@ const UserProfile = ({ user }: UserProfileProps) => {
const utils = trpc.useUtils();
const router = useRouter();
const createEventType = trpc.viewer.eventTypesHeavy.create.useMutation();
const telemetry = useTelemetry();
const [firstRender, setFirstRender] = useState(true);
// Create a separate mutation for avatar updates
@@ -81,7 +78,7 @@ const UserProfile = ({ user }: UserProfileProps) => {
const onSubmit = handleSubmit((data: { bio: string }) => {
const { bio } = data;
telemetry.event(telemetryEventTypes.onboardingFinished);
// telemetry.event(telemetryEventTypes.onboardingFinished);
mutation.mutate({
bio,
@@ -1,7 +1,6 @@
"use client";
import { zodResolver } from "@hookform/resolvers/zod";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { z } from "zod";
@@ -10,8 +9,6 @@ import { useTimePreferences } from "@calcom/features/bookings/lib";
import { TimezoneSelect } from "@calcom/features/components/timezone-select";
import { FULL_NAME_LENGTH_MAX_LIMIT } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { telemetryEventTypes } from "@calcom/lib/telemetry";
import { trpc } from "@calcom/trpc/react";
import type { RouterOutputs } from "@calcom/trpc/react";
import { Button } from "@calcom/ui/components/button";
@@ -29,7 +26,6 @@ const UserSettings = (props: IUserSettingsProps) => {
const { nextStep, user } = props;
const { t } = useLocale();
const { setTimezone: setSelectedTimeZone, timezone: selectedTimeZone } = useTimePreferences();
const telemetry = useTelemetry();
const userSettingsSchema = z.object({
name: z
.string()
@@ -50,9 +46,9 @@ const UserSettings = (props: IUserSettingsProps) => {
resolver: zodResolver(userSettingsSchema),
});
useEffect(() => {
/*useEffect(() => {
telemetry.event(telemetryEventTypes.onboardingStarted);
}, [telemetry]);
}, [telemetry]);*/
const utils = trpc.useUtils();
const onSuccess = async () => {
+18 -21
View File
@@ -1,7 +1,6 @@
import { TooltipProvider } from "@radix-ui/react-tooltip";
import type { Session } from "next-auth";
import { useSession } from "next-auth/react";
import { EventCollectionProvider } from "next-collect/client";
import { ThemeProvider } from "next-themes";
import type { AppProps as NextAppProps } from "next/app";
import type { ReadonlyURLSearchParams } from "next/navigation";
@@ -113,27 +112,25 @@ const AppProviders = (props: PageWrapperProps) => {
const RemainingProviders = (
<>
<EventCollectionProvider options={{ apiPath: "/api/collect-events" }}>
<TooltipProvider>
{/* color-scheme makes background:transparent not work which is required by embed. We need to ensure next-theme adds color-scheme to `body` instead of `html`(https://github.com/pacocoursey/next-themes/blob/main/src/index.tsx#L74). Once that's done we can enable color-scheme support */}
<CalcomThemeProvider
nonce={props.nonce}
isThemeSupported={isThemeSupported}
isBookingPage={props.isBookingPage || isBookingPage}>
<NuqsAdapter>
<FeatureFlagsProvider>
{props.isBookingPage || isBookingPage ? (
<TooltipProvider>
{/* color-scheme makes background:transparent not work which is required by embed. We need to ensure next-theme adds color-scheme to `body` instead of `html`(https://github.com/pacocoursey/next-themes/blob/main/src/index.tsx#L74). Once that's done we can enable color-scheme support */}
<CalcomThemeProvider
nonce={props.nonce}
isThemeSupported={isThemeSupported}
isBookingPage={props.isBookingPage || isBookingPage}>
<NuqsAdapter>
<FeatureFlagsProvider>
{props.isBookingPage || isBookingPage ? (
<OrgBrandProvider>{props.children}</OrgBrandProvider>
) : (
<DynamicIntercomProvider>
<OrgBrandProvider>{props.children}</OrgBrandProvider>
) : (
<DynamicIntercomProvider>
<OrgBrandProvider>{props.children}</OrgBrandProvider>
</DynamicIntercomProvider>
)}
</FeatureFlagsProvider>
</NuqsAdapter>
</CalcomThemeProvider>
</TooltipProvider>
</EventCollectionProvider>
</DynamicIntercomProvider>
)}
</FeatureFlagsProvider>
</NuqsAdapter>
</CalcomThemeProvider>
</TooltipProvider>
</>
);
+20 -23
View File
@@ -2,7 +2,6 @@ import { TooltipProvider } from "@radix-ui/react-tooltip";
import { dir } from "i18next";
import type { Session } from "next-auth";
import { useSession } from "next-auth/react";
import { EventCollectionProvider } from "next-collect/client";
import { appWithTranslation } from "next-i18next";
import type { SSRConfig } from "next-i18next/dist/types/types";
import { ThemeProvider } from "next-themes";
@@ -279,29 +278,27 @@ const AppProviders = (props: AppPropsWithChildren) => {
: props.Component.isBookingPage) || isBookingPage;
const RemainingProviders = (
<EventCollectionProvider options={{ apiPath: "/api/collect-events" }}>
<CustomI18nextProvider {...props}>
<TooltipProvider>
<CalcomThemeProvider
themeBasis={props.pageProps.themeBasis}
isThemeSupported={props.Component.isThemeSupported}
isBookingPage={props.Component.isBookingPage || isBookingPage}
router={props.router}>
<NuqsAdapter>
<FeatureFlagsProvider>
{_isBookingPage ? (
<CustomI18nextProvider {...props}>
<TooltipProvider>
<CalcomThemeProvider
themeBasis={props.pageProps.themeBasis}
isThemeSupported={props.Component.isThemeSupported}
isBookingPage={props.Component.isBookingPage || isBookingPage}
router={props.router}>
<NuqsAdapter>
<FeatureFlagsProvider>
{_isBookingPage ? (
<OrgBrandProvider>{props.children}</OrgBrandProvider>
) : (
<DynamicIntercomProvider>
<OrgBrandProvider>{props.children}</OrgBrandProvider>
) : (
<DynamicIntercomProvider>
<OrgBrandProvider>{props.children}</OrgBrandProvider>
</DynamicIntercomProvider>
)}
</FeatureFlagsProvider>
</NuqsAdapter>
</CalcomThemeProvider>
</TooltipProvider>
</CustomI18nextProvider>
</EventCollectionProvider>
</DynamicIntercomProvider>
)}
</FeatureFlagsProvider>
</NuqsAdapter>
</CalcomThemeProvider>
</TooltipProvider>
</CustomI18nextProvider>
);
if (isBookingPage) {
-10
View File
@@ -16,16 +16,6 @@ vi.mock("@vercel/edge-config", () => ({
get: vi.fn(),
}));
vi.mock("next-collect/server", () => ({
// eslint-disable-next-line @typescript-eslint/no-explicit-any
collectEvents: vi.fn((config: any) => config.middleware),
}));
vi.mock("@calcom/lib/telemetry", () => ({
extendEventData: vi.fn(),
nextCollectBasicSettings: {},
}));
// Mock NextResponse.json since it's not available in test environment
vi.mock("next/server", async () => {
const actual = await vi.importActual<typeof import("next/server")>("next/server");
+1 -8
View File
@@ -1,5 +1,4 @@
import { get } from "@vercel/edge-config";
import { collectEvents } from "next-collect/server";
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
@@ -7,7 +6,6 @@ import { checkRateLimitAndThrowError } from "@calcom/lib/checkRateLimitAndThrowE
import getIP from "@calcom/lib/getIP";
import { HttpError } from "@calcom/lib/http-error";
import { piiHasher } from "@calcom/lib/server/PiiHasher";
import { extendEventData, nextCollectBasicSettings } from "@calcom/lib/telemetry";
import { getCspHeader, getCspNonce } from "@lib/csp";
@@ -271,9 +269,4 @@ export const config = {
matcher: ["/((?!_next(?:/|$)|static(?:/|$)|public(?:/|$)|favicon\\.ico$|robots\\.txt$|sitemap\\.xml$).*)"],
};
export default collectEvents({
middleware,
...nextCollectBasicSettings,
cookieName: "__clnds",
extend: extendEventData,
});
export default middleware;
+1 -5
View File
@@ -17,8 +17,6 @@ import { emailRegex } from "@calcom/lib/emailSchema";
import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { collectPageParameters, telemetryEventTypes } from "@calcom/lib/telemetry";
import { trpc } from "@calcom/trpc/react";
import { Alert } from "@calcom/ui/components/alert";
import { Button } from "@calcom/ui/components/button";
@@ -82,8 +80,6 @@ export default function Login({
[ErrorCode.ThirdPartyIdentityProviderEnabled]: t("account_created_with_identity_provider"),
};
const telemetry = useTelemetry();
let callbackUrl = searchParams?.get("callbackUrl") || "";
if (/"\//.test(callbackUrl)) callbackUrl = callbackUrl.substring(1);
@@ -147,7 +143,7 @@ export default function Login({
const onSubmit = async (values: LoginValues) => {
setErrorMessage(null);
telemetry.event(telemetryEventTypes.login, collectPageParameters());
// telemetry.event(telemetryEventTypes.login, collectPageParameters());
const res = await signIn<"credentials">("credentials", {
...values,
callbackUrl,
@@ -279,14 +279,6 @@ export default function Success(props: PageProps) {
(!!seatReferenceUid &&
!bookingInfo.seatsReferences.some((reference) => reference.referenceUid === seatReferenceUid));
// const telemetry = useTelemetry();
/* useEffect(() => {
if (top !== window) {
//page_view will be collected automatically by _middleware.ts
telemetry.event(telemetryEventTypes.embedView, collectPageParameters("/booking"));
}
}, [telemetry]); */
useEffect(() => {
setDate(date.tz(localStorage.getItem("timeOption.preferredTimeZone") || CURRENT_TIMEZONE));
setIs24h(props?.userTimeFormat ? props.userTimeFormat === 24 : !!getIs24hClockFromLocalStorage());
@@ -2,8 +2,6 @@ import { useRouter } from "next/navigation";
import { setShowWelcomeToCalcomModalFlag } from "@calcom/features/shell/hooks/useWelcomeToCalcomModal";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { telemetryEventTypes } from "@calcom/lib/telemetry";
import { sessionStorage } from "@calcom/lib/webstorage";
import { trpc } from "@calcom/trpc/react";
import { showToast } from "@calcom/ui/components/toast";
@@ -32,7 +30,6 @@ const DEFAULT_EVENT_TYPES = [
export const useSubmitPersonalOnboarding = () => {
const router = useRouter();
const { t } = useLocale();
const telemetry = useTelemetry();
const utils = trpc.useUtils();
const { data: eventTypes } = trpc.viewer.eventTypes.list.useQuery();
@@ -80,7 +77,7 @@ export const useSubmitPersonalOnboarding = () => {
});
const submitPersonalOnboarding = () => {
telemetry.event(telemetryEventTypes.onboardingFinished);
// telemetry.event(telemetryEventTypes.onboardingFinished);
mutation.mutate({
completedOnboarding: true,
});
@@ -8,8 +8,6 @@ import { CreateANewTeamForm } from "@calcom/features/ee/teams/components";
import { HOSTED_CAL_FEATURES } from "@calcom/lib/constants";
import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
import { useParamsWithFallback } from "@calcom/lib/hooks/useParamsWithFallback";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { telemetryEventTypes } from "@calcom/lib/telemetry";
import type { RouterOutputs } from "@calcom/trpc/react";
import { WizardLayout } from "@calcom/ui/components/layout";
@@ -22,16 +20,13 @@ const CreateNewTeamPage = () => {
const params = useParamsWithFallback();
const parsedQuery = querySchema.safeParse(params);
const router = useRouter();
const telemetry = useTelemetry();
const isTeamBillingEnabledClient = !!process.env.NEXT_PUBLIC_STRIPE_PUBLIC_KEY && HOSTED_CAL_FEATURES;
const flag = isTeamBillingEnabledClient
? {
telemetryEvent: telemetryEventTypes.team_checkout_session_created,
submitLabel: "checkout",
}
: {
telemetryEvent: telemetryEventTypes.team_created,
submitLabel: "continue",
};
@@ -39,7 +34,7 @@ const CreateNewTeamPage = () => {
(parsedQuery.success ? getSafeRedirectUrl(parsedQuery.data.returnTo) : "/teams") || "/teams";
const onSuccess = (data: RouterOutputs["viewer"]["teams"]["create"]) => {
telemetry.event(flag.telemetryEvent);
// telemetry.event(flag.telemetryEvent);
router.push(data.url);
};
+1 -4
View File
@@ -34,8 +34,6 @@ import { pushGTMEvent } from "@calcom/lib/gtm";
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
import { useDebounce } from "@calcom/lib/hooks/useDebounce";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { collectPageParameters, telemetryEventTypes } from "@calcom/lib/telemetry";
import { IS_EUROPE } from "@calcom/lib/timezoneConstants";
import { signupSchema as apiSignupSchema } from "@calcom/prisma/zod-utils";
import type { inferSSRProps } from "@calcom/types/inferSSRProps";
@@ -193,7 +191,6 @@ export default function Signup({
const [isGoogleLoading, setIsGoogleLoading] = useState(false);
const [displayEmailForm, setDisplayEmailForm] = useState(token);
const searchParams = useCompatSearchParams();
const telemetry = useTelemetry();
const { t, i18n } = useLocale();
const router = useRouter();
const formMethods = useForm<FormValues>({
@@ -261,7 +258,7 @@ export default function Signup({
if (process.env.NEXT_PUBLIC_GTM_ID)
pushGTMEvent("create_account", { email: data.email, user: data.username, lang: data.language });
telemetry.event(telemetryEventTypes.signup, collectPageParameters());
// telemetry.event(telemetryEventTypes.signup, collectPageParameters());
const gettingStartedPath = onboardingV3Enabled ? "onboarding/getting-started" : "getting-started";
const verifyOrGettingStarted = emailVerificationEnabled ? "auth/verify-email" : gettingStartedPath;
+1 -14
View File
@@ -8,17 +8,13 @@
// 2. org/[orgSlug]/[user]/[type]
import classNames from "classnames";
import Link from "next/link";
import { usePathname } from "next/navigation";
import { useEffect } from "react";
import { sdkActionManager, useIsEmbed } from "@calcom/embed-core/embed-iframe";
import EventTypeDescription from "@calcom/features/eventtypes/components/EventTypeDescription";
import { getOrgOrTeamAvatar } from "@calcom/lib/defaultAvatarImage";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useRouterQuery } from "@calcom/lib/hooks/useRouterQuery";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import useTheme from "@calcom/lib/hooks/useTheme";
import { collectPageParameters, telemetryEventTypes } from "@calcom/lib/telemetry";
import { teamMetadataSchema } from "@calcom/prisma/zod-utils";
import { UserAvatarGroup } from "@calcom/ui/components/avatar";
import { Avatar } from "@calcom/ui/components/avatar";
@@ -35,24 +31,15 @@ export type PageProps = inferSSRProps<typeof getServerSideProps>;
function TeamPage({ team, considerUnpublished, isValidOrgDomain }: PageProps) {
useTheme(team.theme);
const routerQuery = useRouterQuery();
const pathname = usePathname();
const showMembers = useToggleQuery("members");
const { t } = useLocale();
const isEmbed = useIsEmbed();
const telemetry = useTelemetry();
const teamName = team.name || t("nameless_team");
const isBioEmpty = !team.bio || !team.bio.replace("<p><br></p>", "").length;
const metadata = teamMetadataSchema.parse(team.metadata);
const teamOrOrgIsPrivate = team.isPrivate || (team?.parent?.isOrganization && team.parent?.isPrivate);
useEffect(() => {
telemetry.event(
telemetryEventTypes.pageView,
collectPageParameters("/team/[slug]", { isTeamBooking: true })
);
}, [telemetry, pathname]);
if (considerUnpublished) {
const teamSlug = team.slug || metadata?.requestedSlug;
const parentSlug = team.parent?.slug || team.parent?.requestedSlug;
@@ -174,7 +161,7 @@ function TeamPage({ team, considerUnpublished, isValidOrgDomain }: PageProps) {
<>
<div
className=" text-subtle break-words text-sm [&_a]:text-blue-500 [&_a]:underline [&_a]:hover:text-blue-600"
// eslint-disable-next-line react/no-danger
dangerouslySetInnerHTML={{ __html: team.safeBio }}
/>
</>
@@ -42,14 +42,6 @@ export function UserPage(props: PageProps) {
...query
} = useRouterQuery();
/*
const telemetry = useTelemetry();
useEffect(() => {
if (top !== window) {
//page_view will be collected automatically by _middleware.ts
telemetry.event(telemetryEventTypes.embedView, collectPageParameters("/[user]"));
}
}, [telemetry, router.asPath]); */
if (entity.considerUnpublished) {
return (
<div className="flex h-full min-h-[calc(100dvh)] items-center justify-center">
@@ -99,7 +91,7 @@ export function UserPage(props: PageProps) {
<>
<div
className="text-default break-words text-sm [&_a]:text-blue-500 [&_a]:underline [&_a]:hover:text-blue-600"
// eslint-disable-next-line react/no-danger
dangerouslySetInnerHTML={{ __html: props.safeBio }}
/>
</>
-1
View File
@@ -112,7 +112,6 @@
"next": "15.5.4",
"next-auth": "^4.22.1",
"next-axiom": "^0.17.0",
"next-collect": "^0.2.1",
"next-i18next": "^15.4.2",
"next-seo": "^6.0.0",
"next-themes": "^0.2.0",
-9
View File
@@ -1,9 +0,0 @@
import { collectApiHandler } from "next-collect/server";
import { extendEventData, nextCollectBasicSettings } from "@calcom/lib/telemetry";
export default collectApiHandler({
...nextCollectBasicSettings,
cookieName: "__clnds",
extend: extendEventData,
});
@@ -10,9 +10,7 @@ import { uuid } from "short-uuid";
import { deriveOrgNameFromEmail } from "@calcom/ee/organizations/components/CreateANewOrganizationForm";
import { deriveSlugFromEmail } from "@calcom/ee/organizations/components/CreateANewOrganizationForm";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import slugify from "@calcom/lib/slugify";
import { telemetryEventTypes } from "@calcom/lib/telemetry";
import { UserPermissionRole } from "@calcom/prisma/enums";
import { CreationSource } from "@calcom/prisma/enums";
import { trpc } from "@calcom/trpc/react";
@@ -33,7 +31,6 @@ export const CreateANewPlatformForm = () => {
const CreateANewPlatformFormChild = ({ session }: { session: Ensure<SessionContextValue, "data"> }) => {
const { t } = useLocale();
const router = useRouter();
const telemetry = useTelemetry();
const [serverErrorMessage, setServerErrorMessage] = useState<string | null>(null);
const isAdmin = session.data.user.role === UserPermissionRole.ADMIN;
const defaultOrgOwnerEmail = session.data.user.email ?? "";
@@ -53,7 +50,7 @@ const CreateANewPlatformFormChild = ({ session }: { session: Ensure<SessionConte
const createOrganizationMutation = trpc.viewer.organizations.create.useMutation({
onSuccess: async (data) => {
telemetry.event(telemetryEventTypes.org_created);
// telemetry.event(telemetryEventTypes.org_created);
// This is necessary so that server token has the updated upId
await session.update({
upId: data.upId,
@@ -3,7 +3,7 @@
import { keepPreviousData } from "@tanstack/react-query";
import { useSession } from "next-auth/react";
import { useRouter } from "next/navigation";
import { useEffect, useState, useMemo } from "react";
import { useState, useMemo } from "react";
import { checkAdminOrOwner } from "@calcom/features/auth/lib/checkAdminOrOwner";
import { useOrgBranding } from "@calcom/features/ee/organizations/context/provider";
@@ -12,8 +12,6 @@ import { MemberInvitationModalWithoutMembers } from "@calcom/features/ee/teams/c
import { APP_NAME } from "@calcom/lib/constants";
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { telemetryEventTypes } from "@calcom/lib/telemetry";
import { MembershipRole } from "@calcom/prisma/enums";
import type { RouterOutputs } from "@calcom/trpc/react";
import { trpc } from "@calcom/trpc/react";
@@ -29,7 +27,6 @@ type TeamMember = RouterOutputs["viewer"]["teams"]["listMembers"]["members"][num
const AddNewTeamMembers = ({ isOrg = false }: { isOrg?: boolean }) => {
const searchParams = useCompatSearchParams();
const session = useSession();
const telemetry = useTelemetry();
const teamId = searchParams?.get("id") ? Number(searchParams.get("id")) : -1;
const teamQuery = trpc.viewer.teams.get.useQuery(
@@ -37,13 +34,6 @@ const AddNewTeamMembers = ({ isOrg = false }: { isOrg?: boolean }) => {
{ enabled: session.status === "authenticated" }
);
useEffect(() => {
const event = searchParams?.get("event");
if (event === "team_created") {
telemetry.event(telemetryEventTypes.team_created);
}
}, []);
if (session.status === "loading" || !teamQuery.data) return <AddNewTeamMemberSkeleton />;
return <AddNewTeamMembersForm teamId={teamId} isOrg={isOrg} />;
-5
View File
@@ -1,5 +0,0 @@
"use client";
import { useCollector } from "next-collect/client";
export const useTelemetry = useCollector;
-1
View File
@@ -23,7 +23,6 @@
"ics": "^2.37.0",
"jimp": "^0.16.1",
"lingo.dev": "^0.111.1",
"next-collect": "^0.2.1",
"rrule": "^2.7.1",
"sharp": "0.33.5",
"sonner": "^1.7.4",
-1
View File
@@ -1,5 +1,4 @@
import type { NextApiRequest, NextApiResponse } from "next";
import type { CollectOpts, EventHandler } from "next-collect";
// Importing types so we're not directly importing next/server
import type { NextRequest, NextResponse } from "next/server";
@@ -13,10 +13,8 @@ import { EventPermissionProvider } from "@calcom/features/pbac/client/context/Ev
import { useWorkflowPermission } from "@calcom/features/pbac/client/hooks/useEventPermission";
import { WEBSITE_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
import { useTypedQuery } from "@calcom/lib/hooks/useTypedQuery";
import { HttpError } from "@calcom/lib/http-error";
import { telemetryEventTypes } from "@calcom/lib/telemetry";
import { SchedulingType } from "@calcom/prisma/enums";
import { trpc } from "@calcom/trpc/react";
import type { RouterOutputs } from "@calcom/trpc/react";
@@ -165,7 +163,6 @@ const EventTypeWeb = ({
const { data: user, isPending: isLoggedInUserPending } = useMeQuery();
const isTeamEventTypeDeleted = useRef(false);
const leaveWithoutAssigningHosts = useRef(false);
const telemetry = useTelemetry();
const [isOpenAssignmentWarnDialog, setIsOpenAssignmentWarnDialog] = useState<boolean>(false);
const [pendingRoute, setPendingRoute] = useState("");
const { eventType, locationOptions, team, teamMembers, destinationCalendar } = rest;
@@ -445,7 +442,7 @@ const EventTypeWeb = ({
onConfirm={(e: { preventDefault: () => void }) => {
e.preventDefault();
handleSubmit(form.getValues());
telemetry.event(telemetryEventTypes.slugReplacementAction);
// telemetry.event(telemetryEventTypes.slugReplacementAction);
setSlugExistsChildrenDialogOpen([]);
}}
/>
-15
View File
@@ -3631,7 +3631,6 @@ __metadata:
ics: ^2.37.0
jimp: ^0.16.1
lingo.dev: ^0.111.1
next-collect: ^0.2.1
rrule: ^2.7.1
sharp: 0.33.5
sonner: ^1.7.4
@@ -4366,7 +4365,6 @@ __metadata:
next: 15.5.4
next-auth: ^4.22.1
next-axiom: ^0.17.0
next-collect: ^0.2.1
next-i18next: ^15.4.2
next-seo: ^6.0.0
next-themes: ^0.2.0
@@ -37037,19 +37035,6 @@ __metadata:
languageName: node
linkType: hard
"next-collect@npm:^0.2.1":
version: 0.2.1
resolution: "next-collect@npm:0.2.1"
dependencies:
cookie: ^0.5.0
peerDependencies:
next: ^12.2.0
react: ^17.0.2 || ^18
react-dom: ^17.0.2 || ^18
checksum: f03d9807d0a939f383d83765c72a171c7b678e98014185e4ad8093af86233dc7e6a320c2ebba97e3ef54568d31a84a06db29c0dd70434f18e196433af14b8128
languageName: node
linkType: hard
"next-i18next@npm:^15.4.2":
version: 15.4.2
resolution: "next-i18next@npm:15.4.2"