main.dart 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import 'dart:ui';
  2. import 'package:http/http.dart' as http;
  3. import 'package:flutter/material.dart';
  4. import 'package:memorias_calculo/src/back/scoped_models/user_info_model.dart';
  5. import 'package:memorias_calculo/src/front/pages/calculadora_ambiental_page.dart';
  6. import 'package:memorias_calculo/src/front/pages/conectando_page.dart';
  7. import 'package:memorias_calculo/src/front/pages/error_page.dart';
  8. import 'package:memorias_calculo/src/front/pages/formulario_usuario_page.dart';
  9. import 'package:memorias_calculo/src/front/pages/index_page.dart';
  10. import 'package:memorias_calculo/src/front/pages/ventilacion_ambiental_page.dart';
  11. import 'package:memorias_calculo/src/front/pages/ventilacion_localizada_page.dart';
  12. import 'package:memorias_calculo/src/front/pages/ventilacion_estacionamientos_page.dart';
  13. import 'package:scoped_model/scoped_model.dart';
  14. void main() {
  15. runApp(const MyApp());
  16. }
  17. class MyApp extends StatefulWidget {
  18. const MyApp({Key? key}) : super(key: key);
  19. @override
  20. _MyAppState createState() => _MyAppState();
  21. }
  22. class _MyAppState extends State<MyApp> {
  23. final GlobalKey<NavigatorState> _navigatorKey = GlobalKey<NavigatorState>();
  24. bool _errorConexion = false;
  25. @override
  26. void initState() {
  27. super.initState();
  28. _connectServer();
  29. }
  30. void _connectServer() async{
  31. final url = Uri.parse("https://smart.solerpalau.mx/QA/api/v1/loginCliente");
  32. try{
  33. await http.post(url);
  34. }catch(e){
  35. _errorConexion = true;
  36. }
  37. if(_errorConexion) {
  38. _navigatorKey.currentState!.pushReplacementNamed("error");
  39. }else{
  40. _navigatorKey.currentState!.pushReplacementNamed("formulario");
  41. }
  42. }
  43. @override
  44. Widget build(BuildContext context) {
  45. final UserInfoModel _userInfoModel = UserInfoModel();
  46. return ScopedModel<UserInfoModel>(
  47. model: _userInfoModel,
  48. child: MaterialApp(
  49. navigatorKey: _navigatorKey,
  50. title: "Portal de memorias de cálculo",
  51. debugShowCheckedModeBanner: false,
  52. scrollBehavior: ScrollRules(),
  53. theme: ThemeData(
  54. brightness: Brightness.light,
  55. primaryColor: const Color(0xFFFF0000),
  56. splashColor: const Color.fromRGBO(180, 4, 4, 1),
  57. colorScheme: const ColorScheme.light(
  58. primary: Color.fromRGBO(180, 4, 4, 1),
  59. secondary: Color.fromRGBO(180, 4, 4, 1)
  60. ),
  61. ),
  62. initialRoute: "conectando",
  63. onGenerateRoute: (RouteSettings settings){
  64. var routes = <String, WidgetBuilder>{
  65. "conectando": (ctx) => ConectandoPage(),
  66. "error" : (ctx) => ErrorPage(),
  67. "formulario": (ctx) => FormularioUsuarioPage(),
  68. "index" : (ctx) => IndexPage(errorConexion: _errorConexion),
  69. "ventilacionLocalizada" : (ctx) => VentilacionLocalizadaPage(info: settings.arguments!),
  70. "ventilacionEstacionamientos" : (ctx) => VentilacionEstacionamientosPage(info: settings.arguments!),
  71. "ventilacionAmbiental" : (ctx) => VentilacionAmbientalPage(info: settings.arguments!, errorConexion: _errorConexion),
  72. };
  73. WidgetBuilder builder = routes[settings.name]!;
  74. return MaterialPageRoute(builder: (ctx) => builder(ctx));
  75. },
  76. ),
  77. );
  78. }
  79. }
  80. class ScrollRules extends MaterialScrollBehavior{
  81. // Override behavior methods and getters like dragDevices
  82. @override
  83. Set<PointerDeviceKind> get dragDevices => {
  84. PointerDeviceKind.touch,
  85. PointerDeviceKind.mouse,
  86. // etc.
  87. };
  88. }