import 'package:wanisdriver/widgets/custom_text.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../Provider/language_provider.dart'; import '../Provider/utils_singleton.dart'; import '../Screen/RatingScreen.dart'; import '../config/constants/app_constant.dart'; import '../config/constants/arabe.dart' as Language; import '../utils/colors.dart'; class DriverInfoCard extends StatefulWidget { const DriverInfoCard({ Key? key, }) : super(key: key); @override _DriverInfoCardState createState() => _DriverInfoCardState(); } class _DriverInfoCardState extends State { Color enlignecolor = const Color(0xFFFFFFFF); Color horlinecolor = const Color(0xFFFFFFFF); @override void initState() { super.initState(); } @override Widget build(BuildContext context) { return LayoutBuilder( builder: (context, constraints) { return Container( decoration: BoxDecoration( color: Theme.of(context).brightness == Brightness.dark ?AppColors.blackBackgroundColor:AppColors.whiteBackgroundColor, borderRadius: const BorderRadius.only( topLeft: Radius.circular(15.0), topRight: Radius.circular(15.0), ), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.1), blurRadius: 8.0, offset: const Offset(0, 4), ), ], ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Consumer( builder: (context, utilsInstance, _) { final isAvailable = utilsInstance.user?.driver!.available ?? false; return Container( padding: const EdgeInsets.only( top: 16.0, bottom: 16.0, left: 16.0, right: 16.0), width: double.infinity, alignment: Alignment.center, decoration: BoxDecoration( color: Theme.of(context).brightness == Brightness.dark ?AppColors.blackBackgroundColor:AppColors.primaryNewColor, borderRadius: const BorderRadius.only( topLeft: Radius.circular(15.0), topRight: Radius.circular(15.0), ), ), child: Txt( text: isAvailable ? "You are online" : "You are offline", style: TextStyle( fontSize: 18.0, fontFamily: languageSingleton.currentLangCode == Language.ar ? 'Baloo_Bhaijaan_2' : 'Poppins', fontWeight: FontWeight.bold, color: isAvailable ? enlignecolor : horlinecolor, ), ), ); }, ), const SizedBox(height: 16.0), Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(height: 16.0), Row( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( width: 50, height: 50, decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( color: utils.user!.driver!.available ? enlignecolor : horlinecolor, // Set your desired border color width: 2, // Set border width ), ), child: CircleAvatar( radius: 15, backgroundImage: utils.user?.image != null ? NetworkImage( "$mediaUrl${utils.user?.image?.url}") as ImageProvider : const AssetImage( 'assets/images/user_avatar.png'), backgroundColor: Colors .transparent, // To avoid background color overlap ), ), const SizedBox(width: 16.0), Text( utils.user!.name ?? "Driver Name", overflow: TextOverflow.ellipsis, style: const TextStyle( fontSize: 15.0, fontWeight: FontWeight.bold, ), ), ], ), const SizedBox(height: 16.0), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Txt( text: "Todaye's arnings", overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 17.0, fontWeight: FontWeight.bold, ), ), Text( "${utils.user!.driver!.dailyearnings?.toStringAsFixed(2)} TND", overflow: TextOverflow.ellipsis, style:const TextStyle( fontSize: 21.0, fontWeight: FontWeight.bold, color: AppColors.primaryColor), ), ], ), // const SizedBox(width: 16.0), // Container( // alignment: Alignment.center, // child: const Icon(Icons.arrow_forward_ios_sharp, // color: Color(0xFF431878))), ], ), const Divider(), const Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Txt( text: "Activity Score", overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 17.0, fontWeight: FontWeight.bold, ), ), Text( "10%", overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 21.0, fontWeight: FontWeight.bold, color: Colors.green), ), ], ), SizedBox(width: 16.0), // Container( // alignment: Alignment.center, // child: const Icon(Icons.arrow_forward_ios_sharp, // color: Color(0xFF431878))), ], ), const Divider(), InkWell( onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => const RatingScreen(), ), ); }, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Txt( text: "Current rating", overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 17.0, fontWeight: FontWeight.bold, ), ), Row( children: [ Text( "${utils.user?.driver!.rating?.toStringAsFixed(1)}", overflow: TextOverflow.ellipsis, style: const TextStyle( fontSize: 21.0, fontWeight: FontWeight.bold, color: Color(0xFFF9CA0A)), ), Container( alignment: Alignment.center, child: const Icon(Icons.star, color: Color(0xFFF9CA0A))), ], ), ], ), const SizedBox(width: 16.0), Container( alignment: Alignment.center, child: const Icon(Icons.arrow_forward_ios_sharp, color: AppColors.primaryColor)), ], ), ), ], ), ), ], ), ); }, ); } }