calendar events changes

merge-requests/378/head
Sultan Khan 3 years ago
parent 4325bd3448
commit 1a501a3b2a

@ -10,7 +10,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:table_calendar/table_calendar.dart'; import 'package:table_calendar/table_calendar.dart';
import "package:collection/collection.dart";
import '../../../uitl/date_uitl.dart'; import '../../../uitl/date_uitl.dart';
class DocAvailableAppointments extends StatefulWidget { class DocAvailableAppointments extends StatefulWidget {
@ -22,6 +22,7 @@ class DocAvailableAppointments extends StatefulWidget {
static String selectedTime; static String selectedTime;
bool isLiveCareAppointment; bool isLiveCareAppointment;
final dynamic doctorSchedule; final dynamic doctorSchedule;
DocAvailableAppointments( DocAvailableAppointments(
{@required this.doctor, {@required this.doctor,
this.doctorSchedule, this.doctorSchedule,
@ -52,7 +53,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
dynamic freeSlotsResponse; dynamic freeSlotsResponse;
ScrollController _scrollController; ScrollController _scrollController;
Map freeSlotMap;
var language; var language;
@override @override
@ -107,6 +108,24 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
void _onVisibleDaysChanged( void _onVisibleDaysChanged(
DateTime first, DateTime last, CalendarFormat format) { DateTime first, DateTime last, CalendarFormat format) {
print('CALLBACK: _onVisibleDaysChanged'); print('CALLBACK: _onVisibleDaysChanged');
GifLoaderDialogUtils.showMyDialog(context);
freeSlotsResponse = freeSlotMap[first.month];
_getJSONSlots().then((value) {
setState(() => {
_events.clear(),
_events = value,
// if (widget.doctorSchedule != null)
// {
// _calendarController.setSelectedDay(
// DateUtil.convertStringToDate(widget.doctorSchedule['Date']),
// isProgrammatic: true),
// // _onDaySelected(
// // DateUtil.convertStringToDate(widget.doctorSchedule['Date']),
// // List())
// }
});
GifLoaderDialogUtils.hideDialog(context);
});
} }
void _onCalendarCreated( void _onCalendarCreated(
@ -256,9 +275,11 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
DateTime dateStartObj = new DateTime( DateTime dateStartObj = new DateTime(
dateStart.year, dateStart.month, dateStart.day, 0, 0, 0, 0, 0); dateStart.year, dateStart.month, dateStart.day, 0, 0, 0, 0, 0);
freeSlots.forEach((v) { //freeSlots.forEach((v) {
if (v.start == dateStartObj) dayEvents.add(v); for (var x = 0; x < freeSlots.length; x++) {
}); if (freeSlots[x].start == dateStartObj) dayEvents.add(freeSlots[x]);
}
//});
setState(() { setState(() {
if (dayEvents.length != 0) if (dayEvents.length != 0)
@ -281,6 +302,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
DateTime date; DateTime date;
final DateFormat formatter = DateFormat('HH:mm'); final DateFormat formatter = DateFormat('HH:mm');
final DateFormat dateFormatter = DateFormat('yyyy-MM-dd'); final DateFormat dateFormatter = DateFormat('yyyy-MM-dd');
docFreeSlots = [];
for (var i = 0; i < freeSlotsResponse.length; i++) { for (var i = 0; i < freeSlotsResponse.length; i++) {
date = DateUtil.convertStringToDate(freeSlotsResponse[i]); date = DateUtil.convertStringToDate(freeSlotsResponse[i]);
slotsList.add(FreeSlot(date, ['slot'])); slotsList.add(FreeSlot(date, ['slot']));
@ -348,9 +370,8 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
if (res['MessageStatus'] == 1) { if (res['MessageStatus'] == 1) {
if (res['FreeTimeSlots'].length != 0) { if (res['FreeTimeSlots'].length != 0) {
DocAvailableAppointments.areAppointmentsAvailable = true; DocAvailableAppointments.areAppointmentsAvailable = true;
freeSlotsResponse = res['FreeTimeSlots'];
print("res['FreeTimeSlots']"); filterByMonths(res['FreeTimeSlots']);
print(res['FreeTimeSlots'].length);
_getJSONSlots().then((value) { _getJSONSlots().then((value) {
setState(() => { setState(() => {
_events.clear(), _events.clear(),
@ -442,4 +463,11 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
), ),
); );
} }
filterByMonths(freeSlots) {
freeSlotMap =
groupBy(freeSlots, (obj) => DateUtil.convertStringToDate(obj).month);
freeSlotsResponse = freeSlotMap[DateTime.now().month];
}
} }

Loading…
Cancel
Save