import { ButtonActionMenu } from "@/components/ButtonActionLoader"; import { RunWorkflowInline } from "@/components/RunWorkflowInline"; import { PublicRunOutputs } from "@/components/VersionSelect"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { db } from "@/db/db"; import { usersTable } from "@/db/schema"; import { getInputsFromWorkflow } from "@/lib/getInputsFromWorkflow"; import { getRelativeTime } from "@/lib/getRelativeTime"; import { setInitialUserData } from "@/lib/setInitialUserData"; import { cloneMachine, cloneWorkflow, findSharedDeployment, } from "@/server/curdDeploments"; import { auth, clerkClient } from "@clerk/nextjs/server"; import { eq } from "drizzle-orm"; import { redirect } from "next/navigation"; export const maxDuration = 300; // 5 minutes export default async function Page({ params, }: { params: { share_id: string }; }) { const { userId } = await auth(); // If there is user, check if the user data is present if (userId) { const user = await db.query.usersTable.findFirst({ where: eq(usersTable.id, userId), }); if (!user) { await setInitialUserData(userId); } } const sharedDeployment = await findSharedDeployment(params.share_id); if (!sharedDeployment) return redirect("/"); const userName = sharedDeployment.workflow.org_id ? await clerkClient.organizations .getOrganization({ organizationId: sharedDeployment.workflow.org_id, }) .then((x) => x.name) : sharedDeployment.user.name; const inputs = getInputsFromWorkflow(sharedDeployment.version); return (