import 'package:diplomaticquarterapp/analytics/google-analytics.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/AppointmentDetails.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class TimeLineWidget extends StatelessWidget { final bool? isUp; final AppoitmentAllHistoryResultList? appoitmentAllHistoryResul; TimeLineWidget({Key? key, this.isUp, this.appoitmentAllHistoryResul}); @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return Stack( children: [ Container( width: 140, height: 190, color: Colors.transparent, child: Center( child: Divider( color: Colors.white, height: 2, thickness: 2, ), ), ), if (isUp!) Positioned( top: projectViewModel.isArabic ? 15 : 18, child: Container( margin: EdgeInsets.only(left: 2, right: 2), child: Column( children: [ Texts( appoitmentAllHistoryResul?.doctorNameObj, color: Colors.white, fontSize: 10.5, fontWeight: FontWeight.normal, ), SizedBox( height: 3, ), LargeAvatar( onTap: () { //AppointmentDetails GAnalytics.APPOINTMENT_DETAIL_FLOW_TYPE = 'timeline'; Navigator.push( context, FadePage( page: AppointmentDetails( appo: appoitmentAllHistoryResul!, ), ), ); }, name: appoitmentAllHistoryResul!.doctorImageURL!, width: 30, height: 30, ), Container( height: 20, width: 2, color: Colors.white, ), Container( width: 15, height: 15, decoration: BoxDecoration( color: Colors.yellow[700], border: Border.all(color: Colors.yellow[700]!, width: 2), shape: BoxShape.rectangle, borderRadius: BorderRadius.all( Radius.circular(25.0), ), ), ), SizedBox( height: 4, ), Texts( DateUtil.getMonthDayYearLangDateFormatted(DateUtil.convertStringToDate(appoitmentAllHistoryResul!.appointmentDate!), projectViewModel.isArabic ? "ar" : "en"), color: Colors.white, fontSize: 12.5, fontWeight: FontWeight.normal, ), Texts( appoitmentAllHistoryResul!.clinicName, color: Colors.white, fontSize: 12.5, fontWeight: FontWeight.normal, ) ], ), ), ) else Positioned( top: projectViewModel.isArabic ? 35 : 50, child: Container( margin: EdgeInsets.only(left: 2, right: 2), child: Column( children: [ Texts( appoitmentAllHistoryResul!.clinicName!.trim(), color: Colors.white, fontSize: 12.5, fontWeight: FontWeight.normal, ), Texts( DateUtil.getMonthDayYearLangDateFormatted(DateUtil.convertStringToDate(appoitmentAllHistoryResul!.appointmentDate!), projectViewModel.isArabic ? "ar" : "en"), color: Colors.white, fontSize: 12.5, fontWeight: FontWeight.normal, ), SizedBox( height: 5, ), Container( width: 15, height: 15, decoration: BoxDecoration( color: Colors.yellow[700], border: Border.all(color: Colors.yellow[700]!, width: 2), shape: BoxShape.rectangle, borderRadius: BorderRadius.all( Radius.circular(25.0), ), ), ), Container( height: 20, width: 2, color: Colors.white, ), LargeAvatar( onTap: () { Navigator.push( context, FadePage( page: AppointmentDetails( appo: appoitmentAllHistoryResul!, ))); }, name: appoitmentAllHistoryResul!.doctorNameObj!, url: appoitmentAllHistoryResul!.doctorImageURL!, width: 30, height: 30, ), SizedBox( height: 3, ), Texts( appoitmentAllHistoryResul!.doctorNameObj!.trim(), color: Colors.white, fontSize: 10.5, fontWeight: FontWeight.normal, ), ], ), ), ), Container() ], ); } }