Panoul nu se mai deschide dacă limba stocată nu e româna
Un administrator care a comutat vreodată magazinul pe engleză sau rusă nu mai
poate deschide panoul: pagina rămâne albă, iar adresa sare între /admin/login
și /en/admin/login până se umple istoricul browserului.
Ce se întâmplă, verificat în browserul lui Vitalie
-
localStorage['hyperice.lang']="en". - Se deschide
https://hyperice.vevdev.com/admin— serverul răspunde 200. -
frontend/src/main.tsx:38-41: adresa nu are prefix, iar limba stocată nu e româna, deciwindow.location.replace('/en/admin'). -
/en/adminrăspunde 404. Nu e o scăpare:$spa_knowndinfrontend/nginx.conf:90scrie~^/admin(/.*)?$fără prefix, iar comentariul de la:69spune de ce — panoul e doar în română și stă în spatele unui login, deci/ru/adminnu e o pagină. - Corpul acelui 404 e învelișul aplicației, deci React pornește cu basename
/en, iar garda de autentificare trimite la/admin/login— care sub acel basename e/en/admin/login. - De fiecare dată când adresa ajunge fără prefix, pasul 3 se declanșează din nou.
Măsurat pe viu: history.length ajunsese la 50, plafonul browserului, iar
#root conținea doar <div class="min-h-screen" aria-hidden="true"></div> —
starea de așteptare goală. De aceea ecranul e alb: bucata rutei nu apucă
niciodată să se încarce.
Se reproduce identic pe producție: https://hyperice.md/en/admin/login răspunde
tot 404.
Cauza
Redirectul de limbă din main.tsx nu are nicio excepție pentru /admin.
Verificat: grep -n admin frontend/src/main.tsx frontend/src/lib/urlLanguage.ts
nu întoarce nimic. Redirectul e corect pentru magazin — un vizitator care a ales
engleza nu trebuie să aterizeze pe română — dar panoul nu are versiuni de limbă
și adresele lui prefixate nu există.
De făcut
-
Redirectul de limbă sare peste adresele de panou; /adminrămâne neprefixat, oricare ar fi limba stocată -
Test care pică dacă excepția dispare: cu hyperice.lang = "en", calea/adminnu se rescrie -
Verificare pe producție cu limba stocată pe engleză și pe rusă
Criteriu de acceptare
Cu hyperice.lang setat pe en sau ru, https://hyperice.md/admin deschide
ecranul de autentificare al panoului, fără redirect și fără pagină albă.
Magazinul își păstrează comportamentul: un vizitator cu engleza stocată care
deschide / ajunge în continuare pe /en/.