import { useState } from 'react'; import { useUpdateShoppingItem, useDeleteShoppingItem } from '../api/queries.js'; import { useTranslation } from '../i18n/I18nContext.jsx'; import Icon from './Icon.jsx'; export default function ShoppingListItemRow({ item, listId }) { const updateItem = useUpdateShoppingItem(); const deleteItem = useDeleteShoppingItem(); const { t } = useTranslation(); const [editing, setEditing] = useState(false); const [name, setName] = useState(item.name); const [quantity, setQuantity] = useState(item.quantity || ''); function toggleChecked() { updateItem.mutate({ listId, itemId: item.id, checked: !item.checked }); } function saveEdit() { setEditing(false); if (!name.trim()) { setName(item.name); return; } updateItem.mutate({ listId, itemId: item.id, name: name.trim(), quantity: quantity.trim() || null }); } return (
{editing ? (
setName(e.target.value)} onBlur={saveEdit} onKeyDown={(e) => e.key === 'Enter' && saveEdit()} autoFocus /> setQuantity(e.target.value.replace(/\D/g, ''))} onBlur={saveEdit} onKeyDown={(e) => e.key === 'Enter' && saveEdit()} />
) : ( )}
); }