import 'package:flutter/material.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/models/all_requests_and_count_model.dart'; import 'package:test_sa/models/new_models/dashboard_detail.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart'; import 'traf_request_detail_page.dart'; class TrafRequestItemView extends StatelessWidget { final Data? requestData; final RequestsDetails? requestDetails; final bool showShadow; const TrafRequestItemView({Key? key, this.requestData, this.requestDetails, this.showShadow = true}) : super(key: key); @override Widget build(BuildContext context) { if (requestData != null) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ // StatusLabel( // label: requestData!.priorityName!, // textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.priorityName!), // backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.priorityName!), // ), // 8.width, StatusLabel( label: requestData!.statusName!, textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.statusName!), backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!), ), 1.width.expanded, Text( requestData!.transactionDate?.toServiceRequestCardFormat ?? "", textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50), ), ], ), 8.height, (requestData?.typeTransaction ?? "TRAF Request").heading5(context), infoWidget(label: context.translation.requestType, value: requestData?.requestTypeName, context: context), infoWidget(label: "TRAF No", value: requestData?.requestNo, context: context), 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ Text( context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), ), 4.width, Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) ], ), ], ).toShadowContainer(context, withShadow: showShadow).onPress(() async { Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestData!.id!))); }); } return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ // StatusLabel( // label: requestDetails!.priority!, // textColor: AppColor.getRequestStatusTextColorByName(context, requestDetails?.priority!), // backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.priority!), // ), // 8.width, StatusLabel( label: requestDetails!.status!, textColor: AppColor.getRequestStatusTextColorByName(context, requestDetails?.status!), backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status!), ), 1.width.expanded, Text( requestDetails!.date?.toServiceRequestCardFormat ?? "", textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50), ), ], ), 8.height, (requestDetails?.nameOfType ?? "TRAF Request").heading5(context), 8.height, infoWidget(label: context.translation.requestType, value: requestDetails!.requestType, context: context), infoWidget(label: "TRAF No", value: requestDetails!.requestNo, context: context), infoWidget(label: context.translation.site, value: requestDetails!.site, context: context), 8.height, Row( mainAxisSize: MainAxisSize.min, children: [ Text( context.translation.viewDetails, style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)), ), 4.width, Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) ], ), ], ).toShadowContainer(context, withShadow: showShadow).onPress(() async { Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestDetails!.id!))); }); } Widget infoWidget({required String label, String? value, required BuildContext context}) { if (value != null && value.isNotEmpty) { return '$label: $value'.bodyText(context); } return const SizedBox(); } }