From 50850a1c0c708342024d4fe310e585b6068034c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Celine=20P=C3=B6hl?= Date: Tue, 28 May 2024 17:22:34 +0200 Subject: [PATCH] Reset input fields when switching search modes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Persistent input in search popup. Enhanced search suggestion relevancy. Signed-off-by: Celine Pöhl --- frontend/src/components/PopUp/SearchPopUp.tsx | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/PopUp/SearchPopUp.tsx b/frontend/src/components/PopUp/SearchPopUp.tsx index e7d7e921..5e63fd60 100644 --- a/frontend/src/components/PopUp/SearchPopUp.tsx +++ b/frontend/src/components/PopUp/SearchPopUp.tsx @@ -45,6 +45,24 @@ const SearchPopUp: React.FC = ({ const [suggestions, setSuggestions] = useState>([]); const { currentMapCache } = useContext(MapContext); + const provider = new OpenStreetMapProvider({ + params: { + 'accept-language': 'de', + countrycodes: 'de', + addressdetails: 1, + }, + }); + + const reset = () => { + setSearchText(""); + setLongitude(""); + setLatitude(""); + setSearchMode("single"); + setSuggestions([]); + setLatitudeError(false); + setLongitudeError(false); + }; + const flyToLocation = () => { const { mapInstance } = currentMapCache; if (mapInstance) { @@ -59,7 +77,6 @@ const SearchPopUp: React.FC = ({ setSuggestions([]); return; } - const provider = new OpenStreetMapProvider(); const results = await provider.search({ query: input }); const transformedResults: GeoSearchResult[] = results.map((result) => ({ x: result.x, @@ -70,8 +87,8 @@ const SearchPopUp: React.FC = ({ }; const handleModeSwitch = () => { + reset(); if (searchMode === "single") { - setSuggestions([]); setSearchMode("coordinates"); } else { setSearchMode("single"); @@ -91,7 +108,7 @@ const SearchPopUp: React.FC = ({ return item.displayName; } - const [latitudeTerm, longitudeTerm] = searchText.split(" "); + const [latitudeTerm, longitudeTerm] = [latitude, longitude]; const regex = new RegExp( `^-?${latitudeTerm}[\\S\\d°'\\\\".]*\\s-?${longitudeTerm}[\\S\\d°'\\\\".]*$` ); @@ -187,7 +204,10 @@ const SearchPopUp: React.FC = ({ return ( { + onToggleIfOpenedDialog(); + reset(); + }} ifOpenedDialog={ifOpenedDialog} > {searchMode === "single" ? (