in progress

design_3.0_latest
WaseemAbbasi22 1 year ago
parent 5ccdcd087a
commit abed426de2

@ -10,6 +10,7 @@ import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/new_views/common_widgets/tab_button.dart';
import 'package:test_sa/service_request_latest/views/components/weekly_calendar_fragment.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
class RequestCategoryFragment extends StatelessWidget {
@ -20,6 +21,9 @@ class RequestCategoryFragment extends StatelessWidget {
return Consumer<DashBoardProvider>(builder: (context, dashboardProvider, child) {
return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
context.translation.allWorkOrder.heading4(context).paddingOnly(start: 16, end: 16),
12.height,
const WeeklyCalendarFragment(),
12.height,
getTabs(
requestsProvider: dashboardProvider,
context: context,

@ -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…
Cancel
Save