60 lines
1.5 KiB
Dart
60 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import 'package:get/get.dart';
|
|
import 'package:toastification/toastification.dart';
|
|
|
|
import 'db/database.dart';
|
|
import 'pages/login/login_controller.dart';
|
|
import 'pages/login/login_page.dart';
|
|
import 'pages/main/home_controller.dart';
|
|
import 'pages/main/home_page.dart';
|
|
import 'pages/redirect/redirect_controller.dart';
|
|
import 'pages/redirect/redirect_page.dart';
|
|
import 'services/db_service.dart';
|
|
import 'services/toaster_service.dart';
|
|
|
|
void main() async {
|
|
Get.put(ToasterService());
|
|
|
|
await Get.put(DBService()).init();
|
|
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
runApp(const MainApp());
|
|
}
|
|
|
|
class MainApp extends StatelessWidget {
|
|
const MainApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ToastificationWrapper(
|
|
child: GetMaterialApp(
|
|
debugShowCheckedModeBanner: false,
|
|
initialRoute: "/",
|
|
getPages: [
|
|
GetPage(
|
|
name: "/",
|
|
page: () {
|
|
final user = Get.arguments;
|
|
if (user is! UserData) {
|
|
Get.put(RedirectController(redirectTo: "/login"));
|
|
return RedirectPage();
|
|
}
|
|
|
|
Get.put(HomeController(), permanent: true).setUser(user);
|
|
return const HomePage();
|
|
},
|
|
),
|
|
GetPage(
|
|
name: "/login",
|
|
page: () {
|
|
Get.put(LoginController());
|
|
return const LoginPage();
|
|
},
|
|
),
|
|
],
|
|
),
|
|
);
|
|
}
|
|
}
|