import 'package:barcode_scanner/router/router.dart'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:responsive_framework/responsive_framework.dart'; class App extends StatelessWidget { const App({super.key}); @override Widget build(BuildContext context) { return ProviderScope(overrides: [routerProvider], child: _InnerApp()); } } class _InnerApp extends ConsumerWidget { const _InnerApp(); @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp.router( debugShowCheckedModeBanner: false, title: "BarcodeScan", theme: ThemeData( fontFamily: 'Roboto', scaffoldBackgroundColor: Colors.white, ), locale: Locale('fr'), supportedLocales: [Locale('fr', 'FR'), Locale('en', 'US')], localizationsDelegates: [ GlobalMaterialLocalizations.delegate, // Support for Material widgets GlobalWidgetsLocalizations.delegate, // Localization for widgets GlobalCupertinoLocalizations.delegate, // Support for Cupertino widgets ], routerConfig: ref.watch(routerProvider), builder: (context, widget) => ResponsiveBreakpoints.builder( child: _ResponsiveWrapper(child: widget ?? const SizedBox.shrink()), breakpoints: [ const Breakpoint(start: 0, end: 450, name: MOBILE), const Breakpoint(start: 451, end: 800, name: TABLET), ], ), ); } } class _ResponsiveWrapper extends StatelessWidget { const _ResponsiveWrapper({required this.child}); final Widget child; @override Widget build(BuildContext context) { return ResponsiveScaledBox( width: ResponsiveValue( context, conditionalValues: [ const Condition.equals(name: MOBILE, value: 450), const Condition.between(start: 800, end: 1100, value: 800), const Condition.between(start: 1000, end: 1200, value: 1000), ], ).value, child: child, ); } }