in progress
parent
5ccdcd087a
commit
abed426de2
@ -0,0 +1,90 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:test_sa/dashboard_latest/dashboard_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';
|
||||
import 'package:test_sa/extensions/widget_extensions.dart';
|
||||
import 'package:test_sa/new_views/app_style/app_color.dart';
|
||||
import 'package:test_sa/new_views/app_style/app_text_style.dart';
|
||||
import 'package:test_sa/views/app_style/sizing.dart';
|
||||
|
||||
class WeeklyCalendarFragment extends StatelessWidget {
|
||||
const WeeklyCalendarFragment({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// Generate the list of dates for the current week (3 days before and 3 days after today)
|
||||
List<DateTime> weekDates = getWeekDates();
|
||||
|
||||
return Consumer<DashBoardProvider>(
|
||||
builder: (context, snapshot, _) => GridView.builder(
|
||||
padding: const EdgeInsets.only(left: 16, right: 16),
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
|
||||
crossAxisCount: 7,
|
||||
childAspectRatio: 70 / 60,
|
||||
crossAxisSpacing: 2,
|
||||
mainAxisSpacing: 12,
|
||||
),
|
||||
itemCount: weekDates.length, // Now we have 7 items
|
||||
itemBuilder: (context, index) {
|
||||
DateTime date = weekDates[index];
|
||||
String formattedDate = DateFormat('EEE\ndd').format(date); // EEE: Day name, dd: Day number
|
||||
|
||||
return listItem(
|
||||
formattedDate, // Pass the formatted date
|
||||
snapshot.dashboardCount?.data?.countOpen ?? 0, // Adjust as needed
|
||||
context,
|
||||
snapshot.isAllCountLoading,
|
||||
index,
|
||||
AppColor.primary10,
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// Function to generate a list of dates for 3 days before and 3 days after the current date
|
||||
List<DateTime> getWeekDates() {
|
||||
DateTime today = DateTime.now();
|
||||
List<DateTime> weekDates = [];
|
||||
|
||||
for (int i = -3; i <= 3; i++) {
|
||||
weekDates.add(today.add(Duration(days: i)));
|
||||
}
|
||||
|
||||
return weekDates;
|
||||
}
|
||||
|
||||
Widget listItem(String formattedDate, int value, BuildContext context, bool isLoading, int index, Color iconColor) {
|
||||
return GestureDetector(
|
||||
onTap: isLoading
|
||||
? null
|
||||
: () {
|
||||
// Action on tapping the date (if required)
|
||||
},
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
8.height,
|
||||
Column(
|
||||
children: [
|
||||
Container(
|
||||
color: Colors.red,
|
||||
child: Text(
|
||||
formattedDate,
|
||||
style: AppTextStyles.tinyFont2,
|
||||
),
|
||||
),
|
||||
// Any other widgets you want to display (e.g. counts, icons)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue