feat: add loading state to search area button

This commit is contained in:
2025-08-15 19:10:29 +00:00
parent dc9872ebb8
commit 360252151a

View File

@@ -313,6 +313,7 @@ function Map({data, loading, end, duration, slider, mapState, setMapState, setSu
function Menu({data, duration, setDuration, end, setEnd, slider, setSlider, submenu, setSubmenu, showDirection, setShowDirection, setMapState, shareStart, shareEnd, drawnItems}) { function Menu({data, duration, setDuration, end, setEnd, slider, setSlider, submenu, setSubmenu, showDirection, setShowDirection, setMapState, shareStart, shareEnd, drawnItems}) {
const [showRange, setShowRange] = useState(false); const [showRange, setShowRange] = useState(false);
const [isSearching, setIsSearching] = useState(false);
const chooseDuration = (x) => { const chooseDuration = (x) => {
setSubmenu(false); setSubmenu(false);
@@ -459,6 +460,8 @@ function Menu({data, duration, setDuration, end, setEnd, slider, setSlider, subm
southWest: bounds.getSouthWest(), southWest: bounds.getSouthWest(),
})); }));
setIsSearching(true);
try { try {
const api_key = localStorage.getItem('api_key'); const api_key = localStorage.getItem('api_key');
const params = { const params = {
@@ -476,6 +479,8 @@ function Menu({data, duration, setDuration, end, setEnd, slider, setSlider, subm
} catch (error) { } catch (error) {
console.error('Error during area search:', error); console.error('Error during area search:', error);
alert('An error occurred during the search.'); alert('An error occurred during the search.');
} finally {
setIsSearching(false);
} }
setSubmenu(false); setSubmenu(false);
@@ -651,7 +656,9 @@ function Menu({data, duration, setDuration, end, setEnd, slider, setSlider, subm
</label> </label>
<button onClick={recentreView}>Recentre view</button> <button onClick={recentreView}>Recentre view</button>
<button onClick={excludeArea}>Exclude area</button> <button onClick={excludeArea}>Exclude area</button>
<button onClick={searchArea}>Search area</button> <button onClick={searchArea} disabled={isSearching}>
{isSearching ? 'Searching...' : 'Search area'}
</button>
<button onClick={shareRange}>Share range</button> <button onClick={shareRange}>Share range</button>
<button onClick={resetToDefaults}>Reset page</button> <button onClick={resetToDefaults}>Reset page</button>
</> </>