refactor: Standardize border radius values across dashboard components

This commit is contained in:
Vaibhav Surve 2025-09-24 15:04:51 +05:30
parent 7d211e24f8
commit 1d9c416f68
6 changed files with 77 additions and 65 deletions

View File

@ -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<void> initializeApp() async {
await _handleAuthTokens();
await _setupTheme();
await _setupControllers();
await _setupFirebaseMessaging();
await _setupFirebaseMessaging();
_finalizeAppStyle();
@ -47,16 +46,9 @@ Future<void> initializeApp() async {
Future<void> _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<void> _setupFirebase() async {
await Firebase.initializeApp();
logSafe("💡 Firebase initialized.");
@ -126,7 +118,6 @@ Future<void> _setupFirebaseMessaging() async {
logSafe("💡 Firebase Messaging initialized.");
}
void _finalizeAppStyle() {
AppStyle.init();
logSafe("💡 AppStyle initialized.");

View File

@ -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),
);

View File

@ -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),
),
);
}

View File

@ -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(

View File

@ -102,7 +102,7 @@ class _DashboardScreenState extends State<DashboardScreen> 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<DashboardScreen> 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<DashboardScreen> 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<DashboardScreen> 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,

View File

@ -122,7 +122,7 @@ class _LayoutState extends State<Layout> {
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<Layout> {
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<Layout> {
],
),
),
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<Layout> {
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<Layout> {
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<Layout> {
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<Layout> {
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<Layout> {
? Colors.blueAccent.withOpacity(0.1)
: Colors.transparent,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(6),
borderRadius: BorderRadius.circular(5),
),
visualDensity: const VisualDensity(vertical: -4),
);