From 57df25505d89d57d40831fb23f2442c96c6a484b Mon Sep 17 00:00:00 2001 From: Benny Joo Date: Sat, 26 Apr 2025 09:21:11 -0300 Subject: [PATCH] =?UTF-8?q?perf:=20workflows=E2=80=94remove=20data=20fetch?= =?UTF-8?q?ing=20for=20metadata=20(#20734)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apps/installation/[[...step]]/page.tsx | 7 ++---- .../apps/routing-forms/[...pages]/page.tsx | 1 - .../workflows/[workflow]/page.tsx | 24 ------------------- .../(use-page-wrapper)/workflows/layout.tsx | 12 ++++++++++ .../app/(use-page-wrapper)/workflows/page.tsx | 14 +---------- apps/web/public/static/locales/en/common.json | 1 + 6 files changed, 16 insertions(+), 43 deletions(-) create mode 100644 apps/web/app/(use-page-wrapper)/workflows/layout.tsx diff --git a/apps/web/app/(use-page-wrapper)/apps/installation/[[...step]]/page.tsx b/apps/web/app/(use-page-wrapper)/apps/installation/[[...step]]/page.tsx index 49a6b84074..7e9f086c47 100644 --- a/apps/web/app/(use-page-wrapper)/apps/installation/[[...step]]/page.tsx +++ b/apps/web/app/(use-page-wrapper)/apps/installation/[[...step]]/page.tsx @@ -9,14 +9,11 @@ import { buildLegacyCtx } from "@lib/buildLegacyCtx"; import type { OnboardingPageProps } from "~/apps/installation/[[...step]]/step-view"; import Page from "~/apps/installation/[[...step]]/step-view"; -export const generateMetadata = async ({ params, searchParams }: PageProps) => { - const legacyCtx = buildLegacyCtx(await headers(), await cookies(), await params, await searchParams); - - const { appMetadata } = await getData(legacyCtx); +export const generateMetadata = async ({ params }: PageProps) => { const stepParam = (await params).step; const step = stepParam && Array.isArray(stepParam) ? stepParam.join("/") : ""; return await _generateMetadata( - (t) => `${t("install")} ${appMetadata?.name ?? ""}`, + (t) => t("app_installation"), () => "", undefined, undefined, diff --git a/apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/page.tsx b/apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/page.tsx index aa55435cb4..51d9a4ca2d 100644 --- a/apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/page.tsx +++ b/apps/web/app/(use-page-wrapper)/apps/routing-forms/[...pages]/page.tsx @@ -23,7 +23,6 @@ const normalizePages = (pages: string[] | string | undefined) => { export const generateMetadata = async ({ params }: { params: Promise<{ pages: string[] }> }) => { const { mainPage } = normalizePages((await params).pages); return await _generateMetadata( - // TODO: Need to show the actual form name instead of "Form" (t) => (mainPage === "routing-link" ? `Form | Cal.com Forms` : `${t("routing_forms")} | Cal.com Forms`), () => "", undefined, diff --git a/apps/web/app/(use-page-wrapper)/workflows/[workflow]/page.tsx b/apps/web/app/(use-page-wrapper)/workflows/[workflow]/page.tsx index b3ca5b722d..f160ee0b86 100644 --- a/apps/web/app/(use-page-wrapper)/workflows/[workflow]/page.tsx +++ b/apps/web/app/(use-page-wrapper)/workflows/[workflow]/page.tsx @@ -1,15 +1,11 @@ import type { PageProps } from "app/_types"; -import { _generateMetadata } from "app/_utils"; -import type { Metadata } from "next"; import { notFound } from "next/navigation"; -import { cache } from "react"; import { z } from "zod"; // import { cookies, headers } from "next/headers"; // import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; // import { buildLegacyRequest } from "@lib/buildLegacyCtx"; import LegacyPage from "@calcom/features/ee/workflows/pages/workflow"; -import { WorkflowRepository } from "@calcom/lib/server/repository/workflow"; const querySchema = z.object({ workflow: z @@ -20,26 +16,6 @@ const querySchema = z.object({ .transform((val) => Number(val)), }); -const getWorkflow = cache((id: number) => WorkflowRepository.getById({ id })); - -export const generateMetadata = async ({ params }: PageProps): Promise => { - const parsed = querySchema.safeParse(await params); - if (!parsed.success) { - notFound(); - } - const workflow = await getWorkflow(parsed.data.workflow); - if (!workflow) { - notFound(); - } - return await _generateMetadata( - (t) => (workflow && workflow.name ? workflow.name : t("untitled")), - () => "", - undefined, - undefined, - `/workflows/${parsed.data.workflow}` - ); -}; - const Page = async ({ params }: PageProps) => { // const session = await getServerSession({ req: buildLegacyRequest(await headers(), await cookies()) }); // const user = session?.user; diff --git a/apps/web/app/(use-page-wrapper)/workflows/layout.tsx b/apps/web/app/(use-page-wrapper)/workflows/layout.tsx new file mode 100644 index 0000000000..3bfbbd5186 --- /dev/null +++ b/apps/web/app/(use-page-wrapper)/workflows/layout.tsx @@ -0,0 +1,12 @@ +import { _generateMetadata } from "app/_utils"; +import type { ReactNode } from "react"; + +export const generateMetadata = async () => + await _generateMetadata( + (t) => t("workflows"), + (t) => t("workflows_to_automate_notifications") + ); + +export default function Layout({ children }: { children: ReactNode }) { + return <>{children}; +} diff --git a/apps/web/app/(use-page-wrapper)/workflows/page.tsx b/apps/web/app/(use-page-wrapper)/workflows/page.tsx index 2361a0235b..cca1bd6750 100644 --- a/apps/web/app/(use-page-wrapper)/workflows/page.tsx +++ b/apps/web/app/(use-page-wrapper)/workflows/page.tsx @@ -1,6 +1,3 @@ -import type { PageProps } from "app/_types"; -import { _generateMetadata } from "app/_utils"; - // import { cookies, headers } from "next/headers"; // import { getServerSession } from "@calcom/features/auth/lib/getServerSession"; // import { buildLegacyRequest } from "@lib/buildLegacyCtx"; @@ -8,16 +5,7 @@ import { _generateMetadata } from "app/_utils"; // import { WorkflowRepository } from "@calcom/lib/server/repository/workflow"; import LegacyPage from "@calcom/features/ee/workflows/pages/index"; -export const generateMetadata = async () => - await _generateMetadata( - (t) => t("workflows"), - (t) => t("workflows_to_automate_notifications"), - undefined, - undefined, - "/workflows" - ); - -const Page = async ({ params, searchParams }: PageProps) => { +const Page = async () => { // const session = await getServerSession({ req: buildLegacyRequest(await headers(), await cookies()) }); // const user = session?.user; diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index 1949e5c654..1750ad1004 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -1241,6 +1241,7 @@ "make_setup_instructions_6": "You're set!", "install_zapier_app": "Please first install the Zapier App in the app store.", "install_make_app": "Please first install the Make App in the app store.", + "app_installation": "App Installation", "app_not_installed": "App not installed", "visit_our_app_store": "Sorry, this app isn't installed on your account. Please visit our app store to explore and discover this and other great apps.", "connect_apple_server": "Connect to Apple Server",