@ -41,60 +41,58 @@ class _MonthlyFragmentState extends State<MonthlyFragment> {
child: Column (
children: [
Consumer < AllRequestsProvider > (
builder: ( context , snapshot , _ ) = > snapshot . isCalendarLoading
? const Center ( child: CircularProgressIndicator ( ) )
: TableCalendar (
firstDay: _firstDate ,
lastDay: _lastDate ,
focusedDay: _initialDate ,
calendarFormat: CalendarFormat . month ,
weekendDays: const [ ] ,
rowHeight: 45 ,
availableGestures: AvailableGestures . none ,
calendarBuilders: CalendarBuilders (
headerTitleBuilder: ( context , dateTime ) = > CalendarHeader ( dateFormat: DateFormat ( " MMMM, yyyy " , context . isAr ? " ar " : " en " ) , dateTime: dateTime ) . onPress ( ( ) async {
final result = await showDatePicker (
context: context ,
initialDate: _initialDate ,
firstDate: _firstDate ,
lastDate: _lastDate ,
initialDatePickerMode: DatePickerMode . year ,
) ;
await snapshot . getCalenderRequests ( from: DateTime ( result . year , result . month ) , to: DateTime . now ( ) ) ;
if ( result ! = null ) {
_initialDate = result ;
setState ( ( ) { } ) ;
}
} ) ,
dowBuilder: ( context , dateTime ) {
final day = DateFormat ( " EE " , context . isAr ? " ar " : " en " ) . format ( dateTime ) . toUpperCase ( ) ;
return Align ( alignment: Alignment . center , child: day . bodyText ( context ) . custom ( color: AppColor . neutral50 ) ) ;
} ,
defaultBuilder: ( 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 ) ? . difference ( dateTime ) ? . inDays = = 0 ) ,
orElse: ( ) = > null ,
) ! =
null ,
) ;
} ,
) ,
daysOfWeekHeight: 35. toScreenHeight ,
headerStyle: const HeaderStyle (
leftChevronVisible: false ,
rightChevronVisible: false ,
formatButtonVisible: false ,
headerPadding: EdgeInsets . all ( 0 ) ,
) ,
calendarStyle: CalendarStyle (
isTodayHighlighted: false ,
defaultTextStyle: AppTextStyles . bodyText ,
defaultDecoration: const BoxDecoration ( shape: BoxShape . circle , color: AppColor . neutral30 ) ,
) ,
) ,
builder: ( context , snapshot , _ ) = > TableCalendar (
firstDay: _firstDate ,
lastDay: _lastDate ,
focusedDay: _initialDate ,
calendarFormat: CalendarFormat . month ,
weekendDays: const [ ] ,
rowHeight: 45 ,
availableGestures: AvailableGestures . none ,
calendarBuilders: CalendarBuilders (
headerTitleBuilder: ( context , dateTime ) = > CalendarHeader ( dateFormat: DateFormat ( " MMMM, yyyy " , context . isAr ? " ar " : " en " ) , dateTime: dateTime ) . onPress ( ( ) async {
final result = await showDatePicker (
context: context ,
initialDate: _initialDate ,
firstDate: _firstDate ,
lastDate: _lastDate ,
initialDatePickerMode: DatePickerMode . year ,
) ;
await snapshot . getCalenderRequests ( from: DateTime ( result . year , result . month ) , to: DateTime . now ( ) ) ;
if ( result ! = null ) {
_initialDate = result ;
setState ( ( ) { } ) ;
}
} ) ,
dowBuilder: ( context , dateTime ) {
final day = DateFormat ( " EE " , context . isAr ? " ar " : " en " ) . format ( dateTime ) . toUpperCase ( ) ;
return Align ( alignment: Alignment . center , child: day . bodyText ( context ) . custom ( color: AppColor . neutral50 ) ) ;
} ,
defaultBuilder: ( 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 ) ? . difference ( dateTime ) ? . inDays = = 0 ) ,
orElse: ( ) = > null ,
) ! =
null ,
) . toShimmer ( isShow: snapshot . isCalendarLoading ) ;
} ,
) ,
daysOfWeekHeight: 35. toScreenHeight ,
headerStyle: const HeaderStyle (
leftChevronVisible: false ,
rightChevronVisible: false ,
formatButtonVisible: false ,
headerPadding: EdgeInsets . all ( 0 ) ,
) ,
calendarStyle: CalendarStyle (
isTodayHighlighted: false ,
defaultTextStyle: AppTextStyles . bodyText ,
defaultDecoration: const BoxDecoration ( shape: BoxShape . circle , color: AppColor . neutral30 ) ,
) ,
) ,
) ,
Column (
mainAxisSize: MainAxisSize . min ,