diff --git a/frontend/package.json b/frontend/package.json index 1bde0c6..c2be4d3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "homehub-frontend", "private": true, - "version": "0.4.10", + "version": "0.4.11", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/components/shopping/CatalogueModal.tsx b/frontend/src/components/shopping/CatalogueModal.tsx index 8131383..1a8cbd4 100644 --- a/frontend/src/components/shopping/CatalogueModal.tsx +++ b/frontend/src/components/shopping/CatalogueModal.tsx @@ -2,6 +2,7 @@ import { useState, useEffect, useRef } from 'react' import type { Product, ProductCreate, Store } from '../../api/shopping' import { searchProducts, createProduct, updateProduct, deleteProduct } from '../../api/shopping' import Modal from '../Modal' +import { matchesSearch } from '../../utils/search' interface CatalogueModalProps { stores: Store[] @@ -43,16 +44,20 @@ export default function CatalogueModal({ stores, onClose }: CatalogueModalProps) useEffect(() => { void loadProducts() - }, [search]) + }, []) async function loadProducts() { try { - setProducts(await searchProducts(search || undefined)) + setProducts(await searchProducts()) } catch { setError('Erreur de chargement') } } + const filteredProducts = products.filter(p => + !search.trim() || matchesSearch(p.name, search) || matchesSearch(p.brand ?? '', search) || matchesSearch(p.category ?? '', search) + ) + function startCreate() { setForm(emptyForm) setEditing(null) @@ -289,12 +294,12 @@ export default function CatalogueModal({ stores, onClose }: CatalogueModalProps)
Aucun article{search ? ` pour "${search}"` : ''}
)} - {products.map(p => ( + {filteredProducts.map(p => (