passo_mobile_app/lib/screens/unit2/homepage.dart/components/menu-screen.dart

101 lines
3.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:unit2/model/offline/offlane_modules.dart';
import 'package:unit2/screens/offline/homepage/drawer.dart';
import 'package:unit2/screens/offline/homepage/menu_screen.dart';
import 'package:unit2/screens/unit2/homepage.dart/components/drawer-screen.dart';
import 'package:unit2/theme-data.dart/colors.dart';
import 'package:fluttericon/web_symbols_icons.dart';
import 'package:fluttericon/font_awesome5_icons.dart';
import 'package:unit2/utils/global_context.dart';
import '../../../../model/login_data/user_info/user_data.dart';
import 'menu.dart';
import '../../../../utils/global.dart';
class MenuScreen extends StatefulWidget {
final UserData? userData;
const MenuScreen({Key? key, required this.userData}) : super(key: key);
@override
State<MenuScreen> createState() => _MenuScreenState();
}
class _MenuScreenState extends State<MenuScreen> {
@override
Widget build(BuildContext context) {
return Drawer(
child: SizedBox(
height: screenHeight,
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Column(
children: <Widget>[
UserAccountsDrawerHeader(
currentAccountPictureSize: const Size.square(90),
decoration: const BoxDecoration(
color: primary,
image: DecorationImage(
image: AssetImage('assets/pngs/bg.png'),
fit: BoxFit.cover)),
accountName: null,
accountEmail: null,
currentAccountPicture: CircleAvatar(
radius: 100,
backgroundColor: fifth,
child: CircleAvatar(
radius: 100,
backgroundColor: third,
child: Image.asset(
'assets/pngs/capitol.png',
)),
),
),
getTile(FontAwesome5.user, "Basic Info", '/basic-info', context,
widget.userData!),
const Divider(),
getTile(FontAwesome5.user_circle, "Profile", '/profile',
context, widget.userData!),
const Divider(),
getTile(FontAwesome5.life_ring, "Request SOS", '/sos', context,
widget.userData!),
const Divider(),
SizedBox(
child: globalOfflineAvailable == true
? ListTile(
dense: true,
leading: const Icon(
Icons.exit_to_app,
color: primary,
),
title: const Text(
"Offline Mode",
style: TextStyle(color: Colors.black),
),
onTap: () async {
List<OfflineModules> modules = await OFFLINE!.get('modules');
Navigator.pushReplacement(NavigationService.navigatorKey.currentState!.context,
MaterialPageRoute(builder: ((context) {
return OfflineDrawerScreen(modules: modules,);
})));
},
)
: Container())
],
),
const Expanded(child: SizedBox()),
const Divider(),
Align(
alignment: FractionalOffset.bottomLeft,
child: getTile(
WebSymbols.logout, "Logout", '/', context, widget.userData!),
),
const SizedBox(
height: 10,
),
],
),
),
);
}
}