import { useEffect } from 'react'; import { Page, Block, List, ListItem, Button, Spinner } from '@cap-rel/smartcommon'; import { useApi, useStates, useNavigation } from '@cap-rel/smartcommon'; export const ProductsPage = () => { const api = useApi(); const navigate = useNavigation(); const st = useStates({ initialStates: { products: [], loading: true, error: null } }); // Charger les produits useEffect(() => { loadProducts(); }, []); const loadProducts = async () => { st.set('loading', true); st.set('error', null); try { const data = await api.private.get('products').json(); st.set('products', data.products); } catch (err) { st.set('error', err.message); } finally { st.set('loading', false); } }; // Supprimer un produit const deleteProduct = async (id) => { if (!confirm('Supprimer ce produit ?')) return; try { await api.private.delete(`products/${id}`); // Retirer de la liste locale st.set('products', st.get('products').filter(p => p.id !== id)); } catch (err) { alert('Erreur : ' + err.message); } }; if (st.get('loading')) { return ; } if (st.get('error')) { return (

Erreur : {st.get('error')}

); } return ( {st.get('products').map(product => ( navigate(`/products/${product.id}`)} actions={ } /> ))} ); };