demo request ui ux improvement

ui_ux_rollout_merge
Sikander Saleem 2 weeks ago
parent bec088dd5a
commit 95d0bb4059

@ -43,6 +43,8 @@ import 'package:test_sa/providers/gas_request_providers/site_provider.dart';
import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/providers/work_order/vendor_provider.dart'; import 'package:test_sa/providers/work_order/vendor_provider.dart';
import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
import 'package:test_sa/views/widgets/item_views/info_text_widget.dart';
import '../../../../../../new_views/common_widgets/default_app_bar.dart'; import '../../../../../../new_views/common_widgets/default_app_bar.dart';
import '../../models/new_models/department.dart'; import '../../models/new_models/department.dart';
import 'demo_detail_view_page.dart'; import 'demo_detail_view_page.dart';
@ -92,76 +94,23 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
SingleChildScrollView( SingleChildScrollView(
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
child: Column( child: Column(
spacing: 12,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
// SingleItemDropDownMenu<Lookup, DemoPeriodLookupProvider>(
// context: context,
// title: "Demo Period",
// initialValue: demoPeriodLookup,
// showShadow: false,
// validator: (value) {
// if (value == null) return "Mandatory";
// return null;
// },
// backgroundColor: AppColor.fieldBgColor(context),
// showAsBottomSheet: true,
// onSelect: (value) {
// demoPeriodLookup = value;
// setState(() {});
// },
// ),
// 16.height,
...siteSection(), ...siteSection(),
16.height,
...doctorInfoSection(), ...doctorInfoSection(),
16.height,
...assetSection(), ...assetSection(),
16.height,
...vendorDetailsSection(), ...vendorDetailsSection(),
16.height, ...attachmentSection(),
"Attachments".bodyText(context).custom(color: AppColor.black10),
8.height,
SingleItemDropDownMenu<Lookup, DemoDocumentLookupProvider>(
context: context,
height: 56.toScreenHeight,
title: "Document Type",
initialValue: demoDocumentLookup,
showShadow: false,
validator: (value) {
if (value == null) return "Mandatory";
return null;
},
backgroundColor: AppColor.fieldBgColor(context),
showAsBottomSheet: true,
onSelect: (value) {
demoDocumentLookup = value;
setState(() {});
},
),
16.height,
AttachmentPicker(
label: context.translation.attachments,
attachment: _attachments,
buttonColor: AppColor.black10.withOpacity(demoDocumentLookup != null ? 1 : .4),
onlyImages: false,
enabled: demoDocumentLookup != null,
documentType: demoDocumentLookup,
showAsListView: true,
buttonIcon: 'image-plus'.toSvgAsset(color: (AppColor.primary10).withOpacity(demoDocumentLookup != null ? 1 : .4)),
onChange: (attachments) {
_attachments = attachments;
setState(() {});
},
),
16.height,
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Checkbox( Checkbox(
value: _demoFormModel.demoEaluationAcknowledge, value: _demoFormModel.demoEaluationAcknowledge,
visualDensity: const VisualDensity(horizontal: -4, vertical: -4), activeColor: AppColor.primary10,
activeColor: AppColor.blueStatus(context), side: BorderSide(color: AppColor.loadingColor(context), width: 1.0),
visualDensity: const VisualDensity(horizontal: -4.0, vertical: -4.0),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
@ -172,24 +121,29 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
Column( Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
spacing: 4,
children: [ children: [
"DEMO outcome evaluation form acknowledgement".bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral50), InfoTextLabelWidget(
4.height, label: "DEMO outcome evaluation form acknowledgement",
"I acknowledge at the end of the trial period I will complete and submit the Medical Technology Trial Outcome Form within two weeks." textStyle: AppTextStyles.bodyText,
.tinyFont(context) color: AppColor.textColor(context),
.custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral120), ),
InfoTextLabelWidget(
label: "I acknowledge at the end of the trial period I will complete and submit the Medical Technology Trial Outcome Form within two weeks.",
color: AppColor.lightTextColor(context),
),
], ],
).expanded, ).expanded,
], ],
), ),
16.height,
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Checkbox( Checkbox(
value: _demoFormModel.acknowledgeNotEquipment, value: _demoFormModel.acknowledgeNotEquipment,
visualDensity: const VisualDensity(horizontal: -4, vertical: -4), activeColor: AppColor.primary10,
activeColor: AppColor.blueStatus(context), side: BorderSide(color: AppColor.loadingColor(context), width: 1.0),
visualDensity: const VisualDensity(horizontal: -4.0, vertical: -4.0),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
@ -200,18 +154,23 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
Column( Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
spacing: 4,
children: [ children: [
"Acknowledgement of not using the equipment".bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral50), InfoTextLabelWidget(
4.height, label: "Acknowledgement of not using the equipment",
"I acknowledge at the end of the trial period I will not use the DEMO medical equipment & I will not book any patient on the DEMO medical equipment." textStyle: AppTextStyles.bodyText,
.tinyFont(context) color: AppColor.textColor(context),
.custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral120), ),
InfoTextLabelWidget(
label: "I acknowledge at the end of the trial period I will not use the DEMO medical equipment & I will not book any patient on the DEMO medical equipment.",
color: AppColor.lightTextColor(context),
),
], ],
).expanded, ).expanded,
], ],
), ),
], ],
).toShadowContainer(context, borderRadius: 20), ).toShadowContainer(context),
).expanded, ).expanded,
FooterActionButton.footerContainer( FooterActionButton.footerContainer(
context: context, context: context,
@ -231,8 +190,7 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
List<Widget> siteSection() { List<Widget> siteSection() {
return [ return [
'Site Details'.addTranslation.bodyText(context).custom(color: AppColor.black10), InfoHeader16Widget('Site Details'.addTranslation),
8.height,
SingleItemDropDownMenu<Site, SiteProvider>( SingleItemDropDownMenu<Site, SiteProvider>(
context: context, context: context,
title: context.translation.site, title: context.translation.site,
@ -252,7 +210,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
setState(() {}); setState(() {});
}, },
), ),
8.height,
SingleItemDropDownMenu<Building, NullableLoadingProvider>( SingleItemDropDownMenu<Building, NullableLoadingProvider>(
context: context, context: context,
title: context.translation.building, title: context.translation.building,
@ -273,7 +230,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
setState(() {}); setState(() {});
}, },
), ),
8.height,
SingleItemDropDownMenu<Floor, NullableLoadingProvider>( SingleItemDropDownMenu<Floor, NullableLoadingProvider>(
context: context, context: context,
title: context.translation.floor, title: context.translation.floor,
@ -293,7 +249,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
setState(() {}); setState(() {});
}, },
), ),
8.height,
SingleItemDropDownMenu<Department, NullableLoadingProvider>( SingleItemDropDownMenu<Department, NullableLoadingProvider>(
context: context, context: context,
title: context.translation.department, title: context.translation.department,
@ -318,8 +273,7 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
List<Widget> doctorInfoSection() { List<Widget> doctorInfoSection() {
return [ return [
"Doctor Details".bodyText(context).custom(color: AppColor.black10), InfoHeader16Widget('Doctor Details'.addTranslation),
8.height,
AppTextFormField( AppTextFormField(
initialValue: "", initialValue: "",
labelText: "Name", labelText: "Name",
@ -336,7 +290,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.docName = value; _demoFormModel.docName = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
initialValue: "", initialValue: "",
labelText: "Contact Number", labelText: "Contact Number",
@ -353,7 +306,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.docNumber = value; _demoFormModel.docNumber = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
initialValue: "", initialValue: "",
labelText: "Email", labelText: "Email",
@ -373,7 +325,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.docEmail = value; _demoFormModel.docEmail = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
labelText: "Item Description", labelText: "Item Description",
validator: (value) { validator: (value) {
@ -391,7 +342,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.itemDescription = value; _demoFormModel.itemDescription = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
labelText: "Request Description", labelText: "Request Description",
// validator: (value) { // validator: (value) {
@ -414,8 +364,7 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
List<Widget> assetSection() { List<Widget> assetSection() {
return [ return [
'Asset Details'.addTranslation.bodyText(context).custom(color: AppColor.black10), InfoHeader16Widget('Asset Details'.addTranslation),
8.height,
AppTextFormField( AppTextFormField(
labelText: "Asset Name", labelText: "Asset Name",
validator: (value) { validator: (value) {
@ -433,7 +382,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.assetName = value; _demoFormModel.assetName = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
labelText: "Model", labelText: "Model",
validator: (value) { validator: (value) {
@ -451,7 +399,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.model = value; _demoFormModel.model = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
labelText: "Manufacturer", labelText: "Manufacturer",
validator: (value) { validator: (value) {
@ -469,7 +416,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.manufacturer = value; _demoFormModel.manufacturer = value;
}, },
), ),
8.height,
SingleItemDropDownMenu<Lookup, DemoPeriodLookupProvider>( SingleItemDropDownMenu<Lookup, DemoPeriodLookupProvider>(
context: context, context: context,
height: 56.toScreenHeight, height: 56.toScreenHeight,
@ -492,8 +438,7 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
List<Widget> vendorDetailsSection() { List<Widget> vendorDetailsSection() {
return [ return [
'Vendor Details'.addTranslation.bodyText(context).custom(color: AppColor.black10), InfoHeader16Widget('Vendor Details'.addTranslation),
8.height,
AppTextFormField( AppTextFormField(
labelText: 'Vendor Name'.addTranslation, labelText: 'Vendor Name'.addTranslation,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context).textTheme.titleMedium,
@ -506,7 +451,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.vendorName = value; _demoFormModel.vendorName = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
labelText: 'Representative Name'.addTranslation, labelText: 'Representative Name'.addTranslation,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context).textTheme.titleMedium,
@ -519,7 +463,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.vendorRepresentativeName = value; _demoFormModel.vendorRepresentativeName = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
// controller: vendorPhoneController, // controller: vendorPhoneController,
labelText: "Contact Number", labelText: "Contact Number",
@ -533,7 +476,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.vendorContactNumber = value; _demoFormModel.vendorContactNumber = value;
}, },
), ),
8.height,
AppTextFormField( AppTextFormField(
labelText: "Email", labelText: "Email",
// controller: vendorEmailController, // controller: vendorEmailController,
@ -550,6 +492,43 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
]; ];
} }
List<Widget> attachmentSection() {
return [
InfoHeader16Widget('Attachments'.addTranslation),
SingleItemDropDownMenu<Lookup, DemoDocumentLookupProvider>(
context: context,
height: 56.toScreenHeight,
title: "Document Type",
initialValue: demoDocumentLookup,
showShadow: false,
validator: (value) {
if (value == null) return "Mandatory";
return null;
},
backgroundColor: AppColor.fieldBgColor(context),
showAsBottomSheet: true,
onSelect: (value) {
demoDocumentLookup = value;
setState(() {});
},
),
AttachmentPicker(
label: context.translation.attachments,
attachment: _attachments,
buttonColor: AppColor.primary10.withOpacity(demoDocumentLookup != null ? 1 : .4),
onlyImages: false,
enabled: demoDocumentLookup != null,
documentType: demoDocumentLookup,
showAsListView: true,
buttonIcon: 'image-plus'.toSvgAsset(color: (AppColor.primary10).withOpacity(demoDocumentLookup != null ? 1 : .4)),
onChange: (attachments) {
_attachments = attachments;
setState(() {});
},
),
];
}
Future<void> _submit() async { Future<void> _submit() async {
FocusScope.of(context).unfocus(); FocusScope.of(context).unfocus();
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {

@ -16,6 +16,8 @@ import 'package:test_sa/modules/loan_module/models/loan_attachment_model.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/swipe_module/dialoge/acknowledge_work_dialog.dart'; import 'package:test_sa/new_views/swipe_module/dialoge/acknowledge_work_dialog.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
import 'package:test_sa/views/widgets/item_views/info_text_widget.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
import '../../controllers/api_routes/urls.dart'; import '../../controllers/api_routes/urls.dart';
@ -111,7 +113,6 @@ class _DemoDetailViewPageState extends State<DemoDetailViewPage> {
), ),
8.height, 8.height,
], ],
12.height,
...requesterDetails(context, demoData), ...requesterDetails(context, demoData),
const Divider().defaultStyle(context), const Divider().defaultStyle(context),
...requestDetails(context, demoData), ...requestDetails(context, demoData),
@ -123,10 +124,7 @@ class _DemoDetailViewPageState extends State<DemoDetailViewPage> {
...vendorDetails(context, demoData), ...vendorDetails(context, demoData),
if (allAttachments.isNotEmpty) ...[ if (allAttachments.isNotEmpty) ...[
const Divider().defaultStyle(context), const Divider().defaultStyle(context),
Text( InfoHeader16Widget("Attachments"),
"Attachments".addTranslation,
style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
FilesList( FilesList(
showAsListView: true, showAsListView: true,
images: allAttachments.map((e) => URLs.getFileUrl(e.attachmentName ?? '') ?? '').toList(), images: allAttachments.map((e) => URLs.getFileUrl(e.attachmentName ?? '') ?? '').toList(),
@ -134,10 +132,7 @@ class _DemoDetailViewPageState extends State<DemoDetailViewPage> {
], ],
if (suppAttachments.isNotEmpty) ...[ if (suppAttachments.isNotEmpty) ...[
const Divider().defaultStyle(context), const Divider().defaultStyle(context),
Text( InfoHeader16Widget("Supplier Attachments"),
"Supplier Attachments".addTranslation,
style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
FilesList( FilesList(
showAsListView: true, showAsListView: true,
images: suppAttachments.map((e) => URLs.getFileUrl(e.attachmentName ?? '') ?? '').toList(), images: suppAttachments.map((e) => URLs.getFileUrl(e.attachmentName ?? '') ?? '').toList(),
@ -191,53 +186,53 @@ class _DemoDetailViewPageState extends State<DemoDetailViewPage> {
List<Widget> requestDetails(BuildContext context, DemoRequestModel? model) { List<Widget> requestDetails(BuildContext context, DemoRequestModel? model) {
return [ return [
Text("Request Details", style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)), InfoHeader16Widget("Request Information"),
'Request No: ${model?.requestNo ?? "-"}'.bodyText(context), InfoTextWidget(label: "Request No", value: model?.requestNo ?? "-", copyValue: true),
'Demo No: ${model?.demoNo ?? "-"}'.bodyText(context), InfoTextWidget(label: "Demo No", value: model?.demoNo ?? "-"),
'Demo Period: ${model?.demoPeriod?.name ?? "-"}'.bodyText(context), InfoTextWidget(label: "Demo Period", value: model?.demoPeriod?.name ?? "-"),
'${context.translation.site}: ${model?.site?.custName ?? "-"}'.bodyText(context), InfoTextWidget(label: context.translation.site, value: model?.site?.custName ?? "-"),
'${context.translation.building}: ${model?.building?.name ?? "-"}'.bodyText(context), InfoTextWidget(label: context.translation.building, value: model?.building?.name ?? "-"),
'${context.translation.floor}: ${model?.floor?.name ?? "-"}'.bodyText(context), InfoTextWidget(label: context.translation.floor, value: model?.floor?.name ?? "-"),
'${context.translation.department}: ${model?.department?.departmentName ?? "-"}'.bodyText(context), InfoTextWidget(label: context.translation.department, value: model?.department?.departmentName ?? "-"),
'Item Description: ${model?.itemDescription ?? "-"}'.bodyText(context), InfoTextWidget(label: "Item Description", value: model?.itemDescription ?? "-"),
'Request Description: ${model?.requestDescription ?? "-"}'.bodyText(context), InfoTextWidget(label: "Request Description", value: model?.requestDescription ?? "-"),
]; ];
} }
List<Widget> vendorDetails(BuildContext context, DemoRequestModel? model) { List<Widget> vendorDetails(BuildContext context, DemoRequestModel? model) {
return [ return [
Text("Vendor Information", style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)), InfoHeader16Widget("Vendor Information"),
'Name: ${model?.supplier?.name ?? model?.vendorName ?? "-"}'.bodyText(context), InfoTextWidget(label: "Name", value: model?.supplier?.name ?? model?.vendorName ?? "-"),
'Representative Name: ${model?.suppPerson?.name ?? model?.vendorRepresentativeName ?? "-"}'.bodyText(context), InfoTextWidget(label: "Representative Name", value: model?.suppPerson?.name ?? model?.vendorRepresentativeName ?? "-"),
'Contact: ${model?.supplier?.contact ?? model?.vendorContactNumber ?? "-"}'.bodyText(context), InfoTextWidget(label: "Contact", value: model?.supplier?.contact ?? model?.vendorContactNumber ?? "-"),
'Email: ${model?.supplier?.email ?? model?.vendorEmail ?? "-"}'.bodyText(context), InfoTextWidget(label: "Email", value: model?.supplier?.email ?? model?.vendorEmail ?? "-"),
]; ];
} }
List<Widget> assetDetails(BuildContext context, DemoRequestModel? model) { List<Widget> assetDetails(BuildContext context, DemoRequestModel? model) {
return [ return [
Text("Asset Information", style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)), InfoHeader16Widget("Asset Information"),
'${context.translation.assetName}: ${model?.assetName ?? "-"}'.bodyText(context), InfoTextWidget(label: context.translation.assetName, value: model?.assetName ?? "-"),
'${context.translation.manufacture}: ${model?.manufacturer ?? "-"}'.bodyText(context), InfoTextWidget(label: context.translation.manufacture, value: model?.manufacturer ?? "-"),
'${context.translation.model}: ${model?.model ?? "-"}'.bodyText(context), InfoTextWidget(label: context.translation.model, value: model?.model ?? "-"),
]; ];
} }
List<Widget> doctorDetails(BuildContext context, DemoRequestModel? model) { List<Widget> doctorDetails(BuildContext context, DemoRequestModel? model) {
return [ return [
Text("Doctor Information", style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)), InfoHeader16Widget("Doctor Information"),
'Name: ${model?.doctorName ?? "-"}'.bodyText(context), InfoTextWidget(label: "Name", value: model?.doctorName ?? "-"),
'Contact: ${model?.doctorContactNumber ?? "-"}'.bodyText(context), InfoTextWidget(label: "Contact", value: model?.doctorContactNumber ?? "-"),
'Email: ${model?.doctorContactEmail ?? "-"}'.bodyText(context), InfoTextWidget(label: "Email", value: model?.doctorContactEmail ?? "-"),
]; ];
} }
List<Widget> requesterDetails(BuildContext context, DemoRequestModel? model) { List<Widget> requesterDetails(BuildContext context, DemoRequestModel? model) {
return [ return [
Text("Requester Information", style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)), InfoHeader16Widget("Requester Information"),
'Name: ${model?.requesterUser?.requesterName ?? "-"}'.bodyText(context), InfoTextWidget(label: "Name", value: model?.requesterUser?.requesterName ?? "-"),
'Email: ${model?.requesterUser?.requesterEmail ?? "-"}'.bodyText(context), InfoTextWidget(label: "Email", value: model?.requesterUser?.requesterEmail ?? "-"),
'Contact: ${model?.requesterUser?.requesterMobile ?? "-"}'.bodyText(context), InfoTextWidget(label: "Contact", value: model?.requesterUser?.requesterMobile ?? "-"),
// 'Extension: ${loanData.requesterExtensionNo ?? "-"}'.bodyText(context), // 'Extension: ${loanData.requesterExtensionNo ?? "-"}'.bodyText(context),
]; ];
} }

Loading…
Cancel
Save