{data?.length ? (
diff --git a/apps/web/modules/settings/developer/components/CreateApiKeyButton.tsx b/apps/web/modules/settings/developer/components/CreateApiKeyButton.tsx
deleted file mode 100644
index 18a0171d07..0000000000
--- a/apps/web/modules/settings/developer/components/CreateApiKeyButton.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-"use client";
-
-import { useState } from "react";
-
-import type { TApiKeys } from "@calcom/ee/api-keys/components/ApiKeyListItem";
-import ApiKeyDialogForm from "@calcom/features/ee/api-keys/components/ApiKeyDialogForm";
-import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Button, Dialog, DialogContent } from "@calcom/ui";
-
-const NewApiKeyButton = () => {
- const { t } = useLocale();
- const [apiKeyModal, setApiKeyModal] = useState(false);
- const [apiKeyToEdit, setApiKeyToEdit] = useState<(TApiKeys & { neverExpires?: boolean }) | undefined>(
- undefined
- );
-
- return (
- <>
-
-
-
- >
- );
-};
-
-export default NewApiKeyButton;
diff --git a/apps/web/pages/settings/developer/api-keys.tsx b/apps/web/pages/settings/developer/api-keys.tsx
deleted file mode 100644
index a10eb1bb02..0000000000
--- a/apps/web/pages/settings/developer/api-keys.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
-
-import PageWrapper from "@components/PageWrapper";
-
-import ApiKeysView from "~/settings/developer/api-keys-view";
-
-const Page = () => {
- return
;
-};
-
-Page.getLayout = getLayout;
-Page.PageWrapper = PageWrapper;
-
-export default Page;
diff --git a/apps/web/pages/settings/developer/webhooks/[id]/index.tsx b/apps/web/pages/settings/developer/webhooks/[id]/index.tsx
deleted file mode 100644
index b9d17fe6d5..0000000000
--- a/apps/web/pages/settings/developer/webhooks/[id]/index.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
-import EditWebhookView from "@calcom/features/webhooks/pages/webhook-edit-view";
-import { APP_NAME } from "@calcom/lib/constants";
-import { useCompatSearchParams } from "@calcom/lib/hooks/useCompatSearchParams";
-import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { trpc } from "@calcom/trpc/react";
-import { SkeletonContainer, Meta } from "@calcom/ui";
-
-import PageWrapper from "@components/PageWrapper";
-
-const Page = () => {
- const searchParams = useCompatSearchParams();
- const id = searchParams?.get("id") ?? undefined;
- const { t } = useLocale();
-
- const { data: webhook } = trpc.viewer.webhook.get.useQuery(
- { webhookId: id },
- {
- suspense: true,
- enabled: !!id,
- }
- );
-
- if (!id) return
;
-
- // I think we should do SSR for this page
- return (
- <>
-
-
- >
- );
-};
-
-Page.getLayout = getLayout;
-Page.PageWrapper = PageWrapper;
-
-export default Page;
diff --git a/apps/web/pages/settings/developer/webhooks/index.tsx b/apps/web/pages/settings/developer/webhooks/index.tsx
deleted file mode 100644
index e23bb64712..0000000000
--- a/apps/web/pages/settings/developer/webhooks/index.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import { useSession } from "next-auth/react";
-
-import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
-import { CreateNewWebhookButton } from "@calcom/features/webhooks/components";
-import WebhooksView from "@calcom/features/webhooks/pages/webhooks-view";
-import { APP_NAME } from "@calcom/lib/constants";
-import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { UserPermissionRole } from "@calcom/prisma/enums";
-import { trpc } from "@calcom/trpc/react";
-import { Meta } from "@calcom/ui";
-
-import PageWrapper from "@components/PageWrapper";
-
-const Page = () => {
- const { t } = useLocale();
- const session = useSession();
- const isAdmin = session.data?.user.role === UserPermissionRole.ADMIN;
-
- const { data, isPending } = trpc.viewer.webhook.getByViewer.useQuery(undefined, {
- enabled: session.status === "authenticated",
- });
-
- return (
- <>
-
0 ?
: <>>}
- borderInShellHeader={(data && data.profiles.length === 1) || !data?.webhookGroups?.length}
- />
-
- >
- );
-};
-Page.getLayout = getLayout;
-Page.PageWrapper = PageWrapper;
-
-export default Page;
diff --git a/apps/web/pages/settings/developer/webhooks/new.tsx b/apps/web/pages/settings/developer/webhooks/new.tsx
deleted file mode 100644
index 981ddd73e7..0000000000
--- a/apps/web/pages/settings/developer/webhooks/new.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { getLayout } from "@calcom/features/settings/layouts/SettingsLayout";
-import WebhookNewView from "@calcom/features/webhooks/pages/webhook-new-view";
-import { APP_NAME } from "@calcom/lib/constants";
-import { useLocale } from "@calcom/lib/hooks/useLocale";
-import { Meta } from "@calcom/ui";
-
-import PageWrapper from "@components/PageWrapper";
-
-const Page = () => {
- const { t } = useLocale();
- return (
- <>
-
-
- >
- );
-};
-
-Page.PageWrapper = PageWrapper;
-Page.getLayout = getLayout;
-
-export default Page;
diff --git a/apps/web/playwright/fixtures/webhooks.ts b/apps/web/playwright/fixtures/webhooks.ts
index de5b0b37fc..18a65dea99 100644
--- a/apps/web/playwright/fixtures/webhooks.ts
+++ b/apps/web/playwright/fixtures/webhooks.ts
@@ -12,9 +12,9 @@ export function createWebhookPageFixture(page: Page) {
await page.waitForURL((u) => u.pathname === "/settings/developer/webhooks/new");
const url = page.url();
const teamId = Number(new URL(url).searchParams.get("teamId")) as number;
- await page.click('[data-testid="new_webhook"]');
await page.fill('[name="subscriberUrl"]', webhookReceiver.url);
await page.fill('[name="secret"]', "secret");
+ await expect(page.locator('[data-testid="create_webhook"]')).toBeEnabled();
await Promise.all([
page.click("[type=submit]"),
page.waitForURL((url) => url.pathname.endsWith("/settings/developer/webhooks")),
@@ -28,6 +28,7 @@ export function createWebhookPageFixture(page: Page) {
await page.click('[data-testid="new_webhook"]');
await page.fill('[name="subscriberUrl"]', webhookReceiver.url);
await page.fill('[name="secret"]', "secret");
+ await expect(page.locator('[data-testid="create_webhook"]')).toBeEnabled();
await Promise.all([
page.click("[type=submit]"),
page.waitForURL((url) => url.pathname.endsWith("/settings/developer/webhooks")),
diff --git a/apps/web/playwright/webhook.e2e.ts b/apps/web/playwright/webhook.e2e.ts
index f710dd2c9b..01376987fb 100644
--- a/apps/web/playwright/webhook.e2e.ts
+++ b/apps/web/playwright/webhook.e2e.ts
@@ -490,7 +490,6 @@ test.describe("MEETING_ENDED, MEETING_STARTED", async () => {
}, _testInfo) => {
const user = await users.create();
await user.apiLogin();
- const tomorrow = dayjs().add(1, "day");
const [eventType] = user.eventTypes;
bookings.create(user.id, user.name, eventType.id);
bookings.create(user.id, user.name, eventType.id, { startTime: dayjs().add(2, "day").toDate() });
@@ -659,7 +658,12 @@ test.describe("FORM_SUBMITTED", async () => {
webhookReceiver.close();
});
- test("on submitting team form, triggers team webhook", async ({ page, users, routingForms, webhooks }) => {
+ test("on submitting team form, triggers team webhook @test", async ({
+ page,
+ users,
+ routingForms,
+ webhooks,
+ }) => {
const user = await users.create(null, {
hasTeam: true,
});
@@ -814,7 +818,7 @@ test.describe("OOO_CREATED", async () => {
hasTeam: true,
});
await user.apiLogin();
- const { webhookReceiver, teamId } = await webhooks.createTeamReceiver();
+ const { webhookReceiver } = await webhooks.createTeamReceiver();
await page.goto("/settings/my-account/out-of-office");
diff --git a/apps/web/scripts/vercel-app-router-deploy.sh b/apps/web/scripts/vercel-app-router-deploy.sh
index ada94c4fe0..147732b27c 100755
--- a/apps/web/scripts/vercel-app-router-deploy.sh
+++ b/apps/web/scripts/vercel-app-router-deploy.sh
@@ -8,7 +8,6 @@ checkRoute () {
# This is to reduce the size of the build and prevent OOM errors
checkRoute "$APP_ROUTER_EVENT_TYPES_ENABLED" app/future/event-types
checkRoute "$APP_ROUTER_AVAILABILITY_ENABLED" app/future/availability
-checkRoute "$APP_ROUTER_SETTINGS_DEVELOPER_ENABLED" app/future/settings/developer
checkRoute "$APP_ROUTER_APPS_INSTALLED_CATEGORY_ENABLED" app/future/apps/installed
checkRoute "$APP_ROUTER_APPS_SLUG_ENABLED" app/future/apps/\[slug\]
checkRoute "$APP_ROUTER_APPS_SLUG_SETUP_ENABLED" app/future/apps/\[slug\]/setup
diff --git a/packages/features/webhooks/components/WebhookForm.tsx b/packages/features/webhooks/components/WebhookForm.tsx
index 9301e911c7..8138021297 100644
--- a/packages/features/webhooks/components/WebhookForm.tsx
+++ b/packages/features/webhooks/components/WebhookForm.tsx
@@ -346,6 +346,7 @@ const WebhookForm = (props: {