diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 1c44022..9005789 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -83,7 +83,8 @@ "Bash(git commit -m 'Fix: Import revalidatePath from correct module *)", "Bash(git commit -m 'Fix: Route photo requests to design canvas instead of approval upload *)", "Bash(git commit -m 'Fix: Pass photo request ID instead of data URL *)", - "Bash(git commit -m 'Feature: Add product selection when starting design from photo request *)" + "Bash(git commit -m 'Feature: Add product selection when starting design from photo request *)", + "Bash(git commit -m 'Refactor: Move start design server action to separate file *)" ] } } diff --git a/src/app/admin/custom-requests/[id]/start-design/actions.ts b/src/app/admin/custom-requests/[id]/start-design/actions.ts new file mode 100644 index 0000000..79e268e --- /dev/null +++ b/src/app/admin/custom-requests/[id]/start-design/actions.ts @@ -0,0 +1,14 @@ +'use server'; + +import { redirect } from 'next/navigation'; +import { prisma } from '@/lib/prisma'; + +export async function startDesignWithProduct(formData: FormData, customRequestId: string) { + const productId = String(formData.get('productId') ?? ''); + if (!productId) return; + + const product = await prisma.product.findUnique({ where: { id: productId } }); + if (product) { + redirect(`/made-to-order/${product.slug}?customRequestId=${customRequestId}`); + } +} diff --git a/src/app/admin/custom-requests/[id]/start-design/page.tsx b/src/app/admin/custom-requests/[id]/start-design/page.tsx index f6cc5cd..9eac0af 100644 --- a/src/app/admin/custom-requests/[id]/start-design/page.tsx +++ b/src/app/admin/custom-requests/[id]/start-design/page.tsx @@ -1,6 +1,7 @@ -import { notFound, redirect } from 'next/navigation'; +import { notFound } from 'next/navigation'; import { prisma } from '@/lib/prisma'; import AdminNav from '@/components/AdminNav'; +import { startDesignWithProduct } from './actions'; export default async function StartDesignPage({ params }: { params: { id: string } }) { const request = await prisma.customRequest.findUnique({ @@ -14,15 +15,6 @@ export default async function StartDesignPage({ params }: { params: { id: string orderBy: { name: 'asc' }, }); - const handleSubmit = async (formData: FormData) => { - 'use server'; - const productId = String(formData.get('productId') ?? ''); - const product = await prisma.product.findUnique({ where: { id: productId } }); - if (product) { - redirect(`/made-to-order/${product.slug}?customRequestId=${request.id}`); - } - }; - return (
Originally requested for: {request.product.name}