initial commit
This commit is contained in:
94
lib/views/homePage.dart
Normal file
94
lib/views/homePage.dart
Normal file
@@ -0,0 +1,94 @@
|
||||
// ignore_for_file: file_names
|
||||
|
||||
import "package:flutter/material.dart";
|
||||
import "package:iiitb_menu/constants.dart";
|
||||
import "package:iiitb_menu/models/globalModel.dart";
|
||||
import "package:iiitb_menu/views/menuListView.dart";
|
||||
// import "package:iiitb_menu/widgets/itemCard.dart";
|
||||
// import "package:intl/intl.dart";
|
||||
import "package:provider/provider.dart";
|
||||
|
||||
class HomePage extends StatelessWidget {
|
||||
const HomePage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SafeArea(
|
||||
child: DefaultTabController(
|
||||
length: 4,
|
||||
child: Consumer<GlobalModel>(
|
||||
builder: (BuildContext context, GlobalModel data, Widget? child) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text("Daily ${data.menuTime} Menu"),
|
||||
bottom: TabBar(
|
||||
indicator: const UnderlineTabIndicator(
|
||||
insets: EdgeInsets.fromLTRB(10, 3, 10, 3)),
|
||||
onTap: (int index) {
|
||||
Provider.of<GlobalModel>(context, listen: false)
|
||||
.setMenuTime(index);
|
||||
},
|
||||
tabs: const [
|
||||
Tab(icon: Icon(Icons.breakfast_dining_outlined)),
|
||||
Tab(icon: Icon(Icons.lunch_dining_outlined)),
|
||||
Tab(icon: Icon(Icons.coffee_outlined)),
|
||||
Tab(icon: Icon(Icons.dinner_dining_outlined))
|
||||
]),
|
||||
actions: [
|
||||
InkWell(
|
||||
onTap: () {
|
||||
data.decrDate();
|
||||
},
|
||||
child: const Icon(
|
||||
Icons.arrow_left_rounded,
|
||||
size: 30,
|
||||
)),
|
||||
InkWell(
|
||||
onLongPress: () {
|
||||
showDatePicker(
|
||||
context: context,
|
||||
initialDate: data.currentDate,
|
||||
firstDate:
|
||||
data.currentDate.add(const Duration(days: -30)),
|
||||
lastDate:
|
||||
data.currentDate.add(const Duration(days: 30)));
|
||||
},
|
||||
onTap: () {
|
||||
data.setDateToToday();
|
||||
},
|
||||
child: Center(
|
||||
child: Text(
|
||||
data.date,
|
||||
),
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
data.incrDate();
|
||||
},
|
||||
child: const Icon(
|
||||
Icons.arrow_right_rounded,
|
||||
size: 30,
|
||||
)),
|
||||
],
|
||||
),
|
||||
body: TabBarView(
|
||||
children: data.menuAvailable
|
||||
? const [
|
||||
MenuListView(menuType: "bf"),
|
||||
MenuListView(menuType: "ln"),
|
||||
MenuListView(menuType: "sk"),
|
||||
MenuListView(menuType: "dn"),
|
||||
]
|
||||
: [
|
||||
noMenuWidget,
|
||||
noMenuWidget,
|
||||
noMenuWidget,
|
||||
noMenuWidget,
|
||||
]),
|
||||
);
|
||||
}),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
36
lib/views/menuListView.dart
Normal file
36
lib/views/menuListView.dart
Normal file
@@ -0,0 +1,36 @@
|
||||
// ignore_for_file: unnecessary_this, file_names
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:iiitb_menu/models/globalModel.dart';
|
||||
import 'package:iiitb_menu/widgets/itemCard.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class MenuListView extends StatelessWidget {
|
||||
const MenuListView({super.key, required this.menuType});
|
||||
final String menuType;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Consumer<GlobalModel>(
|
||||
builder: (BuildContext context, GlobalModel data, Widget? child) {
|
||||
// print(data.date);
|
||||
// print(data.mainData["dates"][data.date]);
|
||||
String menuIndex = data.mainData["dates"][data.date];
|
||||
return ListView.builder(
|
||||
itemCount: data.mainData["items"][this.menuType].length,
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
String itemType = data.mainData["items"][this.menuType][index];
|
||||
String itemName = data.mainData["menu"][menuIndex][this.menuType]
|
||||
[itemType]["name"];
|
||||
String itemVeggness = data.mainData["menu"][menuIndex]
|
||||
[this.menuType][itemType]["eggy"];
|
||||
return ItemCard(
|
||||
itemName: itemName,
|
||||
itemType: itemType,
|
||||
vegClass: itemVeggness,
|
||||
);
|
||||
});
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user