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