feat(block2): global 'you're offline' banner (network state)

Feedback: offline, the social layer stops working with no clear reason. A slim
amber strip now shows above every screen when there's no network (connectivity_
plus), so it's obvious WHY sharing is paused — the inventory keeps working.
Wrapped once via the MaterialApp builder; connectivity check is guarded so it
no-ops where the plugin is absent (tests/unsupported platforms). i18n en/es/pt.
Analyzer clean.
This commit is contained in:
vjrj 2026-07-10 15:18:16 +02:00
parent 5741d6bde8
commit 1ac954a09e
11 changed files with 135 additions and 5 deletions

View file

@ -8,7 +8,8 @@
"delete": "Delete",
"edit": "Edit",
"type": "Type",
"comingSoon": "Coming soon"
"comingSoon": "Coming soon",
"offline": "You're offline — sharing is paused"
},
"home": {
"tagline": "Share and grow local seeds",

View file

@ -8,7 +8,8 @@
"delete": "Eliminar",
"edit": "Editar",
"type": "Tipo",
"comingSoon": "Pronto"
"comingSoon": "Pronto",
"offline": "Sin conexión — el compartir está en pausa"
},
"home": {
"tagline": "Comparte y cultiva semillas locales",

View file

@ -8,7 +8,8 @@
"delete": "Eliminar",
"edit": "Editar",
"type": "Tipo",
"comingSoon": "Em breve"
"comingSoon": "Em breve",
"offline": "Sem ligação — a partilha está em pausa"
},
"home": {
"tagline": "Partilha e cultiva sementes locais",

View file

@ -4,9 +4,9 @@
/// To regenerate, run: `dart run slang`
///
/// Locales: 3
/// Strings: 1073 (357 per locale)
/// Strings: 1076 (358 per locale)
///
/// Built on 2026-07-10 at 11:35 UTC
/// Built on 2026-07-10 at 13:17 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import

View file

@ -113,6 +113,9 @@ class Translations$common$en {
/// en: 'Coming soon'
String get comingSoon => 'Coming soon';
/// en: 'You're offline sharing is paused'
String get offline => 'You\'re offline — sharing is paused';
}
// Path: home
@ -1755,6 +1758,7 @@ extension on Translations {
'common.edit' => 'Edit',
'common.type' => 'Type',
'common.comingSoon' => 'Coming soon',
'common.offline' => 'You\'re offline — sharing is paused',
'home.tagline' => 'Share and grow local seeds',
'home.openMarket' => 'Market',
'home.openMarketSubtitle' => 'Discover and share seeds nearby',

View file

@ -98,6 +98,7 @@ class _Translations$common$es extends Translations$common$en {
@override String get edit => 'Editar';
@override String get type => 'Tipo';
@override String get comingSoon => 'Pronto';
@override String get offline => 'Sin conexión — el compartir está en pausa';
}
// Path: home
@ -1057,6 +1058,7 @@ extension on TranslationsEs {
'common.edit' => 'Editar',
'common.type' => 'Tipo',
'common.comingSoon' => 'Pronto',
'common.offline' => 'Sin conexión — el compartir está en pausa',
'home.tagline' => 'Comparte y cultiva semillas locales',
'home.openMarket' => 'Mercado',
'home.openMarketSubtitle' => 'Descubre y comparte semillas cerca',

View file

@ -98,6 +98,7 @@ class _Translations$common$pt extends Translations$common$en {
@override String get edit => 'Editar';
@override String get type => 'Tipo';
@override String get comingSoon => 'Em breve';
@override String get offline => 'Sem ligação — a partilha está em pausa';
}
// Path: home
@ -1053,6 +1054,7 @@ extension on TranslationsPt {
'common.edit' => 'Editar',
'common.type' => 'Tipo',
'common.comingSoon' => 'Em breve',
'common.offline' => 'Sem ligação — a partilha está em pausa',
'home.tagline' => 'Partilha e cultiva sementes locais',
'home.openMarket' => 'Mercado',
'home.openMarketSubtitle' => 'Descobre e partilha sementes por perto',