hide search bar after search

This commit is contained in:
SRP-mango 2023-09-14 23:57:18 +07:00
parent 6646748b58
commit e7356b3c3c

View file

@ -14,6 +14,8 @@
<v-app-bar scroll-threshold="0" <v-app-bar scroll-threshold="0"
class="mx-auto px-auto" class="mx-auto px-auto"
> >
<div class="flex-grow-1">
<v-text-field <v-text-field
v-model="searchQuery" v-model="searchQuery"
@keyup.enter="performSearch" @keyup.enter="performSearch"
@ -23,15 +25,19 @@
prepend-inner-icon="mdi-magnify" prepend-inner-icon="mdi-magnify"
single-line single-line
hide-details hide-details
></v-text-field> ></v-text-field>
<v-btn icon> </div>
<v-btn icon @click="showSearchBar = !showSearchBar">
<v-icon>mdi-crosshairs-gps</v-icon> <v-icon>mdi-crosshairs-gps</v-icon>
</v-btn> </v-btn>
</v-app-bar> </v-app-bar>
</v-layout> </v-layout>
<div v-if="searchResults.length > 0" class="search-results"> <div v-if="!hideSearchResults && searchResults.length > 0" class="search-results">
<ul> <ul>
<li v-for="result in searchResults" :key="result.place_id" @click="moveToLocation(result)"> <li v-for="result in searchResults" :key="result.place_id" @click="moveToLocation(result)">
{{ result.display_name }} {{ result.display_name }}
@ -84,14 +90,15 @@ const popupData = ref(null);
//search //search
const searchQuery = ref(""); const searchQuery = ref("");
const searchResults = ref([]); const searchResults = ref([]);
const showSearchBar = ref(false);
const hideSearchResults = ref(true);
const moveToLocation = (result) => { const moveToLocation = (result) => {
// Extract latitude and longitude from the selected result
const lat = parseFloat(result.lat); const lat = parseFloat(result.lat);
const lon = parseFloat(result.lon); const lon = parseFloat(result.lon);
// Update the center coordinates to move the camera to the selected location
center.value = [lon, lat]; center.value = [lon, lat];
hideSearchResults.value = true;
}; };
const performSearch = async () => { const performSearch = async () => {
@ -100,14 +107,14 @@ const performSearch = async () => {
`https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(searchQuery.value)}` `https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(searchQuery.value)}`
); );
// Process the search results and limit to, let's say, 5 results
searchResults.value = response.data.slice(0, 5); searchResults.value = response.data.slice(0, 5);
hideSearchResults.value = false;
} catch (error) { } catch (error) {
console.error("Error fetching search results:", error); console.error("Error fetching search results:", error);
} }
}; };
//Show API //Show API
const handleMapClick = async event => { const handleMapClick = async event => {
const clickedCoordinate = event.coordinate; const clickedCoordinate = event.coordinate;