Linkul „Outlet” din subsol și din meniul Shop duce la o colecție care nu există
„Outlet" e scris în meniul Shop și în subsolul fiecărei pagini, iar colecția e
stinsă din panou. Filtrul de vizibilitate o scoate corect, dar abia după ce
răspunde /api/nav-visibility. Până atunci linkul e în pagină și duce la 404.
Ce am verificat pe producție, 29.08.2026
-
Colecția există și e nepublicată, nu lipsește:
GET /api/nav-visibilityîntoarce zece colecții, fărăoutlet./collections/outletrăspunde 404 — corect pentru o colecție stinsă. -
După încărcare linkul nu se vede. În DOM-ul de pe
hyperice.mdnu există niciun<a>cătreoutlet, în niciun loc. HTML-ul servit n-are subsol deloc, deci un crawler nu vede linkul niciodată. -
Gaura e fereastra de încărcare. Rulat direct pe
filterCollectionLinks:set publicat ce iese în subsol null(încă necunoscut)/gift-cards/shop/accessories/outlet/shopcunoscut /shop/accessories/shop/api/nav-visibilitydurează circa 190 ms pe producție; atât ține fereastra în care linkul e în pagină și se poate apăsa. -
Comportamentul e intenționat și scris în
frontend/src/data/navigation.ts:236-241: un link al cărui set n-a răspuns încă rămâne vizibil, ca meniul să nu clipească gol la încărcare. Acela e compromisul care lasă gaura.
Descrierea inițială spunea că linkul e vizibil pe fiecare pagină. Nu e — e vizibil doar în fereastra de încărcare. Restul cardului e rescris pe măsurători.
Decizia
Colecția rămâne stinsă și linkul rămâne în cod. Regula generală: ce e stins în panou nu se vede pe site în niciun moment al încărcării; ce se aprinde apare. Deci se închide fereastra, nu se scoate „Outlet" din meniu.
De făcut
-
Pagina pornește cu vizibilitatea știută, nu cu null— datele să vină odată cu pagina randată, nu printr-o cerere de după. Alternativa de a ascunde implicit până răspunde cererea reintroduce exact clipitul pe care comentariul dinnavigation.tsîl evită, deci nu e soluție. -
Meniul și subsolul nu clipesc gol la încărcare — verificat pe o legătură încetinită, nu doar pe una rapidă. -
Test care pică dacă un link către o colecție nepublicată apare în vreun moment al încărcării, nu doar la final. -
Verificare pe producție după deploy: linkul „Outlet" nu apare nici în prima frământare a paginii; aprinderea colecției din panou îl face să apară fără alt deploy.
Criteriu de acceptare
Pe producție, niciun link din subsol sau din meniul Shop nu duce la 404, în niciun moment al încărcării paginii. Aprinderea colecției din panou o face vizibilă, stingerea o ascunde, fără intervenție în cod.
Găsit la auditul de linkuri interne din #51 (closed).