From 04c014d48b0b1c28c55be608374c550df95accee Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 25 May 2026 14:34:11 +0000 Subject: [PATCH] feat: add-product page --- src/app/add/page.tsx | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/app/add/page.tsx diff --git a/src/app/add/page.tsx b/src/app/add/page.tsx new file mode 100644 index 0000000..a2b43bc --- /dev/null +++ b/src/app/add/page.tsx @@ -0,0 +1,57 @@ +'use client' +import { useState } from 'react' +import { useRouter } from 'next/navigation' + +export default function AddPage() { + const [url, setUrl] = useState('') + const [submitting, setSubmitting] = useState(false) + const [error, setError] = useState(null) + const router = useRouter() + + async function submit(e: React.FormEvent) { + e.preventDefault() + setSubmitting(true) + setError(null) + try { + const res = await fetch('/api/products', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ url }), + }) + if (!res.ok) { + const j = await res.json().catch(() => ({ error: 'unknown' })) + setError(j.error || `HTTP ${res.status}`) + return + } + const { id } = await res.json() + router.push(`/products/${id}`) + } finally { + setSubmitting(false) + } + } + + return ( +
+

Produkt hinzufügen

+
+ setUrl(e.target.value)} + placeholder="https://www.amazon.de/dp/..." + className="w-full rounded border border-zinc-700 bg-zinc-900 px-3 py-2 text-sm" + /> +

Unterstützt: Amazon, Idealo, Geizhals

+ {error &&
{error}
} + +
+
+ ) +}