46 lines
1.3 KiB
Dart
46 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:ftc_mobile_app/models/rota/LiveRoasterResponseData.dart';
|
|
import 'package:ftc_mobile_app/models/rota/WeekArrayData.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../ftc_mobile_app.dart';
|
|
|
|
class YourRotaScreenController extends GetxController{
|
|
final GlobalKey<ScaffoldState> screenKey = GlobalKey<ScaffoldState>();
|
|
|
|
final loadingShifts = false.obs;
|
|
final myShiftsList = RxList<DaysArrayData>();
|
|
|
|
@override
|
|
void onInit() {
|
|
getAvailableShifts();
|
|
super.onInit();
|
|
}
|
|
|
|
void removeFocus() {
|
|
FocusScope.of(screenKey.currentContext!).unfocus();
|
|
}
|
|
|
|
Future<void> getAvailableShifts() async {
|
|
loadingShifts.value = true;
|
|
|
|
var response = await RotaService().getMyShifts(
|
|
startDateMills:
|
|
DateTime.now().toUtc().subtract(30.days).millisecondsSinceEpoch,
|
|
endDateMills:
|
|
DateTime.now().toUtc().add(30.days).millisecondsSinceEpoch);
|
|
if (response is LiveRoasterResponseData) {
|
|
myShiftsList.value = response.daysArray ?? [];
|
|
} else if (response is String && response.isNotEmpty) {
|
|
FrequentFunctions.showToast(message: response);
|
|
}
|
|
|
|
loadingShifts.value = false;
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
Get.delete<YourRotaScreenController>();
|
|
super.dispose();
|
|
}
|
|
} |