import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:youmazgestion/controller/userController.dart'; class CustomAppBar extends StatelessWidget implements PreferredSizeWidget { final String title; final Widget? subtitle; final List? actions; final bool automaticallyImplyLeading; final Color? backgroundColor; final UserController userController = Get.put(UserController()); CustomAppBar({ Key? key, required this.title, this.subtitle, this.actions, this.automaticallyImplyLeading = true, this.backgroundColor, }) : super(key: key); @override Size get preferredSize => Size.fromHeight(subtitle == null ? 56.0 : 80.0); @override Widget build(BuildContext context) { return Container( decoration: BoxDecoration( gradient: LinearGradient( begin: Alignment.topLeft, end: Alignment.bottomRight, colors: [ Colors.blue.shade900, Colors.blue.shade800, ], ), boxShadow: [ BoxShadow( color: Colors.blue.shade900.withOpacity(0.3), offset: const Offset(0, 2), blurRadius: 4, ), ], ), child: AppBar( backgroundColor: backgroundColor ?? Colors.transparent, elevation: 0, automaticallyImplyLeading: automaticallyImplyLeading, centerTitle: false, iconTheme: const IconThemeData( color: Colors.white, size: 24, ), actions: actions, title: subtitle == null ? Text( title, style: const TextStyle( fontSize: 20, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: 0.5, ), ) : Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Text( title, style: const TextStyle( fontSize: 20, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: 0.5, ), ), const SizedBox(height: 2), Obx(() => Text( userController.role!='Super Admin'?'Point de vente: ${userController.pointDeVenteDesignation}':'', style: TextStyle( fontSize: 12, fontWeight: FontWeight.w400, color: Colors.white.withOpacity(0.9), letterSpacing: 0.3, ), )), if (subtitle != null) ...[ const SizedBox(height: 2), DefaultTextStyle( style: TextStyle( fontSize: 12, color: Colors.white.withOpacity(0.8), fontWeight: FontWeight.w400, ), child: subtitle!, ), ], ], ), flexibleSpace: Container( decoration: BoxDecoration( gradient: LinearGradient( begin: Alignment.topLeft, end: Alignment.bottomRight, colors: [ Colors.blue.shade900, Colors.blue.shade800, ], ), ), ), ), ); } }