From 544dffc03fc3009617d2113be219be1d0c49cc6f Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Tue, 25 Mar 2025 13:01:07 +0300 Subject: [PATCH] chart updated overview screen. --- .../widgets/progress_fragment.dart | 79 +++++++++---------- pubspec.lock | 24 ++---- pubspec.yaml | 2 +- 3 files changed, 47 insertions(+), 58 deletions(-) diff --git a/lib/dashboard_latest/widgets/progress_fragment.dart b/lib/dashboard_latest/widgets/progress_fragment.dart index 994d13d7..8f60be60 100644 --- a/lib/dashboard_latest/widgets/progress_fragment.dart +++ b/lib/dashboard_latest/widgets/progress_fragment.dart @@ -151,10 +151,9 @@ // import 'package:flutter/material.dart'; +import 'package:pie_chart/pie_chart.dart'; import 'package:provider/provider.dart'; -import 'package:syncfusion_flutter_charts/charts.dart'; import 'package:test_sa/dashboard_latest/dashboard_provider.dart'; -import 'package:test_sa/controllers/providers/api/all_requests_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; @@ -212,46 +211,44 @@ class ProgressFragment extends StatelessWidget { child: Stack( alignment: Alignment.center, children: [ - SfCircularChart( - tooltipBehavior: TooltipBehavior( - enable: true, - // elevation: 2, - color: context.isDark ? const Color(0xFF111427) : const Color(0xffF7F9FB), - textStyle: context.isDark ? null : const TextStyle(color: Colors.black87, fontSize: 12), + PieChart( + dataMap: {for (var v in chartData) v.x: v.y}, + animationDuration: const Duration(milliseconds: 800), + chartLegendSpacing: 32, + chartRadius: MediaQuery.of(context).size.width / 3.2, + colorList: chartData.map((element) => element.color).toList(), + initialAngleInDegree: 270, + chartType: ChartType.ring, + ringStrokeWidth: 32, + centerWidget: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + context.translation.total, + style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), + ), + Text( + "$total", + style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), + ), + ], + ), + legendOptions: const LegendOptions( + showLegendsInRow: false, + legendPosition: LegendPosition.right, + showLegends: true, + legendTextStyle: TextStyle( + fontWeight: FontWeight.w500, ), - legend: const Legend( - //isVisible: true, - ), - series: [ - DoughnutSeries( - dataSource: chartData, - radius: "100%", - innerRadius: "60%", - pointColorMapper: (ChartData data, _) => data.color, - xValueMapper: (ChartData data, _) => data.x, - yValueMapper: (ChartData data, _) => data.y, - dataLabelMapper: (ChartData data, _) => data.x, - dataLabelSettings: DataLabelSettings( - margin: const EdgeInsets.all(8), - isVisible: true, - textStyle: TextStyle(color: context.isDark ? Colors.white : AppColor.neutral20, fontSize: 12, fontWeight: FontWeight.w500), - labelPosition: ChartDataLabelPosition.outside, - ), - ) - ]).toShimmer(isShow: snapshot.isAllCountLoading, radius: 250).paddingAll(0).toShadowContainer(context), - Column( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - context.translation.total, - style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), - ), - Text( - "$total", - style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), - ), - ], - ), + ), + chartValuesOptions: const ChartValuesOptions( + showChartValueBackground: false, + showChartValues: false, + showChartValuesInPercentage: false, + showChartValuesOutside: false, + decimalPlaces: 1, + ), + ).toShimmer(isShow: snapshot.isAllCountLoading, radius: 250).paddingAll(0).toShadowContainer(context), ], ), ), diff --git a/pubspec.lock b/pubspec.lock index 402dbb06..4546b9fd 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1213,6 +1213,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.2" + pie_chart: + dependency: "direct main" + description: + name: pie_chart + sha256: "58e6a46999ac938bfa1c3e5be414d6e149f037647197dca03ba3614324c12c82" + url: "https://pub.dev" + source: hosted + version: "5.4.0" pinput: dependency: "direct main" description: @@ -1506,22 +1514,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" - syncfusion_flutter_charts: - dependency: "direct main" - description: - name: syncfusion_flutter_charts - sha256: a755274a8786b200b7a05f7414168cd5858871db74d0f1de2e57b20a8aaeb7a4 - url: "https://pub.dev" - source: hosted - version: "26.2.14" - syncfusion_flutter_core: - dependency: transitive - description: - name: syncfusion_flutter_core - sha256: "6e67726b85812afc7105725a23620b876ab7f6b04b8410e211330ffb8c2cdbe8" - url: "https://pub.dev" - source: hosted - version: "26.2.14" synchronized: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8cc4034f..2bcf8f5b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -79,11 +79,11 @@ dependencies: image_cropper: ^8.0.2 flutter_timezone: ^3.0.1 device_calendar: ^4.3.3 + pie_chart: ^5.4.0 badges: ^3.1.1 # buttons_tabbar: ^1.1.2 flutter_custom_month_picker: ^0.1.3 - syncfusion_flutter_charts: ^26.2.14 local_auth: ^2.3.0 google_api_availability: ^5.0.0 huawei_push: ^6.5.0+300