diff --git a/hesabixUI/hesabix_ui/web/flutter_bootstrap.js b/hesabixUI/hesabix_ui/web/flutter_bootstrap.js index b5ba4742..2773373e 100644 --- a/hesabixUI/hesabix_ui/web/flutter_bootstrap.js +++ b/hesabixUI/hesabix_ui/web/flutter_bootstrap.js @@ -33,5 +33,12 @@ hesabixStartFlutter().catch(function (e) { console.error('[Hesabix] Flutter bootstrap failed:', e); + var loaderUi = window.__hesabixLoaderUI; + if (loaderUi && typeof loaderUi.markSlowLoad === 'function') { + loaderUi.markSlowLoad(); + } + if (loaderUi && typeof loaderUi.showRetry === 'function') { + loaderUi.showRetry(); + } }); })(); diff --git a/hesabixUI/hesabix_ui/web/hesabix_web_loader.js b/hesabixUI/hesabix_ui/web/hesabix_web_loader.js index 80884d6d..7bee57dd 100644 --- a/hesabixUI/hesabix_ui/web/hesabix_web_loader.js +++ b/hesabixUI/hesabix_ui/web/hesabix_web_loader.js @@ -363,6 +363,7 @@ setStatus: setStatus, setStatusKey: setStatusKey, markSlowLoad: markSlowLoad, + showRetry: showRetry, hide: hideLoadingScreen, t: t, detectLocale: detectLocale, @@ -400,7 +401,10 @@ var screen = document.getElementById('flutter-loading-screen'); if (screen && !screen.classList.contains('hidden') && !appReadySignaled) { console.warn('[Hesabix] Loader fallback timeout'); - hideLoadingScreen(); + // Flutter may still be compiling or initializing. Keep the loader visible + // instead of exposing the intentionally empty web loading widget. + markSlowLoad(); + showRetry(); } }, 120000); })();