Caruselul de categorii își ține locul cât timp se încarcă
Continuarea lui !35 (merged). Rezervarea grilei a dus /collections/shop-all de la 0,2999 la 0,112 pe producție — mult mai bine, dar tot peste pragul de 0,1 din checklistul de lansare. /collections/accessories, care n-are carusel de categorii, a ajuns la 0.
Ce rămăsese era un singur shift, al întregului <main>, care se mișcă doar dacă ceva de deasupra lui își schimbă înălțimea. Raportul Lighthouse îl arăta direct: body > div#root > div.flex > main#main, scor 0,112.
ShopCategoryRail stă în banda de deasupra lui <main> și aplatiza null în [] exact ca grila: rândul avea înălțime zero până răspundea /api/shop-categories, apoi își lua înălțimea și împingea pagina în jos.
De ce o singură celulă e exactă, nu aproximativă
Caruselul e un rând, iar înălțimea lui vine din cutia cardului, nu din câte carduri sunt. Măsurat pe build-ul real, la 375px:
| în încărcare | după | |
|---|---|---|
| celule în carusel | 1 | 6 |
| înălțime carusel | 160px | 160px |
top <main> |
476px | 476px |
<main> nu se mai mișcă deloc.
O cerere picată lasă caruselul strâns, exact ca azi, în loc să țină un rând pentru carduri care nu mai vin.
Testul a fost verificat că poate cădea: cu rezervarea scoasă, devine roșu.
Frontend: tsc --noEmit -p tsconfig.app.json curat, oxlint cu singurul avertisment preexistent din src/App.tsx:69, 215 teste în 27 de fișiere, build curat.
Part of #33 (closed)