subpages changes

merge-requests/1/merge
Sultan Khan 4 years ago
parent 9248db1f78
commit da6b935c0b

@ -6,6 +6,7 @@ import 'package:mohem_flutter_app/ui/login/login_screen.dart';
import 'package:mohem_flutter_app/ui/login/new_password_screen.dart';
import 'package:mohem_flutter_app/ui/login/verify_last_login_screen.dart';
import 'package:mohem_flutter_app/ui/login/verify_login_screen.dart';
import 'package:mohem_flutter_app/ui/screens/submenu_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/missing_swipe/missing_swipe_screen.dart';
import 'package:mohem_flutter_app/ui/work_list/work_list_screen.dart';
@ -21,6 +22,7 @@ class AppRoutes {
static const String loginVerification = "/loginVerification";
static const String dashboard = "/dashboard";
static const String todayAttendance = "/todayAttendance";
static const String subMenuScreen = "/submenuScreen";
static const String initialRoute = login;
//Work List
@ -32,6 +34,8 @@ class AppRoutes {
verifyLogin: (context) => VerifyLoginScreen(),
verifyLastLogin: (context) => VerifyLastLoginScreen(),
dashboard: (context) => DashboardScreen(),
subMenuScreen: (context) => SubMenuScreen(),
newPassword: (context) => NewPasswordScreen(),
forgotPassword: (context) => ForgotPasswordScreen(),
todayAttendance: (context) => TodayAttendanceScreen(),

@ -46,7 +46,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
data.fetchWorkListCounter();
data.fetchMissingSwipe();
data.fetchLeaveTicketBalance();
// data.fetchMenuEntries();
data.fetchMenuEntries();
}
@override

@ -1,10 +1,13 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
import 'package:mohem_flutter_app/models/dashboard/menus.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart';
import 'package:provider/provider.dart';
@ -60,35 +63,39 @@ class ServicesWidget extends StatelessWidget {
aspectRatio: 105 / 105,
child: data.isServicesMenusLoading
? ServicesMenuShimmer()
: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SvgPicture.asset(iconT[index]),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: data.homeMenus![parentIndex].menuEntiesList[index].prompt!.toText11(isBold: true),
),
SvgPicture.asset("assets/images/arrow_next.svg").paddingOnly(bottom: 4)
],
)
],
).paddingOnly(left: 10, right: 10, bottom: 10, top: 12),
),
: InkWell(
onTap: () {
getSubmenus(context, data.getMenuEntriesList, data.homeMenus![parentIndex].menuEntiesList[index]);
},
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(15),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.05),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SvgPicture.asset(iconT[index]),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: data.homeMenus![parentIndex].menuEntiesList[index].prompt!.toText11(isBold: true),
),
SvgPicture.asset("assets/images/arrow_next.svg").paddingOnly(bottom: 4)
],
)
],
).paddingOnly(left: 10, right: 10, bottom: 10, top: 12),
)),
);
},
separatorBuilder: (cxt, index) => 9.width,
@ -107,6 +114,15 @@ class ServicesWidget extends StatelessWidget {
);
}
void getSubmenus(BuildContext context, List<GetMenuEntriesList>? menuEntries, GetMenuEntriesList? homeSubMenu) {
List<GetMenuEntriesList>? selectedMenu = menuEntries?.where((element) => element.parentMenuName == homeSubMenu?.menuName).toList();
Navigator.pushNamed(
context,
AppRoutes.subMenuScreen,
arguments: Menus(homeSubMenu!, selectedMenu!),
);
}
String firstWord(String value) {
return value.split(" ").length > 1 ? value.split(" ")[0] : "";
}

@ -0,0 +1,61 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
import 'package:mohem_flutter_app/models/dashboard/menus.dart';
import 'package:mohem_flutter_app/ui/app_bar.dart';
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
class SubMenuScreen extends StatelessWidget {
late Menus menu;
@override
Widget build(BuildContext context) {
menu = ModalRoute.of(context)!.settings.arguments as Menus;
return Scaffold(
backgroundColor: Colors.white,
appBar: appBar(
context,
title: menu.menuEntry.prompt.toString(),
),
body: Container(
width: double.infinity,
height: double.infinity,
child: Column(
children: menu.menuEntiesList.map((i) => rowItem(i)).toList(),
)),
);
}
Widget rowItem(GetMenuEntriesList obj) {
return InkWell(
onTap: () {},
child: Container(
width: double.infinity,
padding: EdgeInsets.all(12),
margin: EdgeInsets.only(top: 10),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
color: const Color(0xff000000).withOpacity(.1),
blurRadius: 26,
offset: const Offset(0, -3),
),
],
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [Text(obj.prompt.toString()), Icon(Icons.arrow_right)],
).paddingAll(6),
),
);
}
}
Loading…
Cancel
Save