'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { createItem } from '@/lib/actions' import { Plus } from 'lucide-react' interface InlineItemCreateProps { listId: string } export default function InlineItemCreate({ listId }: InlineItemCreateProps) { const router = useRouter() const [isCreating, setIsCreating] = useState(false) const [title, setTitle] = useState('') const [isSubmitting, setIsSubmitting] = useState(false) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!title.trim() || isSubmitting) { return } setIsSubmitting(true) try { await createItem(listId, title.trim()) setTitle('') setIsCreating(false) router.refresh() } catch (error) { console.error('Error creating item:', error) } finally { setIsSubmitting(false) } } const handleCancel = () => { setTitle('') setIsCreating(false) } const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === 'Escape') { handleCancel() } } if (!isCreating) { return ( ) } return (
) }