1import 'dart:developer';
3import 'package:easy_localization/easy_localization.dart';
4import 'package:flutter/material.dart';
6import '../../../../../core/ui/theme/color_palette.dart';
12 required this.onTimeRangeChanged,
19class _TimeSelectorState
extends State<TimeSelector> {
22 DateTime
_startDate = DateTime.now().subtract(Duration(days: DateTime.now().weekday - 1));
26 Widget
build(BuildContext context) {
28 padding:
const EdgeInsets.all(8),
29 decoration: BoxDecoration(
31 borderRadius: BorderRadius.circular(20),
36 offset:
const Offset(0, 10),
45 child: GestureDetector(
48 "common.this_week".tr(),
54 child: GestureDetector(
57 "common.this_month".tr(),
63 child: GestureDetector(
69 "dashboard.custom".tr(),
78 padding:
const EdgeInsets.all(8.0),
80 mainAxisAlignment: MainAxisAlignment.center,
100 return DateFormat(
'dd MMM').format(
date);
105 margin:
const EdgeInsets.all(4),
106 padding:
const EdgeInsets.symmetric(vertical: 12),
107 decoration: BoxDecoration(
109 borderRadius: BorderRadius.circular(12),
113 textAlign: TextAlign.center,
116 fontWeight:
isSelected ? FontWeight.bold : FontWeight.w500,
125 padding:
const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
126 decoration: BoxDecoration(
128 borderRadius: BorderRadius.circular(12),
131 mainAxisSize: MainAxisSize.min,
135 style:
const TextStyle(
143 style:
const TextStyle(
145 fontWeight: FontWeight.bold,
156 final DateTimeRange? pickedDateRange = await showDateRangePicker(
157 lastDate: DateTime.now(),
159 firstDate: DateTime(2025),
160 builder: (context,
child) {
162 data: Theme.of(context).copyWith(
163 colorScheme:
const ColorScheme.light(
175 if (pickedDateRange != null) {
189 _startDate = DateTime.now().subtract(Duration(days: DateTime.now().weekday - 1));
191 widget.onTimeRangeChanged(
'week');
194 _startDate = DateTime(DateTime.now().year, DateTime.now().month, 1);
196 widget.onTimeRangeChanged(
'month');
209 log(
'Fetching data from ${DateFormat('dd MMM yyyy
').format(start)} to ${DateFormat('dd MMM yyyy
').format(end)}');
class App extends StatefulWidget build(BuildContext context)
static const antiFlashWhite
Future< void > _showDateRangePicker() async
Widget _buildTab(String text, bool isSelected)
class TimeSelector extends StatefulWidget _selectedTimeRange
void _fetchDataForTimeRange(DateTime start, DateTime end)
void _updateTimeRange(TimeRange range)
Widget _buildDateChip(String label, String date)
class UnloadingCollectionItem extends StatefulWidget isSelected
style Text( '${ 'scheduling.reference'.tr()}:${collection.internalCode}', style:Theme.of(context).textTheme.bodySmall,)
String _formatDate(DateTime date)
style SizedBox(height:2.h)
style Column(crossAxisAlignment:CrossAxisAlignment.end, children:[Container(padding:EdgeInsets.symmetric(horizontal:8.w, vertical:4.h), decoration:BoxDecoration(color:ColorPalette.tiffanyBlue.withValues(alpha:0.1), borderRadius:BorderRadius.circular(12),), child:Text(collection.type ?? '', style:Theme.of(context).textTheme.bodySmall?.copyWith(color:ColorPalette.tiffanyBlue, fontWeight:FontWeight.bold,),),),],)