import 'package:blinking_text/blinking_text.dart'; import 'package:flutter/material.dart'; import 'package:hmg_qline/constants/app_constants.dart'; import 'package:hmg_qline/models/global_config_model.dart'; import 'package:hmg_qline/utilities/enums.dart'; import 'package:hmg_qline/utilities/extensions.dart'; import 'package:hmg_qline/views/common_widgets/app_texts_widget.dart'; import 'package:hmg_qline/views/view_helpers/size_config.dart'; class TicketItem extends StatelessWidget { final String ticketNo; final String roomNo; final bool blink; final double scale; final bool isClinicAdded; final TextDirection textDirection; final String roomText; final GlobalConfigurationsModel globalConfigurationsModel; final CallTypeEnum callTypeEnum; final ScreenTypeEnum screenTypeEnum; final LanguageEnum langTypeEnum; const TicketItem({ super.key, required this.isClinicAdded, required this.ticketNo, required this.roomNo, required this.scale, required this.textDirection, required this.roomText, required this.globalConfigurationsModel, required this.callTypeEnum, required this.screenTypeEnum, required this.langTypeEnum, this.blink = false, }); String getFormattedTicket(String ticketNo, bool isClinicAdded) { if (isClinicAdded) { var formattedString = ticketNo.split(" "); if (formattedString.length > 1) { return "${formattedString[0]} ${formattedString[1]}"; } else { return ticketNo; } } return ticketNo; } @override Widget build(BuildContext context) { return Transform.scale( scale: scale, child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ BlinkText(getFormattedTicket(ticketNo, isClinicAdded), style: TextStyle( fontSize: SizeConfig.getWidthMultiplier() * 10, letterSpacing: -1, height: 0.5, fontWeight: FontWeight.bold, fontFamily: langTypeEnum == LanguageEnum.arabic ? AppStrings.fontNameCairo : AppStrings.fontNamePoppins, ), beginColor: Colors.black, endColor: blink ? Colors.black.withOpacity(0.1) : Colors.black, times: 0, duration: const Duration(seconds: 1)), const SizedBox(height: 30), screenTypeEnum == ScreenTypeEnum.roomLevelScreen ? const SizedBox() : Directionality( textDirection: textDirection, child: Row( crossAxisAlignment: CrossAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( padding: const EdgeInsets.only(bottom: 8.0), child: SizedBox( height: SizeConfig.getWidthMultiplier() * 3, child: callTypeEnum.getIconByCallType(SizeConfig.getHeightMultiplier() * 0.3), ), ), const SizedBox(width: 13), AppText( callTypeEnum.getMessageByCallType(globalConfigurationsModel, isListView: false), color: callTypeEnum.getColorByCallType(), fontSize: SizeConfig.getWidthMultiplier() * 3.8, fontWeight: FontWeight.w600, fontHeight: 1, fontFamily: langTypeEnum == LanguageEnum.arabic ? AppStrings.fontNameCairo : AppStrings.fontNamePoppins, ), Container( color: Colors.grey.withOpacity(0.5), width: 5, height: SizeConfig.getHeightMultiplier() * 0.3, margin: const EdgeInsets.symmetric(horizontal: 15), ), AppText( textDirection == TextDirection.ltr ? "$roomText: $roomNo" : " $roomNo : $roomText", color: callTypeEnum.getColorByCallType(), letterSpacing: -1, fontSize: SizeConfig.getWidthMultiplier() * 3.8, fontWeight: FontWeight.w600, fontHeight: 1, fontFamily: langTypeEnum == LanguageEnum.arabic ? AppStrings.fontNameCairo : AppStrings.fontNamePoppins, ), ], ), ), ], ), ); } }