From 2384bab11f6721e40085592d9496ff73d5e29926 Mon Sep 17 00:00:00 2001 From: zaid_daoud Date: Sun, 3 Sep 2023 13:31:36 +0300 Subject: [PATCH] Fault Desc Issue Fixed --- .../report/create_service_report.dart | 6 +- .../status/report/fault_desc_menu.dart | 70 ++++++++++--------- .../service_report_fault_description.dart | 25 +++---- 3 files changed, 54 insertions(+), 47 deletions(-) diff --git a/lib/views/pages/user/requests/report/create_service_report.dart b/lib/views/pages/user/requests/report/create_service_report.dart index bdd295e0..80e14e25 100644 --- a/lib/views/pages/user/requests/report/create_service_report.dart +++ b/lib/views/pages/user/requests/report/create_service_report.dart @@ -547,8 +547,10 @@ class _CreateServiceReportState extends State with TickerPr initialValue: _serviceReport.faultDescription, enabled: false, onSelect: (status) { - _serviceReport.faultDescription = status; - setState(() {}); + if (status != null) { + _serviceReport.faultDescription = status; + setState(() {}); + } }, ), const SizedBox( diff --git a/lib/views/widgets/status/report/fault_desc_menu.dart b/lib/views/widgets/status/report/fault_desc_menu.dart index a2b670de..84de4304 100644 --- a/lib/views/widgets/status/report/fault_desc_menu.dart +++ b/lib/views/widgets/status/report/fault_desc_menu.dart @@ -7,8 +7,9 @@ class FaultDescriptionMenu extends StatefulWidget { final List statuses; final FaultDescription initialStatus; final Function(FaultDescription) onSelect; + final bool enabled; - const FaultDescriptionMenu({Key key, this.statuses, this.onSelect, this.initialStatus}) : super(key: key); + const FaultDescriptionMenu({Key key, this.statuses, this.onSelect, this.initialStatus, this.enabled}) : super(key: key); @override _SingleStatusMenuState createState() => _SingleStatusMenuState(); @@ -71,39 +72,42 @@ class _SingleStatusMenuState extends State { // AppStyle.boxShadow // ] ), - child: DropdownButton( - value: _selectedStatus, - iconSize: 24, - icon: const Icon(Icons.keyboard_arrow_down_rounded), - elevation: 0, - isExpanded: true, - hint: Text( - "Select", - style: Theme.of(context).textTheme.subtitle1, - ), - style: TextStyle(color: Theme.of(context).primaryColor), - underline: SizedBox.shrink(), - onChanged: (FaultDescription newValue) { - setState(() { - _selectedStatus = newValue; - }); - widget.onSelect(newValue); - }, - items: widget.statuses.map>( - (FaultDescription value) { - return DropdownMenuItem( - value: value, - child: Text( - value.defectName ?? "", - style: Theme.of(context).textTheme.subtitle1.copyWith( - color: Theme.of(context).primaryColor, - fontSize: 11, - //fontWeight: FontWeight.bold - ), - ), - ); + child: IgnorePointer( + ignoring: !widget.enabled, + child: DropdownButton( + value: _selectedStatus, + iconSize: 24, + icon: const Icon(Icons.keyboard_arrow_down_rounded), + elevation: 0, + isExpanded: true, + hint: Text( + "Select", + style: Theme.of(context).textTheme.subtitle1, + ), + style: TextStyle(color: Theme.of(context).primaryColor), + underline: SizedBox.shrink(), + onChanged: (FaultDescription newValue) { + setState(() { + _selectedStatus = newValue; + }); + widget.onSelect(newValue); }, - ).toList(), + items: widget.statuses.map>( + (FaultDescription value) { + return DropdownMenuItem( + value: value, + child: Text( + value.defectName ?? "", + style: Theme.of(context).textTheme.subtitle1.copyWith( + color: Theme.of(context).primaryColor, + fontSize: 11, + //fontWeight: FontWeight.bold + ), + ), + ); + }, + ).toList(), + ), ), ); } diff --git a/lib/views/widgets/status/report/service_report_fault_description.dart b/lib/views/widgets/status/report/service_report_fault_description.dart index facda9dd..fc90a3e7 100644 --- a/lib/views/widgets/status/report/service_report_fault_description.dart +++ b/lib/views/widgets/status/report/service_report_fault_description.dart @@ -7,8 +7,6 @@ import 'package:test_sa/models/fault_description.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/status/report/fault_desc_menu.dart'; -import '../../app_text_form_field.dart'; - class ServiceReportFaultDescription extends StatelessWidget { final String requestId; final Function(FaultDescription) onSelect; @@ -29,16 +27,19 @@ class ServiceReportFaultDescription extends StatelessWidget { menuProvider.reset(); await menuProvider.getCallRequestForWorkOrder(user: userProvider.user, host: settingProvider.host, requestId: requestId); }, - child: ((menuProvider.items?.isEmpty ?? true) || (!enabled)) - ? ATextFormField( - initialValue: (!enabled) ? initialValue?.defectName ?? "" : "", - enable: false, - ) - : FaultDescriptionMenu( - initialStatus: initialValue, - statuses: menuProvider.items, - onSelect: onSelect, - ), + child: Builder(builder: (context) { + if (initialValue == null && !enabled && menuProvider.items.isNotEmpty) { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + onSelect(menuProvider.items.first); + }); + } + return FaultDescriptionMenu( + initialStatus: initialValue, + statuses: menuProvider.items, + onSelect: onSelect, + enabled: enabled, + ); + }), ); } }