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:intl/intl.dart';
import 'package:table_calendar/table_calendar.dart';
import "package:collection/collection.dart";
import '../../../uitl/date_uitl.dart';
class DocAvailableAppointments extends StatefulWidget {
@ -22,6 +22,7 @@ class DocAvailableAppointments extends StatefulWidget {
static String selectedTime;
bool isLiveCareAppointment;
final dynamic doctorSchedule;
DocAvailableAppointments(
{@required this.doctor,
this.doctorSchedule,
@ -52,7 +53,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
dynamic freeSlotsResponse;
ScrollController _scrollController;
Map freeSlotMap;
var language;
@override
@ -107,6 +108,24 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
void _onVisibleDaysChanged(
DateTime first, DateTime last, CalendarFormat format) {
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(
@ -256,9 +275,11 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
DateTime dateStartObj = new DateTime(
dateStart.year, dateStart.month, dateStart.day, 0, 0, 0, 0, 0);
freeSlots.forEach((v) {
if (v.start == dateStartObj) dayEvents.add(v);
});
//freeSlots.forEach((v) {
for (var x = 0; x < freeSlots.length; x++) {
if (freeSlots[x].start == dateStartObj) dayEvents.add(freeSlots[x]);
}
//});
setState(() {
if (dayEvents.length != 0)
@ -281,6 +302,7 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
DateTime date;
final DateFormat formatter = DateFormat('HH:mm');
final DateFormat dateFormatter = DateFormat('yyyy-MM-dd');
docFreeSlots = [];
for (var i = 0; i < freeSlotsResponse.length; i++) {
date = DateUtil.convertStringToDate(freeSlotsResponse[i]);
slotsList.add(FreeSlot(date, ['slot']));
@ -348,9 +370,8 @@ class _DocAvailableAppointmentsState extends State<DocAvailableAppointments>
if (res['MessageStatus'] == 1) {
if (res['FreeTimeSlots'].length != 0) {
DocAvailableAppointments.areAppointmentsAvailable = true;
freeSlotsResponse = res['FreeTimeSlots'];
print("res['FreeTimeSlots']");
print(res['FreeTimeSlots'].length);
filterByMonths(res['FreeTimeSlots']);
_getJSONSlots().then((value) {
setState(() => {
_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];
}
}

@ -248,7 +248,7 @@ class _SchedulePageState extends State<SchedulePage> {
context,
FadePage(
page: AppointmentDetails(
appo: widget.appo,
appo: widget.appo,
doctorSchedule: selectedDate,
),
),

Loading…
Cancel
Save