Skip to content

Commit b13c521

Browse files
committed
Added progress spinner to wait for response.
1 parent efd07a6 commit b13c521

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/components/StoreFinder.vue

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@
5353
Stores near you ({{ destinationLocations.length }} results)
5454
</p>
5555
</div>
56+
<div v-else>
57+
<ProgressSpinner v-if="awaitingAPIResponse"/>
58+
</div>
5659
<div
5760
v-if="destinationLocations.length > 0"
5861
style="display: flex; gap: 10px; flex-wrap: wrap; width: 100%; text-align: center;"
@@ -125,7 +128,9 @@
125128
selectedDeparturePlace: "",
126129
suggestedDeparturePlaces: [],
127130
departureLocation: {},
128-
destinationLocations: []
131+
destinationLocations: [],
132+
// Are we waiting for an API response?
133+
awaitingAPIResponse: false
129134
}
130135
},
131136
watch: {
@@ -193,16 +198,19 @@
193198
"MaxResults": this.maxResults
194199
}
195200
// Hash used to drive caching behaviour on server-side.
201+
this.awaitingAPIResponse = true
196202
this.generateHash(JSON.stringify(post_request)).then(data =>
197203
{
198204
axios.post(this.apiEndpoint + "/nearest", post_request, {params: {hash: data}}).then(response => {
199205
this.destinationLocations = response.data
206+
this.awaitingAPIResponse = false
200207
}).catch(error => {
201208
console.log(error)
202209
this.errorMessage = error.message
203210
if (error.hasOwnProperty("response")) {
204211
this.errorMessage = this.errorMessage + " " + error.response.data
205212
}
213+
this.awaitingAPIResponse = false
206214
})
207215
})
208216
},

src/main.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import Button from "primevue/button"
88
import AutoComplete from "primevue/autocomplete"
99
import Dropdown from "primevue/dropdown";
1010
import Message from "primevue/message";
11+
import ProgressSpinner from 'primevue/progressspinner';
1112
import "primevue/resources/themes/saga-blue/theme.css"
1213
import "primevue/resources/primevue.min.css"
1314
import "primeicons/primeicons.css"
@@ -22,5 +23,6 @@ myApp.component("Button", Button)
2223
myApp.component("AutoComplete", AutoComplete)
2324
myApp.component("Dropdown", Dropdown)
2425
myApp.component("Message", Message)
26+
myApp.component("ProgressSpinner", ProgressSpinner)
2527

2628
myApp.mount('#app')

0 commit comments

Comments
 (0)