Skip to content

Commit 90a42c3

Browse files
authored
chore: Remove next-collect package (#25146)
1 parent cf7430d commit 90a42c3

File tree

24 files changed

+53
-184
lines changed

24 files changed

+53
-184
lines changed

apps/web/components/booking/CancelBooking.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import { sdkActionManager } from "@calcom/embed-core/embed-iframe";
66
import { shouldChargeNoShowCancellationFee } from "@calcom/features/bookings/lib/payment/shouldChargeNoShowCancellationFee";
77
import { useLocale } from "@calcom/lib/hooks/useLocale";
88
import { useRefreshData } from "@calcom/lib/hooks/useRefreshData";
9-
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
10-
import { collectPageParameters, telemetryEventTypes } from "@calcom/lib/telemetry";
119
import type { RecurringEvent } from "@calcom/types/Calendar";
1210
import { Button } from "@calcom/ui/components/button";
1311
import { Label, Select, TextArea, CheckboxField } from "@calcom/ui/components/form";
@@ -123,7 +121,6 @@ export default function CancelBooking(props: Props) {
123121
eventTypeMetadata,
124122
} = props;
125123
const [loading, setLoading] = useState(false);
126-
const telemetry = useTelemetry();
127124
const [error, setError] = useState<string | null>(booking ? null : t("booking_already_cancelled"));
128125
const [internalNote, setInternalNote] = useState<{ id: number; name: string } | null>(null);
129126
const [acknowledgeCancellationNoShowFee, setAcknowledgeCancellationNoShowFee] = useState(false);
@@ -171,7 +168,7 @@ export default function CancelBooking(props: Props) {
171168
node.scrollIntoView({ behavior: "smooth" });
172169
node.focus();
173170
}
174-
// eslint-disable-next-line react-hooks/exhaustive-deps
171+
175172
}, []);
176173

177174
return (
@@ -264,7 +261,7 @@ export default function CancelBooking(props: Props) {
264261
onClick={async () => {
265262
setLoading(true);
266263

267-
telemetry.event(telemetryEventTypes.bookingCancelled, collectPageParameters());
264+
// telemetry.event(telemetryEventTypes.bookingCancelled, collectPageParameters());
268265

269266
const response = await fetch("/api/csrf?sameSite=none", { cache: "no-store" });
270267
const { csrfToken } = await response.json();

apps/web/components/booking/__tests__/CancelBooking.cancellationFee.test.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,6 @@ vi.mock("@calcom/lib/hooks/useLocale", () => ({
5959
}),
6060
}));
6161

62-
vi.mock("@calcom/lib/hooks/useTelemetry", () => ({
63-
useTelemetry: () => ({
64-
event: vi.fn(),
65-
}),
66-
}));
67-
6862
vi.mock("@calcom/lib/hooks/useRefreshData", () => ({
6963
useRefreshData: () => vi.fn(),
7064
}));

apps/web/components/getting-started/steps-views/UserProfile.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ import { useRef, useState } from "react";
55
import { useForm } from "react-hook-form";
66

77
import { useLocale } from "@calcom/lib/hooks/useLocale";
8-
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
98
import { md } from "@calcom/lib/markdownIt";
10-
import { telemetryEventTypes } from "@calcom/lib/telemetry";
119
import turndown from "@calcom/lib/turndownService";
1210
import { localStorage } from "@calcom/lib/webstorage";
1311
import { trpc } from "@calcom/trpc/react";
@@ -39,7 +37,6 @@ const UserProfile = ({ user }: UserProfileProps) => {
3937
const utils = trpc.useUtils();
4038
const router = useRouter();
4139
const createEventType = trpc.viewer.eventTypesHeavy.create.useMutation();
42-
const telemetry = useTelemetry();
4340
const [firstRender, setFirstRender] = useState(true);
4441

4542
// Create a separate mutation for avatar updates
@@ -81,7 +78,7 @@ const UserProfile = ({ user }: UserProfileProps) => {
8178
const onSubmit = handleSubmit((data: { bio: string }) => {
8279
const { bio } = data;
8380

84-
telemetry.event(telemetryEventTypes.onboardingFinished);
81+
// telemetry.event(telemetryEventTypes.onboardingFinished);
8582

8683
mutation.mutate({
8784
bio,

apps/web/components/getting-started/steps-views/UserSettings.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"use client";
22

33
import { zodResolver } from "@hookform/resolvers/zod";
4-
import { useEffect } from "react";
54
import { useForm } from "react-hook-form";
65
import { z } from "zod";
76

@@ -10,8 +9,6 @@ import { useTimePreferences } from "@calcom/features/bookings/lib";
109
import { TimezoneSelect } from "@calcom/features/components/timezone-select";
1110
import { FULL_NAME_LENGTH_MAX_LIMIT } from "@calcom/lib/constants";
1211
import { useLocale } from "@calcom/lib/hooks/useLocale";
13-
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
14-
import { telemetryEventTypes } from "@calcom/lib/telemetry";
1512
import { trpc } from "@calcom/trpc/react";
1613
import type { RouterOutputs } from "@calcom/trpc/react";
1714
import { Button } from "@calcom/ui/components/button";
@@ -29,7 +26,6 @@ const UserSettings = (props: IUserSettingsProps) => {
2926
const { nextStep, user } = props;
3027
const { t } = useLocale();
3128
const { setTimezone: setSelectedTimeZone, timezone: selectedTimeZone } = useTimePreferences();
32-
const telemetry = useTelemetry();
3329
const userSettingsSchema = z.object({
3430
name: z
3531
.string()
@@ -50,9 +46,9 @@ const UserSettings = (props: IUserSettingsProps) => {
5046
resolver: zodResolver(userSettingsSchema),
5147
});
5248

53-
useEffect(() => {
49+
/*useEffect(() => {
5450
telemetry.event(telemetryEventTypes.onboardingStarted);
55-
}, [telemetry]);
51+
}, [telemetry]);*/
5652

5753
const utils = trpc.useUtils();
5854
const onSuccess = async () => {

apps/web/lib/app-providers-app-dir.tsx

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { TooltipProvider } from "@radix-ui/react-tooltip";
22
import type { Session } from "next-auth";
33
import { useSession } from "next-auth/react";
4-
import { EventCollectionProvider } from "next-collect/client";
54
import { ThemeProvider } from "next-themes";
65
import type { AppProps as NextAppProps } from "next/app";
76
import type { ReadonlyURLSearchParams } from "next/navigation";
@@ -113,27 +112,25 @@ const AppProviders = (props: PageWrapperProps) => {
113112

114113
const RemainingProviders = (
115114
<>
116-
<EventCollectionProvider options={{ apiPath: "/api/collect-events" }}>
117-
<TooltipProvider>
118-
{/* 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 */}
119-
<CalcomThemeProvider
120-
nonce={props.nonce}
121-
isThemeSupported={isThemeSupported}
122-
isBookingPage={props.isBookingPage || isBookingPage}>
123-
<NuqsAdapter>
124-
<FeatureFlagsProvider>
125-
{props.isBookingPage || isBookingPage ? (
115+
<TooltipProvider>
116+
{/* 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 */}
117+
<CalcomThemeProvider
118+
nonce={props.nonce}
119+
isThemeSupported={isThemeSupported}
120+
isBookingPage={props.isBookingPage || isBookingPage}>
121+
<NuqsAdapter>
122+
<FeatureFlagsProvider>
123+
{props.isBookingPage || isBookingPage ? (
124+
<OrgBrandProvider>{props.children}</OrgBrandProvider>
125+
) : (
126+
<DynamicIntercomProvider>
126127
<OrgBrandProvider>{props.children}</OrgBrandProvider>
127-
) : (
128-
<DynamicIntercomProvider>
129-
<OrgBrandProvider>{props.children}</OrgBrandProvider>
130-
</DynamicIntercomProvider>
131-
)}
132-
</FeatureFlagsProvider>
133-
</NuqsAdapter>
134-
</CalcomThemeProvider>
135-
</TooltipProvider>
136-
</EventCollectionProvider>
128+
</DynamicIntercomProvider>
129+
)}
130+
</FeatureFlagsProvider>
131+
</NuqsAdapter>
132+
</CalcomThemeProvider>
133+
</TooltipProvider>
137134
</>
138135
);
139136

apps/web/lib/app-providers.tsx

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { TooltipProvider } from "@radix-ui/react-tooltip";
22
import { dir } from "i18next";
33
import type { Session } from "next-auth";
44
import { useSession } from "next-auth/react";
5-
import { EventCollectionProvider } from "next-collect/client";
65
import { appWithTranslation } from "next-i18next";
76
import type { SSRConfig } from "next-i18next/dist/types/types";
87
import { ThemeProvider } from "next-themes";
@@ -279,29 +278,27 @@ const AppProviders = (props: AppPropsWithChildren) => {
279278
: props.Component.isBookingPage) || isBookingPage;
280279

281280
const RemainingProviders = (
282-
<EventCollectionProvider options={{ apiPath: "/api/collect-events" }}>
283-
<CustomI18nextProvider {...props}>
284-
<TooltipProvider>
285-
<CalcomThemeProvider
286-
themeBasis={props.pageProps.themeBasis}
287-
isThemeSupported={props.Component.isThemeSupported}
288-
isBookingPage={props.Component.isBookingPage || isBookingPage}
289-
router={props.router}>
290-
<NuqsAdapter>
291-
<FeatureFlagsProvider>
292-
{_isBookingPage ? (
281+
<CustomI18nextProvider {...props}>
282+
<TooltipProvider>
283+
<CalcomThemeProvider
284+
themeBasis={props.pageProps.themeBasis}
285+
isThemeSupported={props.Component.isThemeSupported}
286+
isBookingPage={props.Component.isBookingPage || isBookingPage}
287+
router={props.router}>
288+
<NuqsAdapter>
289+
<FeatureFlagsProvider>
290+
{_isBookingPage ? (
291+
<OrgBrandProvider>{props.children}</OrgBrandProvider>
292+
) : (
293+
<DynamicIntercomProvider>
293294
<OrgBrandProvider>{props.children}</OrgBrandProvider>
294-
) : (
295-
<DynamicIntercomProvider>
296-
<OrgBrandProvider>{props.children}</OrgBrandProvider>
297-
</DynamicIntercomProvider>
298-
)}
299-
</FeatureFlagsProvider>
300-
</NuqsAdapter>
301-
</CalcomThemeProvider>
302-
</TooltipProvider>
303-
</CustomI18nextProvider>
304-
</EventCollectionProvider>
295+
</DynamicIntercomProvider>
296+
)}
297+
</FeatureFlagsProvider>
298+
</NuqsAdapter>
299+
</CalcomThemeProvider>
300+
</TooltipProvider>
301+
</CustomI18nextProvider>
305302
);
306303

307304
if (isBookingPage) {

apps/web/middleware.test.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,6 @@ vi.mock("@vercel/edge-config", () => ({
1616
get: vi.fn(),
1717
}));
1818

19-
vi.mock("next-collect/server", () => ({
20-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
21-
collectEvents: vi.fn((config: any) => config.middleware),
22-
}));
23-
24-
vi.mock("@calcom/lib/telemetry", () => ({
25-
extendEventData: vi.fn(),
26-
nextCollectBasicSettings: {},
27-
}));
28-
2919
// Mock NextResponse.json since it's not available in test environment
3020
vi.mock("next/server", async () => {
3121
const actual = await vi.importActual<typeof import("next/server")>("next/server");

apps/web/middleware.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import { get } from "@vercel/edge-config";
2-
import { collectEvents } from "next-collect/server";
32
import type { NextRequest } from "next/server";
43
import { NextResponse } from "next/server";
54

65
import { checkRateLimitAndThrowError } from "@calcom/lib/checkRateLimitAndThrowError";
76
import getIP from "@calcom/lib/getIP";
87
import { HttpError } from "@calcom/lib/http-error";
98
import { piiHasher } from "@calcom/lib/server/PiiHasher";
10-
import { extendEventData, nextCollectBasicSettings } from "@calcom/lib/telemetry";
119

1210
import { getCspHeader, getCspNonce } from "@lib/csp";
1311

@@ -271,9 +269,4 @@ export const config = {
271269
matcher: ["/((?!_next(?:/|$)|static(?:/|$)|public(?:/|$)|favicon\\.ico$|robots\\.txt$|sitemap\\.xml$).*)"],
272270
};
273271

274-
export default collectEvents({
275-
middleware,
276-
...nextCollectBasicSettings,
277-
cookieName: "__clnds",
278-
extend: extendEventData,
279-
});
272+
export default middleware;

apps/web/modules/auth/login-view.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ import { emailRegex } from "@calcom/lib/emailSchema";
1717
import { getSafeRedirectUrl } from "@calcom/lib/getSafeRedirectUrl";
1818
import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
1919
import { useLocale } from "@calcom/lib/hooks/useLocale";
20-
import { useTelemetry } from "@calcom/lib/hooks/useTelemetry";
21-
import { collectPageParameters, telemetryEventTypes } from "@calcom/lib/telemetry";
2220
import { trpc } from "@calcom/trpc/react";
2321
import { Alert } from "@calcom/ui/components/alert";
2422
import { Button } from "@calcom/ui/components/button";
@@ -82,8 +80,6 @@ export default function Login({
8280
[ErrorCode.ThirdPartyIdentityProviderEnabled]: t("account_created_with_identity_provider"),
8381
};
8482

85-
const telemetry = useTelemetry();
86-
8783
let callbackUrl = searchParams?.get("callbackUrl") || "";
8884

8985
if (/"\//.test(callbackUrl)) callbackUrl = callbackUrl.substring(1);
@@ -147,7 +143,7 @@ export default function Login({
147143

148144
const onSubmit = async (values: LoginValues) => {
149145
setErrorMessage(null);
150-
telemetry.event(telemetryEventTypes.login, collectPageParameters());
146+
// telemetry.event(telemetryEventTypes.login, collectPageParameters());
151147
const res = await signIn<"credentials">("credentials", {
152148
...values,
153149
callbackUrl,

apps/web/modules/bookings/views/bookings-single-view.tsx

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -279,14 +279,6 @@ export default function Success(props: PageProps) {
279279
(!!seatReferenceUid &&
280280
!bookingInfo.seatsReferences.some((reference) => reference.referenceUid === seatReferenceUid));
281281

282-
// const telemetry = useTelemetry();
283-
/* useEffect(() => {
284-
if (top !== window) {
285-
//page_view will be collected automatically by _middleware.ts
286-
telemetry.event(telemetryEventTypes.embedView, collectPageParameters("/booking"));
287-
}
288-
}, [telemetry]); */
289-
290282
useEffect(() => {
291283
setDate(date.tz(localStorage.getItem("timeOption.preferredTimeZone") || CURRENT_TIMEZONE));
292284
setIs24h(props?.userTimeFormat ? props.userTimeFormat === 24 : !!getIs24hClockFromLocalStorage());

0 commit comments

Comments
 (0)