import 'package:cheminova/constants/constant.dart'; import 'package:cheminova/models/get_pd_rd_response.dart'; import 'package:cheminova/screens/Add_products_screen.dart'; import 'package:cheminova/services/api_client.dart'; import 'package:cheminova/services/api_urls.dart'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; class PdRdProvider extends ChangeNotifier { String? selectedDistributorType; bool _isLoading = false; bool get isLoading => _isLoading; List _pdRdList = []; List get pdRdList => _pdRdList; GetPdRdResponse? selectedPdRd; final _apiClient = ApiClient(); void setLoading(bool loading) { _isLoading = loading; notifyListeners(); } Future getPdRd() async { setLoading(true); try { Response response = await _apiClient.get( ApiUrls.getPdRdUrl + selectedDistributorType!.replaceAll(' ', '')); setLoading(false); if (response.statusCode == 200) { _pdRdList = (response.data as List) .map((json) => GetPdRdResponse.fromJson(json)) .toList(); notifyListeners(); } else { debugPrint("Failed to load data: ${response.statusCode}"); } } catch (e) { debugPrint("Error occurred: $e"); } finally { setLoading(false); } } void updateDistributorType(String? val) { selectedDistributorType = val; selectedPdRd = null; notifyListeners(); getPdRd(); } updatePdRdValue(GetPdRdResponse? val) { selectedPdRd = val; notifyListeners(); Future.delayed(const Duration(milliseconds: 500), () { if (selectedPdRd != null && selectedDistributorType != null) { Navigator.push( navigatorKey.currentContext!, MaterialPageRoute( builder: (context) => AddProductsScreen( distributorType: selectedDistributorType!, tradeName: selectedPdRd!.name ?? '', pdRdId: selectedPdRd!.sId!))); } }); } }