"use client"; import { ArrowLeft } from "lucide-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { AdminItemForm, type ItemFormPayload } from "./AdminItemForm"; import { ItemAiAssistant, type ItemAiPrefill } from "./ItemAiAssistant"; interface AdminItemCreatePageProps { locale: string; categories: string[]; serverOptions: string[]; } export function AdminItemCreatePage({ locale, categories, serverOptions, }: AdminItemCreatePageProps) { const router = useRouter(); const [submitting, setSubmitting] = useState(false); const [error, setError] = useState(null); const [prefillData, setPrefillData] = useState(null); const goBackToList = () => { router.push(`/${locale}/admin?tab=items`); }; const handleSubmit = async (payload: ItemFormPayload) => { setSubmitting(true); setError(null); try { const body: Record = { name: payload.name, category: payload.category, rarity: payload.rarity, imageUrl: payload.imageUrl, imageLocalPath: payload.imageLocalPath, level: payload.level, weight: payload.weight, slots: payload.slots, skill: payload.skill, description: payload.description, servers: payload.servers, tags: payload.tags, metadata: payload.metadata, fields: payload.fields, server: payload.server ?? null, }; const response = await fetch("/api/admin/items", { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body), }); if (!response.ok) { const data = await response .json() .catch(() => ({ error: "Erro ao criar item" })); throw new Error(data?.error || data?.message || "Falha ao criar item"); } goBackToList(); } catch (err) { console.error(err); setError( err instanceof Error ? err.message : "Erro ao criar item. Tente novamente.", ); } finally { setSubmitting(false); } }; return (

Novo item

Utilize a seção de IA abaixo para gerar automaticamente campos sugeridos a partir de prints e descrições. Ajuste o que for necessário antes de publicar.

{ setPrefillData({ ...prefill, metadata: { aiStructure: json ?? null, ...prefill.metadata, }, }); }} /> {error && (
{error}
)}
); }