import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:sefer_admin1/constant/style.dart'; import 'package:sefer_admin1/controller/admin/static_controller.dart'; import 'package:sefer_admin1/views/widgets/mycircular.dart'; import '../../../constant/colors.dart'; import '../../widgets/my_scafold.dart'; class StaticDash extends StatelessWidget { const StaticDash({super.key}); @override Widget build(BuildContext context) { Get.put(StaticController()); return MyScafolld( title: 'Static Dash'.tr, action: IconButton( onPressed: () async { await Get.put(StaticController()).getAll(); }, icon: const Icon( Icons.replay_circle_filled_rounded, color: AppColor.greenColor, ), ), body: [ GetBuilder(builder: (staticController) { return staticController.isLoading ? const MyCircularProgressIndicator() : ListView( children: [ SizedBox( height: Get.height * .3, width: double.maxFinite, // decoration: AppStyle.boxDecoration1, child: Padding( padding: const EdgeInsets.all(6), child: Container( decoration: AppStyle.boxDecoration1, height: MediaQuery.of(context).size.height * 0.4, child: LineChart( LineChartData( lineBarsData: [ LineChartBarData( isStepLineChart: true, spots: staticController.chartDataPassengers, isCurved: true, color: Colors.blue, // Custom color barWidth: 3, // Thinner line dotData: const FlDotData( show: true), // Show dots on each point belowBarData: BarAreaData( show: true, color: Colors.deepPurpleAccent .withOpacity( 0.3), // Custom gradient color ), isStrokeJoinRound: true, shadow: const BoxShadow( color: Colors.yellow, blurRadius: 4, offset: Offset(2, 2), ), ), ], showingTooltipIndicators: const [], titlesData: FlTitlesData( show: true, topTitles: AxisTitles( axisNameWidget: Text( 'Days'.tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, ), bottomTitles: AxisTitles( axisNameWidget: Text( 'Total passengers on month ${staticController.totalMonthlyPassengers}' .tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, sideTitles: const SideTitles( reservedSize: 30, showTitles: true, ), ), leftTitles: AxisTitles( axisNameWidget: Text( 'Counts of Passengers on days'.tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, sideTitles: const SideTitles( reservedSize: 30, showTitles: true, ), ), ), gridData: const FlGridData(show: true), borderData: FlBorderData( show: true, border: const Border( bottom: BorderSide(color: Colors.blueAccent), left: BorderSide(color: Colors.blueAccent), ), ), ), ), ), )), const SizedBox( height: 5, ), SizedBox( height: Get.height * .3, width: double.maxFinite, // decoration: AppStyle.boxDecoration1, child: Padding( padding: const EdgeInsets.all(6), child: Container( decoration: AppStyle.boxDecoration1, height: MediaQuery.of(context).size.height * 0.4, child: LineChart( LineChartData( lineBarsData: [ LineChartBarData( isStepLineChart: true, spots: staticController.chartDataDrivers, isCurved: true, color: Colors.blue, // Custom color barWidth: 3, // Thinner line dotData: const FlDotData( show: true), // Show dots on each point belowBarData: BarAreaData( show: true, color: Colors.deepPurpleAccent .withOpacity( 0.3), // Custom gradient color ), isStrokeJoinRound: true, shadow: const BoxShadow( color: Colors.yellow, blurRadius: 4, offset: Offset(2, 2), ), ), ], showingTooltipIndicators: const [], titlesData: FlTitlesData( show: true, topTitles: AxisTitles( axisNameWidget: Text( 'Days'.tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, ), bottomTitles: AxisTitles( axisNameWidget: Text( 'Total Drivers on month ${staticController.totalMonthlyDrivers}' .tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, sideTitles: const SideTitles( reservedSize: 30, showTitles: true, ), ), leftTitles: AxisTitles( axisNameWidget: Text( 'Counts of Drivers on days'.tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, sideTitles: const SideTitles( reservedSize: 30, showTitles: true, ), ), ), gridData: const FlGridData(show: true), borderData: FlBorderData( show: true, border: const Border( bottom: BorderSide(color: Colors.blueAccent), left: BorderSide(color: Colors.blueAccent), ), ), ), ), ), )), const SizedBox( height: 5, ), SizedBox( height: Get.height * .3, width: double.maxFinite, // decoration: AppStyle.boxDecoration1, child: Padding( padding: const EdgeInsets.all(6), child: Container( decoration: AppStyle.boxDecoration1, height: MediaQuery.of(context).size.height * 0.4, child: LineChart( LineChartData( lineBarsData: [ LineChartBarData( isStepLineChart: true, spots: staticController .chartDataDriversCalling, isCurved: true, color: Colors .deepPurpleAccent, // Custom color barWidth: 3, // Thinner line dotData: const FlDotData( show: true), // Show dots on each point belowBarData: BarAreaData( show: true, color: Colors.deepPurpleAccent .withOpacity( 0.3), // Custom gradient color ), isStrokeJoinRound: true, shadow: const BoxShadow( color: Colors.yellow, blurRadius: 4, offset: Offset(2, 2), ), ), ], showingTooltipIndicators: const [], titlesData: FlTitlesData( show: true, topTitles: AxisTitles( axisNameWidget: Text( 'Days'.tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, ), bottomTitles: AxisTitles( axisNameWidget: Text( 'Total Drivers on month are Calliing ${staticController.staticList[0]['totalMonthlyCallingDrivers']}' .tr, style: AppStyle.subtitle, ), axisNameSize: 30, sideTitles: const SideTitles( reservedSize: 30, showTitles: true, ), ), leftTitles: AxisTitles( axisNameWidget: Text( 'Counts of Drivers on days'.tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, sideTitles: const SideTitles( reservedSize: 30, showTitles: true, ), ), ), gridData: const FlGridData(show: true), borderData: FlBorderData( show: true, border: const Border( bottom: BorderSide(color: Colors.blueAccent), left: BorderSide(color: Colors.blueAccent), ), ), ), ), ), )), const SizedBox( height: 5, ), SizedBox( height: Get.height * .3, width: double.maxFinite, // decoration: AppStyle.boxDecoration1, child: Padding( padding: const EdgeInsets.all(6), child: Container( decoration: AppStyle.boxDecoration1, height: MediaQuery.of(context).size.height * 0.4, child: LineChart( LineChartData( lineBarsData: [ LineChartBarData( isStepLineChart: true, spots: staticController .chartDataDriversMatchingNotes, isCurved: true, color: Colors .deepPurpleAccent, // Custom color barWidth: 3, // Thinner line dotData: const FlDotData( show: true), // Show dots on each point belowBarData: BarAreaData( show: true, color: Colors.deepPurpleAccent .withOpacity( 0.3), // Custom gradient color ), isStrokeJoinRound: true, shadow: const BoxShadow( color: Colors.yellow, blurRadius: 4, offset: Offset(2, 2), ), ), ], showingTooltipIndicators: const [], titlesData: FlTitlesData( show: true, topTitles: AxisTitles( axisNameWidget: Text( 'Days'.tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, ), bottomTitles: AxisTitles( axisNameWidget: Text( 'Total Drivers on month are register after calling ${staticController.staticList[0]['totalMonthlyMatchingNotes']}' .tr, style: AppStyle.subtitle, ), axisNameSize: 30, sideTitles: const SideTitles( reservedSize: 30, showTitles: true, ), ), leftTitles: AxisTitles( axisNameWidget: Text( 'Counts of Drivers on days'.tr, style: const TextStyle( fontSize: 14, fontWeight: FontWeight.bold), ), axisNameSize: 30, sideTitles: const SideTitles( reservedSize: 30, showTitles: true, ), ), ), gridData: const FlGridData(show: true), borderData: FlBorderData( show: true, border: const Border( bottom: BorderSide(color: Colors.blueAccent), left: BorderSide(color: Colors.blueAccent), ), ), ), ), ), )), const SizedBox( height: 5, ), ], ); }) ], isleading: true); } }