import 'package:flutter/material.dart'; import 'package:ftc_mobile_app/utilities/extensions/custom_extensions.dart'; import 'package:get/get.dart'; import 'package:pull_to_refresh_flutter3/pull_to_refresh_flutter3.dart'; import '../../ftc_mobile_app.dart'; import '../../models/appointmentsListResponse/AppointmentsListResponse.dart'; class AppointmentScreenController extends GetxController { final GlobalKey screenKey = GlobalKey(); final appointments = [].obs; final _listRC = RefreshController(initialRefresh: false); RefreshController get listRC => _listRC; final _listSC = ScrollController(); ScrollController get listSC => _listSC; String serviceUserId = ""; @override void onReady() { super.onReady(); getAppointmentsList(); } void removeFocus() { FocusScope.of(screenKey.currentContext!).unfocus(); } void onRefresh() async { await getAppointmentsList(); _listRC.refreshCompleted(); } Future getAppointmentsList() async { try { if (serviceUserId.isEmpty) { throw Exception("serviceUserId is not assigned"); } final response = await ClientService() .getAppointmentsList( serviceId: serviceUserId, startDate: DateTime.now().subtract(28.days).millisecondsSinceEpoch, endDate: DateTime.now().add(28.days).millisecondsSinceEpoch, ) .showLoader(); if (response.success == true) { appointments.value = response.data ?? []; } else { if (response.message.isNotNullOrEmpty()) { FrequentFunctions.showToast(message: response.message!); } } } catch (e) { debugPrint("getAppointmentsList error"); debugPrint(e.toString()); } } @override void dispose() { _listSC.dispose(); Get.delete(); super.dispose(); } }