import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:marco/helpers/widgets/my_text.dart'; import 'package:marco/controller/project_controller.dart'; class CustomAppBar extends StatelessWidget implements PreferredSizeWidget { final String title; final VoidCallback? onBackPressed; const CustomAppBar({ super.key, required this.title, this.onBackPressed, }); @override Widget build(BuildContext context) { return PreferredSize( preferredSize: const Size.fromHeight(72), child: Container( decoration: BoxDecoration( color: const Color(0xFFF5F5F5), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.15), blurRadius: 0.5, offset: const Offset(0, 0.5), ) ], ), child: SafeArea( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 16), child: Row( children: [ IconButton( icon: const Icon(Icons.arrow_back_ios_new, color: Colors.black, size: 20), onPressed: onBackPressed ?? Get.back, splashRadius: 24, ), const SizedBox(width: 8), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ MyText.titleLarge( title, fontWeight: 700, color: Colors.black, ), const SizedBox(height: 2), GetBuilder( builder: (projectController) { final projectName = projectController.selectedProject?.name ?? 'Select Project'; return Row( children: [ const Icon(Icons.work_outline, size: 14, color: Colors.grey), const SizedBox(width: 4), Expanded( child: MyText.bodySmall( projectName, fontWeight: 600, overflow: TextOverflow.ellipsis, color: Colors.grey[700], ), ), ], ); }, ), ], ), ), ], ), ), ), ), ); } @override Size get preferredSize => const Size.fromHeight(72); }