1.0.2 • Published 4 months ago
ait25-usegeolocation-hook v1.0.2
useGeolocation
useGeolocation
es un hook personalizado de React que permite obtener la ubicación del usuario mediante la API de Geolocalización del navegador.
Instalación
Para instalar ejecuta el siguiente comando:
npm install ait25-usegeolocation-hook
O usando Yarn:
yarn add ait25-usegeolocation-hook
Uso
Importa el hook en tu componente y úsalo para solicitar la ubicación del usuario:
import React from 'react';
import { useGeolocation } from 'ait25-usegeolocation-hook';
// Use the correct type from the hook
const MyLocationComponent: React.FC = () => {
const { locationData, error, isLoading, requestLocation } = useGeolocation();
return (
<div>
<h1>My Geolocation Hook</h1>
{error && <p>Error: {error}</p>}
{isLoading && <p>Loading location...</p>}
<p>Latitude: {locationData ? locationData.latitude : 'Not available'}</p>
<p>Longitude: {locationData ? locationData.longitude : 'Not available'}</p>
<p>Accuracy: {locationData ? `${locationData.accuracy} meters` : 'Not available'}</p>
<button onClick={requestLocation}>
Request Location
</button>
</div>
);
};
export default MyLocationComponent;
API del Hook
El hook useGeolocation
devuelve los siguientes valores:
location
(boolean
): Indica si la ubicación ha sido obtenida correctamente.locationData
({ latitude: number, longitude: number, accuracy: number } | undefined
): Contiene los datos de geolocalización si la ubicación ha sido obtenida.error
(string | null
): Contiene un mensaje de error si ocurre algún problema al obtener la ubicación.isLoading
(boolean
): Indica si la solicitud de ubicación está en progreso.requestLocation
(() => Promise<boolean>
): Función para solicitar la ubicación del usuario manualmente.
Requisitos
Este hook requiere que el navegador tenga activada la API de geolocalización y que el usuario conceda permisos para acceder a la ubicación.
Compatibilidad
Este hook es compatible con navegadores modernos que soporten la API navigator.geolocation
.
Licencia
Este proyecto está licenciado bajo la licencia MIT.