Skip to content

Ecran de eroare în loc de pagină albă când API-ul nu răspunde

Vitalie requested to merge 15_api-down-fallback into main

Închide #15 (closed).

Cu backendul căzut, vizitatorul vedea o pagină complet albă: fără antet, fără subsol, fără mesaj. Cauza era un throw dintr-un .catch de promisiune, care nu ajunge niciodată la React, plus lipsa oricărei plase de siguranță la randare.

Acum o cerere picată randează un ecran de eroare comun, care păstrează antetul, subsolul și un buton de reîncercare, iar o barieră în jurul rutelor prinde ce paginile nu pot prevedea. Textele sunt în fișierele de traducere, în toate cele trei limbi.

Două lucruri găsite la verificare și reparate în același MR:

  • Bariera nu se reseta. După ce prindea o eroare, ecranul afișa antetul cu meniul funcțional, dar orice link schimba doar adresa — conținutul rămânea pagina de eroare. Arăta ca un site care răspunde și nu face nimic, adică mai rău decât pagina albă. Bariera primește acum calea ca cheie de resetare.
  • Ecranul de rezervă avea nevoie de rețea. Pagina de eroare se încarcă la cerere, ca antetul și subsolul ei să nu intre în pachetul de intrare — dar „un chunk nu s-a descărcat" e exact unul dintre cazurile pe care bariera le prinde, iar un import respins aruncă din nou, pe lângă barieră, înapoi în pagina albă. Acum cade pe un ecran construit doar din markup, care nu are cum să nu ajungă.

Verificat: tsc curat, build reușit, 221 de teste în 28 de fișiere. Ambele defecte au test propriu.

Merge request reports