tuuli_app/lib/main.dart

87 lines
2.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:tuuli_app/pages/checkup_page.dart';
import 'package:tuuli_app/pages/home_page.dart';
import 'package:tuuli_app/pages/login_page.dart';
import 'package:tuuli_app/pages/not_found_page.dart';
void main() async {
await GetStorage.init();
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return GetMaterialApp(
debugShowCheckedModeBanner: false,
debugShowMaterialGrid: false,
initialRoute: "/login",
onGenerateRoute: _onGenerateRoute,
theme: ThemeData(
brightness: Brightness.dark,
primaryColor: Colors.blueGrey,
),
);
}
Route _onGenerateRoute(RouteSettings settings) {
Widget? pageBody;
bool appBarNeeded = true;
switch (settings.name) {
case "/":
appBarNeeded = false;
pageBody = const CheckupPage();
break;
case "/login":
appBarNeeded = false;
pageBody = const LoginPage();
break;
case "/home":
pageBody = const HomePage();
break;
default:
pageBody = const NotFoundPage();
break;
}
return MaterialPageRoute(
builder: (context) => Scaffold(
appBar: appBarNeeded
? AppBar(
title: const Text('GWS Playground'),
actions: [
if (Navigator.of(context).canPop())
IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () {
Get.back(canPop: false);
},
),
IconButton(
icon: const Icon(Icons.home),
onPressed: () {
Get.offAllNamed("/");
},
),
IconButton(
icon: const Icon(Icons.logout),
onPressed: () {
GetStorage().erase().then((value) {
GetStorage().save();
Get.offAllNamed("/");
});
},
),
],
)
: null,
body: pageBody,
),
);
}
}