데이터소스 삭제 로직 수정

This commit is contained in:
dohyeons 2025-11-12 17:58:22 +09:00
parent adb1056b3f
commit c5d8569522
1 changed files with 11 additions and 10 deletions

View File

@ -297,10 +297,10 @@ export function WidgetConfigSidebar({ element, isOpen, onClose, onApply }: Widge
...(needsDataSource(element.subtype) ...(needsDataSource(element.subtype)
? { ? {
dataSource, dataSource,
// 다중 데이터 소스 위젯은 dataSources도 포함 // 다중 데이터 소스 위젯은 dataSources도 포함 (빈 배열도 허용 - 연결 해제)
...(isMultiDataSourceWidget ...(isMultiDataSourceWidget
? { ? {
dataSources: dataSources.length > 0 ? dataSources : element.dataSources || [], dataSources: dataSources,
} }
: {}), : {}),
} }
@ -316,14 +316,14 @@ export function WidgetConfigSidebar({ element, isOpen, onClose, onApply }: Widge
element.subtype === "chart" || element.subtype === "chart" ||
["bar", "horizontal-bar", "pie", "line", "area", "stacked-bar", "donut", "combo"].includes(element.subtype) ["bar", "horizontal-bar", "pie", "line", "area", "stacked-bar", "donut", "combo"].includes(element.subtype)
? { ? {
// 다중 데이터 소스 위젯은 chartConfig에 dataSources 포함 // 다중 데이터 소스 위젯은 chartConfig에 dataSources 포함 (빈 배열도 허용 - 연결 해제)
chartConfig: isMultiDataSourceWidget chartConfig: isMultiDataSourceWidget
? { ...chartConfig, dataSources: dataSources.length > 0 ? dataSources : element.dataSources || [] } ? { ...chartConfig, dataSources: dataSources }
: chartConfig, : chartConfig,
// 프론트엔드 호환성을 위해 dataSources도 element에 직접 포함 // 프론트엔드 호환성을 위해 dataSources도 element에 직접 포함 (빈 배열도 허용 - 연결 해제)
...(isMultiDataSourceWidget ...(isMultiDataSourceWidget
? { ? {
dataSources: dataSources.length > 0 ? dataSources : element.dataSources || [], dataSources: dataSources,
} }
: {}), : {}),
} }
@ -570,15 +570,16 @@ export function WidgetConfigSidebar({ element, isOpen, onClose, onApply }: Widge
onClick={handleApply} onClick={handleApply}
className="h-9 flex-1 text-sm" className="h-9 flex-1 text-sm"
disabled={ disabled={
// 다중 데이터 소스 위젯: dataSources가 비어있거나 endpoint가 없으면 비활성화 // 다중 데이터 소스 위젯: 데이터 소스가 있는데 endpoint가 비어있으면 비활성화
// (데이터 소스가 없는 건 OK - 연결 해제하는 경우)
(element?.subtype === "map-summary-v2" || (element?.subtype === "map-summary-v2" ||
element?.subtype === "chart" || element?.subtype === "chart" ||
element?.subtype === "list-v2" || element?.subtype === "list-v2" ||
element?.subtype === "custom-metric-v2" || element?.subtype === "custom-metric-v2" ||
element?.subtype === "risk-alert-v2") && element?.subtype === "risk-alert-v2") &&
(!dataSources || dataSources &&
dataSources.length === 0 || dataSources.length > 0 &&
dataSources.some(ds => ds.type === "api" && !ds.endpoint)) dataSources.some(ds => ds.type === "api" && !ds.endpoint)
} }
> >