This commit is contained in:
Hamza-Ayed
2024-01-01 00:56:25 +03:00
parent 8475bdc831
commit e3a63e18fc
13 changed files with 437 additions and 292 deletions

View File

@@ -1,38 +1,28 @@
import 'dart:convert';
import 'package:flutter/animation.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/links.dart';
import 'package:ride/controller/functions/crud.dart';
import 'package:ride/main.dart';
import 'package:ride/models/model/driver/rides_summary_model.dart';
class DurationController extends GetxController
with GetSingleTickerProviderStateMixin {
final data = <DurationData>[].obs;
late AnimationController animationController;
@override
void onInit() {
super.onInit();
fetchData();
animationController = AnimationController(
vsync: this,
duration: const Duration(
milliseconds: 500), // Adjust the animation duration as needed
);
animationController.forward(); // Start the animation
}
@override
void onClose() {
animationController.dispose();
super.onClose();
}
Map<String, dynamic> jsonData = {};
class DurationController extends GetxController {
final data = DurationData;
// late AnimationController animationController;
late List<MonthlyDataModel> rideData;
Map<String, dynamic> jsonData1 = {};
bool isLoading = false;
String totalDurationToday = '';
var chartData;
@override
void onInit() async {
super.onInit();
await fetchData();
}
Future<void> fetchData() async {
isLoading = true;
update(); // Notify the observers about the loading state change
@@ -41,13 +31,22 @@ class DurationController extends GetxController
link: AppLink.getTotalDriverDuration,
payload: {'driver_id': box.read(BoxName.driverID)},
);
jsonData = jsonDecode(res);
final parsedData = parseData(jsonData['message']);
data.value = parsedData;
jsonData1 = jsonDecode(res);
var jsonResponse = jsonDecode(res) as Map<String, dynamic>;
isLoading = false;
// print(jsonResponse);
final List<dynamic> jsonData = jsonResponse['message'];
rideData = jsonData.map<MonthlyDataModel>((item) {
return MonthlyDataModel.fromJson(item);
}).toList();
final List<FlSpot> spots = rideData
.map((data) => FlSpot(
data.day.toDouble(),
data.totalDuration.toDouble(),
))
.toList();
chartData = spots;
update(); // Notify the observers about the data and loading state change
}