mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-20 07:26:19 +00:00
feat(loading): redesigned loader with progress bar, task labels, configurable assets
Loading screen overhaul:
- LoadingView: Nitro V3 logo flush top-left, loading.gif at viewport
centre, large progress bar (max 900px / 90vw, h-8, gradient + glow)
anchored bottom-centre with the percentage rendered inside the bar in
Poppins, plus a friendly stage label underneath. Logo + background +
progress bar colour overridable via renderer-config keys
(loading.logo.url, loading.background, loading.progress.color).
- App.tsx: wired a real loadingProgress (0->100) + loadingTask driven by
the boot pipeline: config init (10), renderer (20), per-warmup-task
bumps for AssetManager/Localization/AvatarRender/SoundManager (25->70),
session managers (78/85/92), Communication (98), ready (100). Each bump
carries a task label looked up via a new taskLabel(key, fallback)
helper so the Italian baseline ("Sto caricando il guardaroba",
"Connessione al server", ...) can be translated by editing
renderer-config; fallback keeps current strings if the key is missing.
- AvatarEffectsView: replace raw fetch(url).json() with
loadGamedata(url) so the effectmap root manifest (JSON5 with
// comments) parses correctly and supports the core/custom/seasonal
tier merge.
- fallbackToLogin: respect login.screen.enabled=false. When login is
disabled (SSO-only deployments), init failures now route to
showSessionExpired() (home + diagnostic) instead of rendering an empty
LoginView placeholder.
- scripts/write-asset-loader.mjs: the pre-React shell rendered into
#root before the JS bundle takes over was a light-blue login skeleton
(linear gradient + two grey rectangles) producing a visible flash
before the real loader appeared. Replaced with the same
radial-gradient the LoadingView paints — the handoff is now invisible.
- renderer-config.example: document the 13 loader keys so operators can
copy & translate.
This commit is contained in:
@@ -48,6 +48,26 @@
|
||||
"timezone.settings": "Europe/Amsterdam",
|
||||
"youtube.publish.disabled": false,
|
||||
"user.badges.group.slot.enabled": true,
|
||||
|
||||
"_comment_loading_screen": "Schermata di caricamento — sostituibili per traduzione/branding. Logo, sfondo e colore della barra usano lo standard CSS (URL, gradient, colore esadecimale). Le label compaiono sotto la barra di progresso man mano che ogni fase del boot completa.",
|
||||
"loading.logo.url": "",
|
||||
"loading.background": "",
|
||||
"loading.progress.color": "linear-gradient(90deg,#4f8cff,#2563eb)",
|
||||
"loading.task.boot": "Avvio in corso...",
|
||||
"loading.task.session": "Verifica sessione",
|
||||
"loading.task.renderer": "Inizializzazione renderer",
|
||||
"loading.task.warmup": "Caricamento contenuti...",
|
||||
"loading.task.assets": "Sto caricando gli asset di gioco",
|
||||
"loading.task.localization": "Sto caricando le traduzioni",
|
||||
"loading.task.avatar": "Sto caricando il guardaroba",
|
||||
"loading.task.sounds": "Sto caricando i suoni",
|
||||
"loading.task.startsession": "Avvio sessione",
|
||||
"loading.task.userdata": "Caricamento dati utente",
|
||||
"loading.task.rooms": "Caricamento stanze",
|
||||
"loading.task.engine": "Caricamento engine grafico",
|
||||
"loading.task.connect": "Connessione al server",
|
||||
"loading.task.ready": "Pronto!",
|
||||
|
||||
"login.screen.enabled": true,
|
||||
"login.endpoint": "${api.url}/api/auth/login",
|
||||
"login.register.endpoint": "${api.url}/api/auth/register",
|
||||
|
||||
Reference in New Issue
Block a user