From 1d9c416f68912162d8e3d4d7b6ebfd063180310a Mon Sep 17 00:00:00 2001 From: Vaibhav Surve Date: Wed, 24 Sep 2025 15:04:51 +0530 Subject: [PATCH] refactor: Standardize border radius values across dashboard components --- lib/helpers/services/app_initializer.dart | 17 +--- .../dashbaord/attendance_overview_chart.dart | 16 ++-- .../dashbaord/dashboard_overview_widgets.dart | 10 +-- .../dashbaord/project_progress_chart.dart | 12 +-- lib/view/dashboard/dashboard_screen.dart | 10 +-- lib/view/layouts/layout.dart | 77 ++++++++++++------- 6 files changed, 77 insertions(+), 65 deletions(-) diff --git a/lib/helpers/services/app_initializer.dart b/lib/helpers/services/app_initializer.dart index 1fa0da4..54db545 100644 --- a/lib/helpers/services/app_initializer.dart +++ b/lib/helpers/services/app_initializer.dart @@ -1,15 +1,14 @@ -import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:get/get.dart'; import 'package:url_strategy/url_strategy.dart'; -import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_core/firebase_core.dart'; import 'package:marco/controller/permission_controller.dart'; import 'package:marco/controller/project_controller.dart'; import 'package:marco/helpers/services/storage/local_storage.dart'; import 'package:marco/helpers/services/app_logger.dart'; import 'package:marco/helpers/services/auth_service.dart'; -import 'package:marco/helpers/services/firebase/firebase_messaging_service.dart'; +import 'package:marco/helpers/services/firebase/firebase_messaging_service.dart'; import 'package:marco/helpers/services/device_info_service.dart'; import 'package:marco/helpers/theme/theme_customizer.dart'; import 'package:marco/helpers/theme/app_theme.dart'; @@ -28,7 +27,7 @@ Future initializeApp() async { await _handleAuthTokens(); await _setupTheme(); await _setupControllers(); - await _setupFirebaseMessaging(); + await _setupFirebaseMessaging(); _finalizeAppStyle(); @@ -47,16 +46,9 @@ Future initializeApp() async { Future _setupUI() async { setPathUrlStrategy(); await SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); - SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( - statusBarColor: Colors.transparent, - systemNavigationBarColor: Colors.transparent, - statusBarIconBrightness: Brightness.light, - systemNavigationBarIconBrightness: Brightness.dark, - )); - logSafe("💡 UI setup completed."); + logSafe("💡 UI setup completed with default system behavior."); } - Future _setupFirebase() async { await Firebase.initializeApp(); logSafe("💡 Firebase initialized."); @@ -126,7 +118,6 @@ Future _setupFirebaseMessaging() async { logSafe("💡 Firebase Messaging initialized."); } - void _finalizeAppStyle() { AppStyle.init(); logSafe("💡 AppStyle initialized."); diff --git a/lib/helpers/widgets/dashbaord/attendance_overview_chart.dart b/lib/helpers/widgets/dashbaord/attendance_overview_chart.dart index 9a88c65..d9f06b2 100644 --- a/lib/helpers/widgets/dashbaord/attendance_overview_chart.dart +++ b/lib/helpers/widgets/dashbaord/attendance_overview_chart.dart @@ -102,7 +102,7 @@ class AttendanceDashboardChart extends StatelessWidget { BoxDecoration get _containerDecoration => BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.circular(14), + borderRadius: BorderRadius.circular(5), boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.05), @@ -160,7 +160,7 @@ class _Header extends StatelessWidget { ), ), ToggleButtons( - borderRadius: BorderRadius.circular(6), + borderRadius: BorderRadius.circular(5), borderColor: Colors.grey, fillColor: Colors.blueAccent.withOpacity(0.15), selectedBorderColor: Colors.blueAccent, @@ -204,7 +204,7 @@ class _Header extends StatelessWidget { : FontWeight.normal, ), shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(6), + borderRadius: BorderRadius.circular(5), side: BorderSide( color: selectedRange == label ? Colors.blueAccent @@ -279,7 +279,7 @@ class _AttendanceChart extends StatelessWidget { height: 600, decoration: BoxDecoration( color: Colors.blueGrey.shade50, - borderRadius: BorderRadius.circular(8), + borderRadius: BorderRadius.circular(5), ), child: const Center( child: Text( @@ -307,7 +307,7 @@ class _AttendanceChart extends StatelessWidget { padding: const EdgeInsets.all(6), decoration: BoxDecoration( color: Colors.blueGrey.shade50, - borderRadius: BorderRadius.circular(8), + borderRadius: BorderRadius.circular(5), ), child: SfCartesianChart( tooltipBehavior: TooltipBehavior(enable: true, shared: true), @@ -383,7 +383,7 @@ class _AttendanceTable extends StatelessWidget { height: 300, decoration: BoxDecoration( color: Colors.grey.shade50, - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), ), child: const Center( child: Text( @@ -405,7 +405,7 @@ class _AttendanceTable extends StatelessWidget { height: 300, decoration: BoxDecoration( border: Border.all(color: Colors.grey.shade300), - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), color: Colors.grey.shade50, ), child: SingleChildScrollView( @@ -457,7 +457,7 @@ class _RolePill extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), decoration: BoxDecoration( color: color.withOpacity(0.15), - borderRadius: BorderRadius.circular(6), + borderRadius: BorderRadius.circular(5), ), child: MyText.labelSmall(role, fontWeight: 500), ); diff --git a/lib/helpers/widgets/dashbaord/dashboard_overview_widgets.dart b/lib/helpers/widgets/dashbaord/dashboard_overview_widgets.dart index 2c44271..f887403 100644 --- a/lib/helpers/widgets/dashbaord/dashboard_overview_widgets.dart +++ b/lib/helpers/widgets/dashbaord/dashboard_overview_widgets.dart @@ -54,7 +54,7 @@ class DashboardOverviewWidgets { return SizedBox( width: cardWidth, child: MyCard( - borderRadiusAll: 16, + borderRadiusAll: 5, paddingAll: 20, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -126,7 +126,7 @@ class DashboardOverviewWidgets { return SizedBox( width: cardWidth, child: MyCard( - borderRadiusAll: 16, + borderRadiusAll: 5, paddingAll: 20, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -208,7 +208,7 @@ class DashboardOverviewWidgets { padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 12), decoration: BoxDecoration( color: bgColor, // full color - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), ), child: Column( children: [ @@ -238,7 +238,7 @@ class DashboardOverviewWidgets { return SizedBox( width: cardWidth, child: MyCard( - borderRadiusAll: 16, + borderRadiusAll: 5, paddingAll: 20, child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -262,7 +262,7 @@ class DashboardOverviewWidgets { width: width, decoration: BoxDecoration( color: Colors.grey.shade300, - borderRadius: BorderRadius.circular(6), + borderRadius: BorderRadius.circular(5), ), ); } diff --git a/lib/helpers/widgets/dashbaord/project_progress_chart.dart b/lib/helpers/widgets/dashbaord/project_progress_chart.dart index f615687..0f8e28f 100644 --- a/lib/helpers/widgets/dashbaord/project_progress_chart.dart +++ b/lib/helpers/widgets/dashbaord/project_progress_chart.dart @@ -67,7 +67,7 @@ class ProjectProgressChart extends StatelessWidget { return Container( decoration: BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.circular(14), + borderRadius: BorderRadius.circular(5), boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.04), @@ -125,7 +125,7 @@ class ProjectProgressChart extends StatelessWidget { ), ), ToggleButtons( - borderRadius: BorderRadius.circular(6), + borderRadius: BorderRadius.circular(5), borderColor: Colors.grey, fillColor: Colors.blueAccent.withOpacity(0.15), selectedBorderColor: Colors.blueAccent, @@ -178,7 +178,7 @@ class ProjectProgressChart extends StatelessWidget { selectedRange == label ? FontWeight.w600 : FontWeight.normal, ), shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(6), + borderRadius: BorderRadius.circular(5), side: BorderSide( color: selectedRange == label ? Colors.blueAccent @@ -202,7 +202,7 @@ class ProjectProgressChart extends StatelessWidget { padding: const EdgeInsets.all(6), decoration: BoxDecoration( color: Colors.blueGrey.shade50, - borderRadius: BorderRadius.circular(8), + borderRadius: BorderRadius.circular(5), ), child: SfCartesianChart( tooltipBehavior: TooltipBehavior(enable: true), @@ -276,7 +276,7 @@ class ProjectProgressChart extends StatelessWidget { padding: const EdgeInsets.symmetric(vertical: 8), decoration: BoxDecoration( border: Border.all(color: Colors.grey.shade300), - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), color: Colors.grey.shade50, ), child: LayoutBuilder( @@ -328,7 +328,7 @@ class ProjectProgressChart extends StatelessWidget { height: height > 280 ? 280 : height, decoration: BoxDecoration( color: Colors.blueGrey.shade50, - borderRadius: BorderRadius.circular(8), + borderRadius: BorderRadius.circular(5), ), child: const Center( child: Text( diff --git a/lib/view/dashboard/dashboard_screen.dart b/lib/view/dashboard/dashboard_screen.dart index c79ea61..44f73ce 100644 --- a/lib/view/dashboard/dashboard_screen.dart +++ b/lib/view/dashboard/dashboard_screen.dart @@ -102,7 +102,7 @@ class _DashboardScreenState extends State with UIMixin { } return ClipRRect( - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), child: SizedBox( height: 400, child: ProjectProgressChart( @@ -141,7 +141,7 @@ class _DashboardScreenState extends State with UIMixin { child: IgnorePointer( ignoring: !isProjectSelected, child: ClipRRect( - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), child: SizedBox( height: 400, child: AttendanceDashboardChart(), @@ -198,7 +198,7 @@ class _DashboardScreenState extends State with UIMixin { width: width, height: 100, paddingAll: 5, - borderRadiusAll: 10, + borderRadiusAll: 5, border: Border.all(color: Colors.grey.withOpacity(0.15)), child: Column( mainAxisAlignment: MainAxisAlignment.center, @@ -304,12 +304,12 @@ class _DashboardScreenState extends State with UIMixin { ignoring: !isEnabled, child: InkWell( onTap: () => _handleStatCardTap(statItem, isEnabled), - borderRadius: BorderRadius.circular(6), + borderRadius: BorderRadius.circular(5), child: MyCard.bordered( width: width, height: cardHeight, paddingAll: 4, - borderRadiusAll: 6, + borderRadiusAll: 5, border: Border.all(color: Colors.grey.withOpacity(0.15)), child: Column( mainAxisAlignment: MainAxisAlignment.center, diff --git a/lib/view/layouts/layout.dart b/lib/view/layouts/layout.dart index 7c072cc..10405c3 100644 --- a/lib/view/layouts/layout.dart +++ b/lib/view/layouts/layout.dart @@ -122,7 +122,7 @@ class _LayoutState extends State { return Card( elevation: 4, shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), ), margin: EdgeInsets.zero, clipBehavior: Clip.antiAlias, @@ -133,12 +133,48 @@ class _LayoutState extends State { child: Row( children: [ ClipRRect( - borderRadius: BorderRadius.circular(8), - child: Image.asset( - Images.logoDark, - height: 50, - width: 50, - fit: BoxFit.contain, + borderRadius: BorderRadius.circular(5), + child: Stack( + clipBehavior: Clip.none, + children: [ + Image.asset( + Images.logoDark, + height: 50, + width: 50, + fit: BoxFit.contain, + ), + if (isBetaEnvironment) + Positioned( + bottom: 0, + left: 0, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 4, vertical: 2), + decoration: BoxDecoration( + color: Colors.deepPurple, + borderRadius: + BorderRadius.circular(6), // capsule shape + border: Border.all( + color: Colors.white, width: 1.2), + boxShadow: [ + BoxShadow( + color: Colors.black12, + blurRadius: 2, + offset: Offset(0, 1), + ) + ], + ), + child: const Text( + 'B', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + ], ), ), const SizedBox(width: 12), @@ -218,21 +254,6 @@ class _LayoutState extends State { ], ), ), - if (isBetaEnvironment) - Container( - margin: const EdgeInsets.only(left: 8), - padding: const EdgeInsets.symmetric( - horizontal: 8, vertical: 2), - decoration: BoxDecoration( - color: Colors.deepPurple, - borderRadius: BorderRadius.circular(6), - ), - child: MyText.bodySmall( - 'BETA', - color: Colors.white, - fontWeight: 700, - ), - ), Stack( clipBehavior: Clip.none, alignment: Alignment.center, @@ -268,7 +289,7 @@ class _LayoutState extends State { left: 0, right: 0, child: Container( - padding: const EdgeInsets.all(10), + padding: const EdgeInsets.all(5), color: Colors.white, child: _buildProjectList(context, isMobile), ), @@ -285,7 +306,7 @@ class _LayoutState extends State { return Card( elevation: 4, shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), ), margin: EdgeInsets.zero, child: Padding( @@ -297,7 +318,7 @@ class _LayoutState extends State { width: 50, decoration: BoxDecoration( color: Colors.grey.shade300, - borderRadius: BorderRadius.circular(8), + borderRadius: BorderRadius.circular(5), ), ), const SizedBox(width: 12), @@ -343,11 +364,11 @@ class _LayoutState extends State { right: 16, child: Material( elevation: 4, - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), child: Container( decoration: BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(5), ), padding: const EdgeInsets.all(10), child: _buildProjectList(context, isMobile), @@ -397,7 +418,7 @@ class _LayoutState extends State { ? Colors.blueAccent.withOpacity(0.1) : Colors.transparent, shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(6), + borderRadius: BorderRadius.circular(5), ), visualDensity: const VisualDensity(vertical: -4), );