From 5d96417c4273f67ffa6459488c5fc3986b2a7edb Mon Sep 17 00:00:00 2001 From: Macbook Date: Tue, 2 Jun 2026 04:40:34 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=BC=EB=AA=A9=EA=B7=A0=ED=98=95=ED=91=9C?= =?UTF-8?q?=20=EA=B5=AC=EB=A6=84=20=EB=AF=B8=ED=91=9C=EC=8B=9C=20=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EC=88=98=EC=A0=95=20(bullishVisible/bearishVisible?= =?UTF-8?q?=20=EB=91=98=20=EB=8B=A4=20false)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - isIchimokuCloudVisible: bullish/bearish 둘 다 false이면 DB 잘못된 저장값으로 간주하고 구름을 표시 (하나만 false인 경우는 사용자 의도로 유지) - _applyIchimokuCloudPlugin: 동일 로직으로 effectiveBullish/effectiveBearish 적용 - config.hidden 체크로만 클라우드 데이터 초기화 - isIchimokuCloudVisible 의존 제거 서버 DB에 cloudColors.bullishVisible=false, bearishVisible=false 가 잘못 저장된 경우에도 구름이 표시되도록 보호 로직 추가. Co-authored-by: Cursor --- frontend/src/utils/ChartManager.ts | 14 +++++++++++--- frontend/src/utils/ichimokuConfig.ts | 9 ++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) 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(