import { Save, X } from "lucide-react"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Input, Textarea } from "@/components/ui/input"; import type { SeedKit } from "@/lib/seedKits"; interface SeedKitFormProps { initial?: Pick; onSubmit: (input: { name: string; description: string; lines: string[] }) => void; onCancel: () => void; submitLabel?: string; } export function SeedKitForm({ initial, onSubmit, onCancel, submitLabel = "Save kit", }: SeedKitFormProps) { const [name, setName] = useState(initial?.name ?? ""); const [description, setDescription] = useState(initial?.description ?? ""); const [linesText, setLinesText] = useState((initial?.lines ?? []).join("\n")); const [error, setError] = useState(null); function handleSubmit(e: React.FormEvent) { e.preventDefault(); const trimmedName = name.trim(); if (!trimmedName) { setError("Name is required"); return; } const lines = linesText .split("\n") .map((l) => l.trimEnd()) .filter((l) => l.length > 0); if (lines.length === 0) { setError("Add at least one line"); return; } setError(null); onSubmit({ name: trimmedName, description: description.trim(), lines }); } return (
setName(e.target.value)} placeholder="e.g. Personal core" />
setDescription(e.target.value)} placeholder="Short summary of what this kit seeds" />