Skip to content

Panoul nu mai intră sub regulile magazinului

Vitalie requested to merge 67_admin-not-a-storefront-page into main

Două reguli ale magazinului se aplicau și panoului, unde n-au ce căuta.

Redirectul de limbă (#67 (closed))

Un vizitator care a ales cândva rusa sau engleza e trimis de la adresa fără prefix la cea prefixată. Pe /admin asta e o capcană: /en/admin răspunde 404 înadins — panoul e doar în română și stă în spatele unui login — iar învelișul servit de acel 404 pornește aplicația din nou pe o adresă fără prefix, deci regula se declanșează încă o dată.

Verificat pe viu, în browserul lui Vitalie, pe hyperice.vevdev.com: localStorage['hyperice.lang'] era "en", 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 era alb: bucata paginii de login nu apuca niciodată să se încarce. Ștergerea cheii a reparat instantaneu, ceea ce confirmă lanțul.

Regula s-a mutat lângă restul logicii de adrese, ca storedLanguageRedirect, unde un test o poate ține. Comportamentul magazinului rămâne neschimbat: cine a ales engleza și deschide / ajunge în continuare pe /en.

Bannerul de cookie-uri (#68 (closed))

Se randa lângă rute, deci nicio rută nu-l oprea. Panoul nu încarcă niciun script de analiză și n-are ce întreba, iar singurul cookie pe care îl folosește — hyperice_admin_session — e strict necesar și nu intră sub consimțământ.

Ambele întreabă acum același lucru, într-un singur loc: isAdminPath.

Verificare rulată

npm run lint, npm run build, npx vitest run în frontend/: 39 de fișiere, 486 de teste, toate trec. Singura avertizare de lint e cea preexistentă de la src/App.tsx.

Testele mușcă, verificat prin mutație:

  • scot excepția din storedLanguageRedirectexpected '/ru/admin' to be null;
  • scot condiția din App.tsxexpected <div role="region" …> to be null.

Closes #67 (closed) Closes #68 (closed)

Merge request reports