UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

42 lines 1.58 kB
import type { FeatureCollection, MultiPolygon, Polygon } from 'geojson'; import type { RegionData as ChoroplethRegionData } from '../ChoroplethMap/ChoroplethMap.types/index'; import type { MapFilters, MapDataBounds, MapDataApiResponse } from '../types/mapData'; /** * Hook return type for useMapData */ export interface UseMapDataReturn { /** Transformed region data for ChoroplethMap */ data: ChoroplethRegionData[]; /** Map bounds from API */ bounds: MapDataBounds | null; /** Complete GeoJSON with NRE field for each municipality */ geoJSON: FeatureCollection<Polygon | MultiPolygon> | null; /** Loading state */ loading: boolean; /** Error message if request failed */ error: string | null; /** Refetch data from API */ refetch: () => Promise<void>; } /** * Factory function to create useMapData hook * * @param fetchMapDataApi - Function to fetch map data from API * @returns Hook for managing map data with auto-fetch on filter change * * @example * ```tsx * // In your app setup * const fetchMapDataApi = async (filters: MapFilters) => { * const response = await api.post('/access-report/access/map', filters); * return response.data; * }; * * export const useMapData = createUseMapData(fetchMapDataApi); * * // In your component * const { data, bounds, loading, error } = useMapData(filters); * ``` */ export declare const createUseMapData: (fetchMapDataApi: (filters: MapFilters) => Promise<MapDataApiResponse>) => (filters: MapFilters) => UseMapDataReturn; //# sourceMappingURL=useMapData.d.ts.map