import 'dart:io'; /// Une résolution DNS sans timeout peut rester pendante des dizaines de secondes /// sur un réseau captif (wifi de musée qui répond mais ne route pas). L'accueil /// attend ce résultat : mieux vaut se déclarer hors ligne et servir le contenu /// local que garder le visiteur devant un écran vide. Future hasNetwork() async { try { final result = await InternetAddress.lookup('google.be') .timeout(const Duration(seconds: 3)); return result.isNotEmpty && result[0].rawAddress.isNotEmpty; } catch (_) { return false; } }