Listare produse

1. Generarea unor produse în baza de date

Primul pas înainte de a crea componentele necesare pentru afișarea produselor este generarea efectivă a acestora în baza de date. Produsele trebuie să respecte structura modelului definit în baza de date, incluzând toate câmpurile necesare (name, description, price, category, image, stock).

Lista de produse pe care urmează să le generăm este următoarea:

Fiecare produs din listă trebuie creat printr-un request de tip POST în Postman, incluzând toate câmpurile produsului în body-ul request-ului. Astfel, baza de date va fi populată cu produse reale, gata pentru a fi afișate în interfața aplicației.

2. Crearea metodei de GET care va prelua lista de produse

Generăm fișierul product.routes.js definește funcția de GET pentru produse:

3. Actualizarea componentei ProductsPage

După ce am adăugat rute care preia toate produsele din baza de date, este nevoie să actualizăm componenta ProductsPage.jsx care va face un request către baza de date pentru a prelua documentele și pentru a le lista în pagină.

Această componentă utilizează useEffect pentru a încărca produsele la montarea componentului și useState pentru gestionarea datelor locale. Se integrează cu Redux pentru a verifica rolul utilizatorului curent.

circle-info

Explicații detaliate

  • useEffect + fetchProducts: La montarea componentei, se face un request asincron către API pentru a prelua lista de produse.

  • Stări locale (useState): products pentru date, loading pentru afișarea spinnerului, error pentru mesajele de eroare.

  • Redux (useSelector): Se verifică rolul utilizatorului curent pentru a activa funcționalitățile de admin (edit/delete).

  • Afișarea produselor: Produsele sunt afișate într-un grid responsive cu TailwindCSS. Dacă lista e goală sau apare o eroare, se afișează un mesaj corespunzător.

  • Admin overlay: Butoanele pentru editare și ștergere apar doar la utilizatori cu rol de admin și se afișează la hover pe produs.

Listarea produselor

Last updated