feat: directorio más fiable y más fácil de usar
El objetivo de estos cambios es, por un lado, mantener los datos
actualizados y, por otro, mejorar la experiencia para quienes lo usan:
- Fiabilidad: los locales se pueden confirmar ("Sigue aquí") y
reportar (cerrado, datos incorrectos...), y se avisa de duplicados
antes de publicar, para que el contenido no se quede obsoleto ni
repetido.
- Usabilidad: autocompletado al proponer, favoritos, "cerca de mí",
compartir fichas, enlaces a Waze y una política de privacidad
visible, para que sea más sencillo aportar y encontrar locales.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import { useCallback, useState } from "react";
|
||||
|
||||
// Pide la ubicación del navegador solo cuando el usuario la solicita explícitamente
|
||||
// (botón "Cerca de mí"), nunca automáticamente al cargar la página.
|
||||
export default function useUbicacion() {
|
||||
const [ubicacion, setUbicacion] = useState(null); // { lat, lng }
|
||||
const [buscando, setBuscando] = useState(false);
|
||||
const [error, setError] = useState("");
|
||||
|
||||
const pedirUbicacion = useCallback(() => {
|
||||
if (!navigator.geolocation) {
|
||||
setError("Tu navegador no permite compartir ubicación.");
|
||||
return;
|
||||
}
|
||||
setBuscando(true);
|
||||
setError("");
|
||||
navigator.geolocation.getCurrentPosition(
|
||||
(pos) => {
|
||||
setUbicacion({ lat: pos.coords.latitude, lng: pos.coords.longitude });
|
||||
setBuscando(false);
|
||||
},
|
||||
(err) => {
|
||||
setError(err.code === 1 ? "Has denegado el acceso a tu ubicación." : "No se pudo obtener tu ubicación.");
|
||||
setBuscando(false);
|
||||
},
|
||||
{ enableHighAccuracy: true, timeout: 10000 },
|
||||
);
|
||||
}, []);
|
||||
|
||||
const limpiarUbicacion = useCallback(() => { setUbicacion(null); setError(""); }, []);
|
||||
|
||||
return { ubicacion, buscando, error, pedirUbicacion, limpiarUbicacion };
|
||||
}
|
||||
Reference in New Issue
Block a user