import 'package:flutter/material.dart'; import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/models/gas_refill/gas_refill_model.dart'; import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart'; class GasRefillItem extends StatelessWidget { final int index; final GasRefillModel item; final Function(GasRefillModel) onPressed; const GasRefillItem({Key key, this.item, this.onPressed, this.index}) : super(key: key); @override Widget build(BuildContext context) { Color itemColor = index % 2 == 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary; Color onItemColor = index % 2 != 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary; return Padding( padding: const EdgeInsets.symmetric(vertical: 4), child: ElevatedButton( style: ElevatedButton.styleFrom( padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 8), backgroundColor: itemColor, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(AppStyle.getBorderRadius(context)), ), ), //padding: EdgeInsets.symmetric(vertical: 8,horizontal: 8), onPressed: () { onPressed(item); }, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( item.title ?? "-----", style: Theme.of(context).textTheme.titleLarge.copyWith(color: onItemColor, fontSize: 16, fontWeight: FontWeight.bold), ), Row( children: [ Expanded( child: Text( context.translation.hospital, style: Theme.of(context).textTheme.titleSmall.copyWith( color: onItemColor, ), ), ), if (item.clientName != null) Text( item.clientName, style: Theme.of(context).textTheme.titleSmall.copyWith( color: onItemColor, ), ), ], ), Divider(color: onItemColor), Row( children: [ Expanded( child: Text(context.translation.status, style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)), ), if (item.status?.id != null) StatusLabel(label: item.status.name, backgroundColor: AColors.getGasStatusColor(item.status.id)), ], ), if (item?.expectedDate != null) Divider(color: onItemColor), if (item?.expectedDate != null) Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text("Expected Date", style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)), Text(item.expectedDate.toIso8601String().split("T").first, style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)), ], ), if (item?.details?.isNotEmpty ?? false) Divider(color: onItemColor), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ if (item?.details?.isNotEmpty ?? false) Text("Gas Type", style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)), Column( crossAxisAlignment: CrossAxisAlignment.end, children: item.details .map( (gas) => gas?.type?.name?.isNotEmpty ?? false ? Text(gas?.type?.name, style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)) : const SizedBox.shrink(), ) .toList(), ) ], ), ], ), ), ], ), ], ), ), ); } }