diff --git a/frontend/src/utils/ChartManager.ts b/frontend/src/utils/ChartManager.ts index b9bbc0f..ccca681 100644 --- a/frontend/src/utils/ChartManager.ts +++ b/frontend/src/utils/ChartManager.ts @@ -1751,10 +1751,18 @@ export class ChartManager { config: IndicatorConfig, ): void { const colors = resolveIchimokuCloudColors(config.cloudColors); - plugin.setColors(colors.bullishColor, colors.bearishColor); - plugin.setVisibility(colors.bullishVisible !== false, colors.bearishVisible !== false); - if (!isIchimokuCloudVisible(config)) { + // bullishVisible/bearishVisible 가 둘 다 false 이면 DB 잘못된 저장값으로 간주하고 + // 기본값(표시)으로 복원한다. 하나만 false 인 경우는 사용자 의도이므로 유지. + const bullishVis = colors.bullishVisible !== false; + const bearishVis = colors.bearishVisible !== false; + const effectiveBullish = (!bullishVis && !bearishVis) ? true : bullishVis; + const effectiveBearish = (!bullishVis && !bearishVis) ? true : bearishVis; + + plugin.setColors(colors.bullishColor, colors.bearishColor); + plugin.setVisibility(effectiveBullish, effectiveBearish); + + if (config.hidden === true) { plugin.setCloudData([]); return; } diff --git a/frontend/src/utils/ichimokuConfig.ts b/frontend/src/utils/ichimokuConfig.ts index b7dadd8..60747f0 100644 --- a/frontend/src/utils/ichimokuConfig.ts +++ b/frontend/src/utils/ichimokuConfig.ts @@ -118,11 +118,18 @@ export function areIchimokuSpanLinesVisible(config: IndicatorConfig): boolean { * 선행스팬 라인의 개별 표시 여부(plotVisibility)와 구름 표시는 독립적으로 동작. * 서버 DB에 저장된 구버전 설정에서 plot3·plot4 가 false 여도 구름은 표시해야 하므로 * areIchimokuSpanLinesVisible 검사를 생략한다. + * + * bullishVisible/bearishVisible 이 둘 다 false 이면 DB 잘못된 저장값으로 간주하고 + * 구름을 표시한다 (하나만 false 인 경우는 사용자 의도이므로 유지). */ export function isIchimokuCloudVisible(config: IndicatorConfig): boolean { if (config.hidden === true) return false; const colors = resolveIchimokuCloudColors(config.cloudColors); - return colors.bullishVisible !== false || colors.bearishVisible !== false; + const bullishVis = colors.bullishVisible !== false; + const bearishVis = colors.bearishVisible !== false; + // 둘 다 false → DB 잘못된 저장값, 기본값으로 복원 간주 → 표시 + if (!bullishVis && !bearishVis) return true; + return bullishVis || bearishVis; } export function resolveIchimokuCloudColors(