main.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/services.dart';
  3. import 'package:provider/provider.dart';
  4. import 'package:sqflite_common_ffi/sqflite_ffi.dart';
  5. import 'dart:io';
  6. import 'mvvm/views/home/home_screen.dart';
  7. import 'mvvm/views/login/login_screen.dart';
  8. import '/utils/themes.dart';
  9. import 'mvvm/viewmodels/login_view_model.dart';
  10. import 'mvvm/viewmodels/sucursal_view_model.dart';
  11. import 'package:timezone/data/latest.dart' as tzdata;
  12. void main() async {
  13. WidgetsFlutterBinding.ensureInitialized();
  14. tzdata.initializeTimeZones();
  15. // Inicialización de la base de datos para plataformas de escritorio con FFI
  16. if (Platform.isWindows || Platform.isLinux) {
  17. sqfliteFfiInit();
  18. databaseFactory = databaseFactoryFfi;
  19. }
  20. SystemChrome.setPreferredOrientations([
  21. DeviceOrientation.landscapeRight,
  22. DeviceOrientation.landscapeLeft,
  23. ]).then((_) {
  24. runApp(MultiProvider(providers: [
  25. ChangeNotifierProvider(create: (_) => LoginViewModel()),
  26. ChangeNotifierProvider(create: (_) => SucursalViewModel()),
  27. // Agrega aquí cualquier otro provider que necesites
  28. ], child: const MyApp()));
  29. });
  30. }
  31. class MyApp extends StatelessWidget {
  32. const MyApp({super.key});
  33. @override
  34. Widget build(BuildContext context) {
  35. return MaterialApp(
  36. locale: const Locale("en", "ES"),
  37. debugShowCheckedModeBanner: false,
  38. title: 'Turquessa',
  39. theme: AppTheme.lightTheme,
  40. initialRoute: 'login',
  41. routes: {
  42. 'login': (context) => const LoginScreen(),
  43. 'home': (context) => const HomeScreen(),
  44. },
  45. );
  46. }
  47. }