import { defineStore } from "pinia";

interface GeolocationOptions {
	maximumAge?: number;
	timeout?: number;
	enableHighAccuracy?: boolean;
}
export const useStoreLocation = defineStore("location", () => {
	function get(options?: GeolocationOptions): Promise<GeolocationPosition> {
		return new Promise((resolve, reject) => {
			// Check if geolocation is supported by the browser
			if (!navigator.geolocation) {
				reject(new Error("Geolocation is not supported by your browser"));
				return;
			}

			// Default options if none provided
			const geolocationOptions =
				options ||
				{
					/*
				enableHighAccuracy: true,
				timeout: 60000,
				maximumAge: 0,
				*/
				};

			// Call the geolocation API
			navigator.geolocation.getCurrentPosition(
				(position) => resolve(position),
				(error) => reject(error),
				geolocationOptions,
			);
		});
	}
	return {
		get,
	};
});
