import React, { useState } from 'react';
// la modification des éléments de la liste n'est pas gérée ici
// à vous de le faire..
// la sauvegarde des données en localStorage n'est pas faite ici non plus..
// Item
// ====
const Item = ({item}) => <>
Name: {item.name}
Cost: {item.cost}€
Quantity: {item.quantity}
>;
// ItemsList
// =========
const ItemsList = ({items, updateItem, removeItem}) =>
{ items.map((item, idx) => (
- updateItem(idx, changes)} />
removeItem(idx)}> Remove
)) }
;
// AddItemForm
// ===========
const AddItemForm = ({addItem}) => {
const [currentText, setCurrentText] = useState('');
const handleSubmit = (e) => {
e.preventDefault();
addItem(currentText);
setCurrentText('');
};
return (
);
};
// GroceryApp
// ===========
const GroceryApp = () => {
const [items, setItems] = useState([]);
const addItem = (text) => {
setItems(items => [
{name: text, cost: 1, quantity: 1},
...items
]);
};
const removeItem = (index) => {
setItems(items => items.filter((i, idx) => idx !== index));
};
return <>
Grocery list
Total cost : { items.reduce((acc, i) => acc + i.cost * i.quantity, 0) }
>;
};
export default GroceryApp;