// import { useEffect, useState } from "react";

// const useGeoLocation = () => {
//   const [location, setLocation] = useState<{
//     lat: number;
//     lng: number;
//   } | null>(null);
//   const [error, setError] = useState<string | null>(null);

//   useEffect(() => {
//     if (!navigator.geolocation) {
//       setError("Geolocation is not supported by your browser");
//       return;
//     }

//     const successHandler = (position: any) => {
//       setLocation({
//         lat: position.coords.latitude,
//         lng: position.coords.longitude,
//       });
//     };

//     const errorHandler = (err: any) => {
//       setError(err.message);
//     };

//     const geoOptions = {
//       enableHighAccuracy: true,
//       timeout: 10000,
//       maximumAge: 0,
//     };

//     navigator.permissions.query({ name: "geolocation" }).then((permission) => {
//       if (permission.state === "granted" || permission.state === "prompt") {
//         navigator.geolocation.getCurrentPosition(
//           successHandler,
//           errorHandler,
//           geoOptions
//         );
//       } else {
//         setError("Location permission denied");
//       }
//     });
//   }, []);

//   return { location, error };
// };

// export default useGeoLocation;

import { useEffect, useState } from "react";

const useGeoLocation = () => {
  const [location, setLocation] = useState<{ lat: number; lng: number }>({
    lat: 0,
    lng: 0,
  });
  const [error, setError] = useState<string | null>(null);

  useEffect(() => {
    if (!navigator.geolocation) {
      setError("Geolocation is not supported by your browser");
      return;
    }

    const successHandler = (position: GeolocationPosition) => {
      setLocation({
        lat: position.coords.latitude,
        lng: position.coords.longitude,
      });
    };

    const errorHandler = (err: GeolocationPositionError) => {
      setError(err.message);
    };

    const geoOptions = {
      enableHighAccuracy: true,
      timeout: 10000,
      maximumAge: 0,
    };

    navigator.permissions.query({ name: "geolocation" }).then((permission) => {
      if (permission.state === "granted" || permission.state === "prompt") {
        navigator.geolocation.getCurrentPosition(
          successHandler,
          errorHandler,
          geoOptions
        );
      } else {
        setError("Location permission denied");
      }
    });
  }, []);

  return { location, setLocation, error }; // ✅ Now returning setLocation
};

export default useGeoLocation;
