diff --git a/lib/controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart b/lib/controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart index 2436fc9d..fb9767f9 100644 --- a/lib/controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart +++ b/lib/controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart @@ -69,6 +69,7 @@ class ServiceReportAssistantsEmployeeProvider extends ChangeNotifier { List usersListJson = json.decode(response.body); _assistantEmployees = []; _assistantEmployees = usersListJson.map((type) => Engineer.fromJson(type ?? {})).map((e) => AssistantEmployees(user: AssignedEmployee(id: e.id, name: e.name))).toList(); + _assistantEmployees.insert(0, AssistantEmployees(id: -1, user: AssignedEmployee(id: "-1", name: "-- Select --"))); } _loading = false; notifyListeners(); diff --git a/lib/new_views/common_widgets/single_item_drop_down_menu.dart b/lib/new_views/common_widgets/single_item_drop_down_menu.dart index b675ccc7..2bc9c484 100644 --- a/lib/new_views/common_widgets/single_item_drop_down_menu.dart +++ b/lib/new_views/common_widgets/single_item_drop_down_menu.dart @@ -135,10 +135,11 @@ class _SingleItemDropDownMenuState>((value) { return DropdownMenuItem( diff --git a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart index 99d31698..8d5f6069 100644 --- a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart +++ b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart @@ -317,7 +317,11 @@ class _CreateSubWorkOrderPageState extends State { : null, enabled: !isCurrentAssigned, onSelect: (employee) { - _subWorkOrders.assistantEmployees = [employee?.copyWith(id: 0)]; + if (employee == null) { + _subWorkOrders.assistantEmployees = []; + } else { + _subWorkOrders.assistantEmployees = [employee?.copyWith(id: 0)]; + } }, ), 8.height, diff --git a/lib/views/pages/sub_workorder/work_order_details_bottom_sheet.dart b/lib/views/pages/sub_workorder/work_order_details_bottom_sheet.dart index ccde1c9a..eade4ee5 100644 --- a/lib/views/pages/sub_workorder/work_order_details_bottom_sheet.dart +++ b/lib/views/pages/sub_workorder/work_order_details_bottom_sheet.dart @@ -97,7 +97,11 @@ class _WorkOrderDetailsBottomSheetState extends State with TickerPr assetId: _serviceReport.callRequest?.asset?.id, initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null, onSelect: (employee) { - _serviceReport.assistantEmployees = [employee?.copyWith(id: 0)]; + if (employee == null) { + _serviceReport.assistantEmployees = []; + } else { + _serviceReport.assistantEmployees = [employee?.copyWith(id: 0)]; + } }, ), 8.height, diff --git a/lib/views/pages/user/requests/work_order/edit_service_report.dart b/lib/views/pages/user/requests/work_order/edit_service_report.dart index b54be757..64ed6947 100644 --- a/lib/views/pages/user/requests/work_order/edit_service_report.dart +++ b/lib/views/pages/user/requests/work_order/edit_service_report.dart @@ -223,7 +223,11 @@ class _EditServiceReportState extends State with TickerProvid assetId: _serviceReport.callRequest?.asset?.id, initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null, onSelect: (employee) { - _serviceReport.assistantEmployees = [employee?.copyWith(id: 0)]; + if (employee == null) { + _serviceReport.assistantEmployees = []; + } else { + _serviceReport.assistantEmployees = [employee?.copyWith(id: 0)]; + } }, ), 8.height, diff --git a/lib/views/widgets/status/report/service_report_assistant_employee_menu.dart b/lib/views/widgets/status/report/service_report_assistant_employee_menu.dart index be17cf82..27bd46a9 100644 --- a/lib/views/widgets/status/report/service_report_assistant_employee_menu.dart +++ b/lib/views/widgets/status/report/service_report_assistant_employee_menu.dart @@ -7,7 +7,7 @@ import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import '../../../../controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart'; import '../../../../models/new_models/assistant_employee.dart'; -class ServiceReportAssistantEmployeeMenu extends StatelessWidget { +class ServiceReportAssistantEmployeeMenu extends StatefulWidget { final Function(AssistantEmployees) onSelect; final AssistantEmployees initialValue; final String title; @@ -16,6 +16,28 @@ class ServiceReportAssistantEmployeeMenu extends StatelessWidget { const ServiceReportAssistantEmployeeMenu({Key key, this.enabled = true, @required this.onSelect, @required this.assetId, this.title, this.initialValue}) : super(key: key); + @override + State createState() => _ServiceReportAssistantEmployeeMenuState(); +} + +class _ServiceReportAssistantEmployeeMenuState extends State { + AssistantEmployees _initialValue; + + @override + void initState() { + _initialValue = widget.initialValue; + super.initState(); + } + + @override + void didUpdateWidget(covariant ServiceReportAssistantEmployeeMenu oldWidget) { + if (widget.initialValue != oldWidget.initialValue) { + _initialValue = widget.initialValue; + setState(() {}); + } + super.didUpdateWidget(oldWidget); + } + @override Widget build(BuildContext context) { ServiceReportAssistantsEmployeeProvider menuProvider = Provider.of(context); @@ -24,15 +46,15 @@ class ServiceReportAssistantEmployeeMenu extends StatelessWidget { isFailedLoading: menuProvider.assistantEmployees == null, stateCode: menuProvider.stateCode, onRefresh: () async { - await menuProvider.getAssistantEmployees(assetId); + await menuProvider.getAssistantEmployees(widget.assetId); }, child: SingleItemDropDownMenu( - title: title, + title: widget.title, context: context, - enabled: enabled, - initialValue: initialValue, + enabled: widget.enabled, + initialValue: _initialValue, staticData: menuProvider.assistantEmployees, - onSelect: onSelect, + onSelect: widget.onSelect, ), // child: AssistantEmployeeMenu( // title: title,