import { LayerTree } from '@common/components/layer/LayerTree'; import { useLayerTree } from '@common/hooks/useLayers'; import type { Layer } from '@common/services/layerService'; interface InfoLayerSectionProps { expanded: boolean; onToggle: () => void; enabledLayers: Set; onToggleLayer: (layerId: string, enabled: boolean) => void; layerOpacity: number; onLayerOpacityChange: (val: number) => void; layerBrightness: number; onLayerBrightnessChange: (val: number) => void; layerColors: Record; onLayerColorChange: (layerId: string, color: string) => void; } const InfoLayerSection = ({ expanded, onToggle, enabledLayers, onToggleLayer, layerOpacity, onLayerOpacityChange, layerBrightness, onLayerBrightnessChange, layerColors, onLayerColorChange, }: InfoLayerSectionProps) => { // API에서 레이어 트리 데이터 가져오기 (관리자 설정 USE_YN='Y' 레이어만 반환) const { data: layerTree, isLoading } = useLayerTree(); // 관리자에서 사용여부가 ON인 레이어만 표시 (정적 폴백 없음) const effectiveLayers: Layer[] = layerTree ?? []; return (

정보 레이어

{expanded ? '▼' : '▶'}
{expanded && (
{isLoading && effectiveLayers.length === 0 ? (

레이어 로딩 중...

) : effectiveLayers.length === 0 ? (

레이어 데이터가 없습니다.

) : ( )} {/* 레이어 스타일 조절 */}
레이어 스타일
투명도 onLayerOpacityChange(Number(e.target.value))} /> {layerOpacity}%
밝기 onLayerBrightnessChange(Number(e.target.value))} /> {layerBrightness}%
)}
); }; export default InfoLayerSection;