PWA offline error page + login page cleanup (#327)

* Add friendly PWA offline error page

When the PWA fails to connect to the server, users now see a branded
offline page with a friendly "technical difficulties" message, the
app logo, and a reload button. The page automatically attempts to
reload when connectivity is restored.

Changes:
- Created public/offline.html with branded offline experience
- Updated service worker to cache and serve offline page on network failures
- Added service worker registration in application.js
- Service worker now handles navigation requests with offline fallback

* Extract PWA offline logo to separate cached asset

Move the inline SVG logo from offline.html to a separate file at
public/logo-offline.svg. This makes the logo asset easily identifiable
and maintainable, as it may diverge from other logo versions in the future.

Changes:
- Created public/logo-offline.svg with the offline page logo
- Updated service worker to cache logo as part of OFFLINE_ASSETS array
- Updated fetch handler to serve cached offline assets
- Updated offline.html to reference logo file instead of inline SVG

* Update offline message for better readability

Signed-off-by: Juan José Mata <juanjo.mata@gmail.com>

* CodeRabbit comments

* Keep 40x and 50x flowing

* Dark mode

* Logo tweaks

* Login/sign up cleanup

---------

Signed-off-by: Juan José Mata <juanjo.mata@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Juan José Mata
2025-11-16 21:12:48 +01:00
committed by GitHub
parent 066fdf4ed5
commit d47aa2fe90
14 changed files with 208 additions and 21 deletions

View File

@@ -6,7 +6,6 @@ ca:
no_account: Nou a %{product_name}?
sign_in: Inicia sessió
sign_up: Crea un compte
your_account: El teu compte
shared:
footer:
privacy_policy: Política de privacitat

View File

@@ -6,7 +6,6 @@ en:
no_account: New to %{product_name}?
sign_in: Sign in
sign_up: Create account
your_account: Your account
shared:
footer:
privacy_policy: Privacy Policy

View File

@@ -6,7 +6,6 @@ es:
no_account: ¿Nuevo en %{product_name}?
sign_in: Iniciar sesión
sign_up: Crear cuenta
your_account: Tu cuenta
shared:
footer:
privacy_policy: Política de privacidad

View File

@@ -6,7 +6,6 @@ nb:
no_account: Ny hos %{product_name}?
sign_in: Logg inn
sign_up: Opprett konto
your_account: Din konto
shared:
footer:
privacy_policy: Personvernerklæring

View File

@@ -6,7 +6,6 @@ tr:
no_account: "%{product_name}'ye yeni misiniz?"
sign_in: Giriş yap
sign_up: Hesap oluştur
your_account: Hesabınız
shared:
footer:
privacy_policy: Gizlilik Politikası

View File

@@ -15,7 +15,7 @@ en:
forgot_password: Forgot your password?
password: Password
submit: Log in
title: Sign in to your account
title: Sure
password_placeholder: Enter your password
openid_connect: Sign in with OpenID Connect
google_auth_connect: Sign in with Google