diff --git a/frontend/src/Components/Search/MultiLevelOptions.jsx b/frontend/src/Components/Search/MultiLevelOptions.jsx index e8b02e8f41872357d485af651378f9b7b325974b..f9f2ffb03f6e741d8c8f2427bdfa1fdea2a1d302 100644 --- a/frontend/src/Components/Search/MultiLevelOptions.jsx +++ b/frontend/src/Components/Search/MultiLevelOptions.jsx @@ -43,6 +43,8 @@ const MultiLevelOptions = () => { setSubCategory(''); setYear(''); setParty(''); + setFavoriteName(''); + setErrorMessages([]); // if the 'favorites' category is selected retrieve the saved favorites from the backend. if (e.target.value === 'favorites') { @@ -56,6 +58,7 @@ const MultiLevelOptions = () => { setYear(''); setParty(''); setFavoriteName(''); // clear the input field + setErrorMessages([]); }; @@ -75,28 +78,32 @@ const MultiLevelOptions = () => { const saveFavorite = async () => { - // Enrich with the name given by the user - var enrichedFavoriteOptions = {...selectedOptions}; // Hard copy - enrichedFavoriteOptions['favoriteName'] = favoriteName; - - // Send the current selected options and its name to backend - const response = await axios.post(serverAddress + ':' + serverPort + '/api/save_favorite', enrichedFavoriteOptions, { - withCredentials: true, // Include credentials (cookies) in the request - headers: { - 'Content-Type': 'application/json', - }, - }); - - if (response.data.success) { - console.log(favoriteName); - setErrorMessages([]); - // After successfully saving, clear the input field - setFavoriteName(''); - } else { - console.log("error"); - console.log(favoriteName); - setErrorMessages(response.data.errors); - } + if (favoriteName !== ''){ + // Enrich with the name given by the user + var enrichedFavoriteOptions = {...selectedOptions}; // Hard copy + enrichedFavoriteOptions['favoriteName'] = favoriteName; + + // Send the current selected options and its name to backend + const response = await axios.post(serverAddress + ':' + serverPort + '/api/save_favorite', enrichedFavoriteOptions, { + withCredentials: true, // Include credentials (cookies) in the request + headers: { + 'Content-Type': 'application/json', + }, + }); + + if (response.data.success) { + console.log(favoriteName); + setErrorMessages([]); + // After successfully saving, clear the input field + setFavoriteName(''); + } else { + console.log("error"); + console.log(favoriteName); + setErrorMessages(response.data.errors); + setFavoriteName(''); + } + } + }; @@ -134,6 +141,8 @@ const MultiLevelOptions = () => { console.log("Sub-Category = " + subCategory); console.log("year = "+ year); console.log("party = " + party); + + setErrorMessages([]); // Remove errors on reload // Determine when options have been selected and when a request to the backend should be performed if (category === '') {