Compare commits

...

2 Commits

@ -85,6 +85,7 @@ class AllRequestsProvider extends ChangeNotifier {
Future<int> getCalenderRequests({@required DateTime from, DateTime to}) async {
if (isCalendarLoading == true) return -2;
isCalendarLoading = true;
notifyListeners();
if (isCalendarLoading == null) notifyListeners();
Response response;
try {

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
@ -7,6 +8,7 @@ import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/calender_fragments/daily_fragment.dart';
import 'package:test_sa/new_views/pages/land_page/calender_fragments/weekly_fragment.dart';
import '../../../controllers/providers/api/all_requests_provider.dart';
import 'calender_fragments/monthly_fragment.dart';
class CalendarPage extends StatefulWidget {
@ -22,7 +24,7 @@ class _CalendarPageState extends State<CalendarPage> with SingleTickerProviderSt
@override
void initState() {
super.initState();
_tabController = TabController(length: 3, vsync: this);
_tabController = TabController(length: 3, vsync: this)..addListener(() {setState(() {});});
}
@override
@ -59,9 +61,6 @@ class _CalendarPageState extends State<CalendarPage> with SingleTickerProviderSt
labelStyle: AppTextStyles.bodyText,
indicatorPadding: const EdgeInsets.all(4),
indicator: BoxDecoration(color: context.isDark ? AppColor.neutral60 : Theme.of(context).cardColor, borderRadius: BorderRadius.circular(13)),
onTap: (index) {
setState(() {});
},
tabs: [
Tab(text: context.translation.monthly, height: 57.toScreenHeight),
Tab(text: context.translation.weekly, height: 57.toScreenHeight),

@ -7,6 +7,8 @@ import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import '../../../../controllers/providers/api/all_requests_provider.dart';
import '../../../../views/widgets/loaders/no_item_found.dart';
import '../../../app_style/app_color.dart';
import '../requests/asset_item_view.dart';
import '../requests/gas_refill_item_view.dart';
import '../requests/ppm_item_view.dart';
@ -28,11 +30,6 @@ class _DailyFragmentState extends State<DailyFragment> {
Provider.of<AllRequestsProvider>(context, listen: false).getCalenderRequests(from: DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day));
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
@ -43,7 +40,8 @@ class _DailyFragmentState extends State<DailyFragment> {
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
DateFormat("EEEE, d MMMM, yyyy", context.isAr ? "ar" : "en").format(DateTime.now()).heading5(context),
if (snapshot.calendarRequests?.requestsDetails?.isNotEmpty ?? false) const Divider().defaultStyle(context),
const Divider().defaultStyle(context),
if (snapshot.calendarRequests?.requestsDetails?.isEmpty ?? true) Center(child: context.translation.noDataFound.heading5(context).custom(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),).paddingOnly(top: 16,bottom: 16),
ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),

@ -37,11 +37,6 @@ class _WeeklyFragmentState extends State<WeeklyFragment> {
.getCalenderRequests(from: DateTime.now().subtract(Duration(days: DateTime.now().weekday)), to: DateTime.now().add(Duration(days: DateTime.daysPerWeek - DateTime.now().weekday - 1)));
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
@ -58,10 +53,12 @@ class _WeeklyFragmentState extends State<WeeklyFragment> {
weekendDays: const [],
onCalendarCreated: (controller) {},
onPageChanged: (date) {
if(!snapshot.isCalendarLoading){
_initialDate = date;
Provider.of<AllRequestsProvider>(context, listen: false)
.getCalenderRequests(from: date.subtract(Duration(days: date.weekday)), to: date.add(Duration(days: DateTime.daysPerWeek - date.weekday - 1)));
}
},
calendarBuilders: CalendarBuilders(
headerTitleBuilder: (context, dateTime) => Column(
@ -81,7 +78,18 @@ class _WeeklyFragmentState extends State<WeeklyFragment> {
return CalendarDaysCard(
day: day,
fill: snapshot.calendarRequests.requestsDetails?.firstWhere(
(element) => (element.date != null) && (DateTime.tryParse(element.date)?.difference(dateTime)?.inDays == 0),
(element) => (element.date != null) && (DateTime.tryParse(element.date).day == (dateTime)?.day),
orElse: () => null,
) !=
null,
).toShimmer(isShow: snapshot.isCalendarLoading);
},
outsideBuilder: (context, dateTime, _) {
final day = DateFormat("d").format(dateTime);
return CalendarDaysCard(
day: day,
fill: snapshot.calendarRequests.requestsDetails?.firstWhere(
(element) => (element.date != null) && (DateTime.tryParse(element.date).day == (dateTime)?.day),
orElse: () => null,
) !=
null,

Loading…
Cancel
Save