feat: web layout — mobile-frame container on desktop browsers

This commit is contained in:
Patrick Schurig ETM-Schurig 2026-05-28 22:56:48 +02:00
parent e42412fef8
commit 0a6cde914c

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'providers/app_settings_provider.dart';
import 'providers/energy_setup_provider.dart';
@ -156,6 +157,34 @@ class NymeaEnergyApp extends StatelessWidget {
debugShowCheckedModeBanner: false,
theme: AppTheme.theme,
routerConfig: _router,
builder: (context, child) {
// Sur mobile natif, on rend tel quel
if (!kIsWeb) return child!;
// Sur web : si la fenêtre est déjà étroite (smartphone qui visite la PWA),
// on rend plein écran. Sur desktop, on encadre dans un viewport "mobile".
final width = MediaQuery.sizeOf(context).width;
if (width < 600) return child!;
return Container(
color: const Color(0xFF0a1f2b), // navy ETM en arrière-plan
alignment: Alignment.center,
child: Container(
constraints: const BoxConstraints(maxWidth: 440, maxHeight: 900),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(24),
boxShadow: [
BoxShadow(
color: Colors.black.withValues(alpha: 0.5),
blurRadius: 40,
),
],
),
child: ClipRRect(
borderRadius: BorderRadius.circular(24),
child: child,
),
),
);
},
);
}
}