From c6a2d788f0ff671f47767a56df904d7ca89323f3 Mon Sep 17 00:00:00 2001 From: Konstantin Wohlwend Date: Sat, 25 Oct 2025 18:38:24 -0700 Subject: [PATCH 1/2] Fix apps page --- .../@modal/(.)apps/[appId]/page.tsx | 2 +- .../[projectId]/apps/[appId]/page.tsx | 3 ++- apps/dev-launchpad/public/favicon.ico | Bin 15406 -> 318 bytes 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page.tsx index ca262df10..debd4d572 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page.tsx @@ -5,7 +5,7 @@ export const generateStaticParams = async () => { return Object.keys(ALL_APPS).map(appId => ({ appId })); }; -export const dynamicParams = false; +export const dynamicParams = true; export default async function AppDetailsModalPage({ params }: { params: Promise<{ appId: AppId }> }) { const appId = (await params).appId; diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page.tsx index 824864e95..aa2a5b41a 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page.tsx @@ -2,10 +2,11 @@ import { ALL_APPS, AppId } from "@stackframe/stack-shared/dist/apps/apps-config" import AppDetailsPageClient from "./page-client"; export const generateStaticParams = async () => { + console.log("ALL_APPS", Object.keys(ALL_APPS).map(appId => ({ appId }))); return Object.keys(ALL_APPS).map(appId => ({ appId })); }; -export const dynamicParams = false; +export const dynamicParams = true; export default async function AppDetailsPage({ params }: { params: Promise<{ appId: AppId }> }) { const appId = (await params).appId; diff --git a/apps/dev-launchpad/public/favicon.ico b/apps/dev-launchpad/public/favicon.ico index a543c9ec2c843cd7d168c65c9c679f09640f1656..099b1db65c4555f7db6b80ccaaedaaabe4a34c4e 100644 GIT binary patch literal 318 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 Date: Sat, 25 Oct 2025 18:40:59 -0700 Subject: [PATCH 2/2] Fix apps --- .../[projectId]/@modal/(.)apps/[appId]/page.tsx | 10 ++++------ .../projects/[projectId]/apps/[appId]/page.tsx | 11 ++++------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page.tsx index debd4d572..60ce6a120 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/@modal/(.)apps/[appId]/page.tsx @@ -1,14 +1,12 @@ import { ALL_APPS, AppId } from "@stackframe/stack-shared/dist/apps/apps-config"; +import { notFound } from "next/navigation"; import AppDetailsModalPageClient from "./page-client"; -export const generateStaticParams = async () => { - return Object.keys(ALL_APPS).map(appId => ({ appId })); -}; - -export const dynamicParams = true; - export default async function AppDetailsModalPage({ params }: { params: Promise<{ appId: AppId }> }) { const appId = (await params).appId; + if (!(appId in ALL_APPS)) { + return notFound(); + } return ( diff --git a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page.tsx b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page.tsx index aa2a5b41a..64cfa3d03 100644 --- a/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page.tsx +++ b/apps/dashboard/src/app/(main)/(protected)/projects/[projectId]/apps/[appId]/page.tsx @@ -1,15 +1,12 @@ import { ALL_APPS, AppId } from "@stackframe/stack-shared/dist/apps/apps-config"; +import { notFound } from "next/navigation"; import AppDetailsPageClient from "./page-client"; -export const generateStaticParams = async () => { - console.log("ALL_APPS", Object.keys(ALL_APPS).map(appId => ({ appId }))); - return Object.keys(ALL_APPS).map(appId => ({ appId })); -}; - -export const dynamicParams = true; - export default async function AppDetailsPage({ params }: { params: Promise<{ appId: AppId }> }) { const appId = (await params).appId; + if (!(appId in ALL_APPS)) { + return notFound(); + } return (