groceries_manager/lib/main.dart
2025-01-05 16:01:21 +07:00

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();
},
),
],
),
);
}
}