wing-ops/frontend/src/common/hooks/useLayers.ts

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,
});
}