diff --git a/src/views/PrincipalDistributors/addPrincipalDistributor.js b/src/views/PrincipalDistributors/addPrincipalDistributor.js index c0f48dc..875b039 100644 --- a/src/views/PrincipalDistributors/addPrincipalDistributor.js +++ b/src/views/PrincipalDistributors/addPrincipalDistributor.js @@ -46,31 +46,29 @@ const AddPrincipalDistributor = () => { const [selectedState, setSelectedState] = useState(null); const [selectedCity, setSelectedCity] = useState(null); - useEffect(() => { - const fetchStates = async () => { - const states = State.getStatesOfCountry("IN").map((state) => ({ - label: state.name, - value: state.isoCode, - })); - setStateOptions(states); - }; - fetchStates(); - }, []); + // Fetch all available states on mount + useEffect(() => { + const states = State.getStatesOfCountry("IN").map((state) => ({ + label: state.name, + value: state.isoCode, + })); + setStateOptions(states); +}, []); - useEffect(() => { - const fetchCities = async () => { - if (selectedState) { - const cities = City.getCitiesOfState("IN", selectedState.value).map( - (city) => ({ - label: city.name, - value: city.name, - }) - ); - setCityOptions(cities); - } - }; - fetchCities(); - }, [selectedState]); +// Fetch city options whenever selected state changes +useEffect(() => { + if (selectedState) { + const cities = City.getCitiesOfState("IN", selectedState.value).map( + (city) => ({ + label: city.name, + value: city.name, + }) + ); + setCityOptions(cities); + } else { + setCityOptions([]); // Reset cities if no state selected + } +}, [selectedState]); const handleInputChange = (e) => { setUser({ ...user, [e.target.name]: e.target.value }); @@ -82,10 +80,21 @@ const AddPrincipalDistributor = () => { const handleStateChange = (event, newValue) => { setSelectedState(newValue); + setData((prev) => ({ + ...prev, + state: newValue ? newValue.label : "", + city: "", + })); + setSelectedCity(null); // Clear city when state changes + setCityOptions([]); // Reset city options }; const handleCityChange = (event, newValue) => { setSelectedCity(newValue); + setData((prev) => ({ + ...prev, + city: newValue ? newValue.label : "", + })); }; const handleFormSubmit = async (e) => { @@ -97,8 +106,12 @@ const AddPrincipalDistributor = () => { !user.name || !user.email || !user.phone || - !selectedState || - !selectedCity || + !data.panNumber || + !data.tradeName || + !data.gstNumber || + !data.country || + !data.state || + !data.city || !data.street || !data.postalCode ) { @@ -124,8 +137,10 @@ const AddPrincipalDistributor = () => { Name: user.name, phoneNumber: user.phone, isDefault: true, - state: selectedState.label, // Send selected state label - city: selectedCity.label, // Send selected city label + state: data.state, + city: data.city, + // state: selectedState.label, // Send selected state label + // city: selectedCity.label, // Send selected city label }, { headers: { @@ -421,7 +436,7 @@ const AddPrincipalDistributor = () => { State* - + { fullWidth variant="outlined" label="Select State" - error={!selectedState} - helperText={!selectedState ? "Select a state" : null} + // error={!selectedState} + // helperText={!selectedState ? "Select a state" : null} /> )} /> + + + {/* City */} @@ -453,7 +480,7 @@ const AddPrincipalDistributor = () => { City* - + { fullWidth variant="outlined" label="Select City" - error={!selectedCity} - helperText={!selectedCity ? "Select a city" : null} + // error={!selectedCity} + // helperText={!selectedCity ? "Select a city" : null} /> )} /> + + + {/* Street */} diff --git a/src/views/RetailDistributors/EditRetailDistributor.js b/src/views/RetailDistributors/EditRetailDistributor.js index a4c1cfb..9626646 100644 --- a/src/views/RetailDistributors/EditRetailDistributor.js +++ b/src/views/RetailDistributors/EditRetailDistributor.js @@ -76,6 +76,8 @@ const EditRetailDistributor = () => { }, [selectedState]); const handleInputChange = (e) => { + // console.log(e.target.name, e.target.value); + // console.log(user); setUser({ ...user, [e.target.name]: e.target.value }); }; @@ -571,11 +573,11 @@ const EditRetailDistributor = () => { { { const [selectedCity, setSelectedCity] = useState(null); const [errors, setErrors] = useState({}); - useEffect(() => { - const fetchStates = async () => { - const states = State.getStatesOfCountry("IN").map((state) => ({ - label: state.name, - value: state.isoCode, - })); - setStateOptions(states); - }; - fetchStates(); - }, []); + // Fetch all available states on mount + useEffect(() => { + const states = State.getStatesOfCountry("IN").map((state) => ({ + label: state.name, + value: state.isoCode, + })); + setStateOptions(states); +}, []); - useEffect(() => { - const fetchCities = async () => { - if (selectedState) { - const cities = City.getCitiesOfState("IN", selectedState.value).map( - (city) => ({ - label: city.name, - value: city.name, - }) - ); - setCityOptions(cities); - } - }; - fetchCities(); - }, [selectedState]); +// Fetch city options whenever selected state changes +useEffect(() => { + if (selectedState) { + const cities = City.getCitiesOfState("IN", selectedState.value).map( + (city) => ({ + label: city.name, + value: city.name, + }) + ); + setCityOptions(cities); + } else { + setCityOptions([]); // Reset cities if no state selected + } +}, [selectedState]); const handleInputChange = (e) => { setUser({ ...user, [e.target.name]: e.target.value }); @@ -82,10 +80,21 @@ const AddRetailDistributor = () => { const handleStateChange = (event, newValue) => { setSelectedState(newValue); + setUser((prev) => ({ + ...prev, + state: newValue ? newValue.label : "", + city: "", + })); + setSelectedCity(null); // Clear city when state changes + setCityOptions([]); // Reset city options }; const handleCityChange = (event, newValue) => { setSelectedCity(newValue); + setUser((prev) => ({ + ...prev, + city: newValue ? newValue.label : "", + })); }; const handleFileChange = (e) => { @@ -154,8 +163,8 @@ const AddRetailDistributor = () => { formData.append("email", user.email); formData.append("trade_name", user.trade_name); formData.append("address", user.address); - formData.append("state", selectedState.label); - formData.append("city", selectedCity.value); + formData.append("state", user.state); + formData.append("city", user.city); formData.append("district", user.district); formData.append("pincode", user.pincode); formData.append("mobile_number", user.mobile_number); @@ -424,7 +433,7 @@ const AddRetailDistributor = () => { State* - + { )} /> + + + {/* City */} @@ -452,7 +473,7 @@ const AddRetailDistributor = () => { City* - + { )} /> + + + {/* District */}