34 lines
939 B
TypeScript
Executable File
34 lines
939 B
TypeScript
Executable File
import { useQuery } from '@tanstack/react-query';
|
|
import { fetchAllLayers, fetchLayerTree, fetchWMSLayers } from '../services/api';
|
|
import type { Layer } from '@common/services/layerService';
|
|
|
|
// 모든 레이어 조회 훅
|
|
export function useLayers() {
|
|
return useQuery<Layer[], Error>({
|
|
queryKey: ['layers'],
|
|
queryFn: fetchAllLayers,
|
|
staleTime: 1000 * 60 * 5, // 5분간 캐시 유지
|
|
retry: 3,
|
|
});
|
|
}
|
|
|
|
// 계층 구조 레이어 트리 조회 훅
|
|
// staleTime 없음 → 마운트 시 항상 최신 데이터 요청 (관리자 설정 즉시 반영)
|
|
export function useLayerTree() {
|
|
return useQuery<Layer[], Error>({
|
|
queryKey: ['layers', 'tree'],
|
|
queryFn: fetchLayerTree,
|
|
retry: 3,
|
|
});
|
|
}
|
|
|
|
// WMS 레이어만 조회 훅
|
|
export function useWMSLayers() {
|
|
return useQuery<Layer[], Error>({
|
|
queryKey: ['layers', 'wms'],
|
|
queryFn: fetchWMSLayers,
|
|
staleTime: 1000 * 60 * 5,
|
|
retry: 3,
|
|
});
|
|
}
|