From 79316a29b1a595403ecf03313d1bcbb8ff08267b Mon Sep 17 00:00:00 2001 From: ysCha Date: Fri, 10 Jul 2026 11:10:05 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[=EC=8B=9C=3D>=EA=B2=AC]=20canvas=20null=20?= =?UTF-8?q?=EA=B0=80=EB=93=9C=20=E2=80=94=20isAllComplete=20/=20setAllModu?= =?UTF-8?q?leSurfaceIsComplete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/module/useTrestle.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/hooks/module/useTrestle.js b/src/hooks/module/useTrestle.js index 71ee6123..b652492b 100644 --- a/src/hooks/module/useTrestle.js +++ b/src/hooks/module/useTrestle.js @@ -3291,6 +3291,7 @@ export const useTrestle = () => { // 가대 설치 완료 전,후 모든 surface의 isComplete를 변경 const setAllModuleSurfaceIsComplete = (bool) => { + if (!canvas) return const surfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) surfaces.forEach((surface) => { surface.isComplete = bool @@ -3299,6 +3300,7 @@ export const useTrestle = () => { // 배치면 전체에 가대 설치 여부 const isAllComplete = () => { + if (!canvas) return false const surfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) if (surfaces.length === 0) { return false -- 2.47.2 From 91875b3b7169b6dd3e2560d666d0106ba21933fa Mon Sep 17 00:00:00 2001 From: ysCha Date: Fri, 10 Jul 2026 12:18:46 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[2203]=20=EC=8B=9C=EB=AE=AC=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=97=B0=EA=B0=84=EC=98=88=EC=B8=A1?= =?UTF-8?q?=EB=B0=9C=EC=A0=84=EB=9F=89=20kWh=20=EB=8B=A8=EC=9C=84=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20+=20null=20=EA=B0=80=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/simulator/Simulator.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/simulator/Simulator.jsx b/src/components/simulator/Simulator.jsx index d873049f..283bdbc8 100644 --- a/src/components/simulator/Simulator.jsx +++ b/src/components/simulator/Simulator.jsx @@ -226,7 +226,7 @@ export default function Simulator() { {/* 연간예측발전량 */}
{getMessage('simulator.title.sub4')}
-
{chartData[chartData.length - 1]}
+
{chartData[chartData.length - 1] != null ? `${chartData[chartData.length - 1]} kWh` : ''}
-- 2.47.2 From 342c216c03fbf7f985d259484c051f55e45a7546 Mon Sep 17 00:00:00 2001 From: ysCha Date: Fri, 10 Jul 2026 15:45:41 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[2316]=20=EB=B0=A9=EC=9C=84=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=20124~134=C2=B0=C2=B7-124~-134=C2=B0=20=E5=8C=97?= =?UTF-8?q?=E8=A5=BF(=EB=B6=81=EC=84=9C)/=E5=8C=97=E6=9D=B1(=EB=B6=81?= =?UTF-8?q?=EB=8F=99)=20=EC=9E=AC=EC=88=98=EC=A0=95=20=E2=80=94=2007-03=20?= =?UTF-8?q?=E8=A5=BF=E5=8C=97=E8=A5=BF(=EC=84=9C=EB=B6=81=EC=84=9C)/?= =?UTF-8?q?=E6=9D=B1=E5=8C=97=E6=9D=B1(=EB=8F=99=EB=B6=81=EB=8F=99)=20?= =?UTF-8?q?=EC=98=A4=EB=B2=84=EB=9D=BC=EC=9D=B4=EB=93=9C=20=EC=B2=A0?= =?UTF-8?q?=ED=9A=8C,=20=ED=8C=90=EC=A0=95=20=C2=B1135=C2=B0=20=EB=B6=88?= =?UTF-8?q?=EB=B3=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/usePolygon.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/hooks/usePolygon.js b/src/hooks/usePolygon.js index 73999863..2a9405d3 100644 --- a/src/hooks/usePolygon.js +++ b/src/hooks/usePolygon.js @@ -416,9 +416,8 @@ export const usePolygon = () => { while (a > 180) a -= 360 while (a < -180) a += 360 const i = Math.round(a / 22.5) // -8 ~ 8 - // [方位 追加要請 2026-07-03] 124~134°는 西北西/東北東 표시(北西/北東 시작을 135°로) — 북면 판정 ±135°와 표시 경계 일치 - if (i === 6 && a <= 134) return positive[5] // 北西 → 西北西 - if (i === -6 && a >= -134) return negative[5] // 北東 → 東北東 + // [方位 再修正 2026-07-10] 124~134°는 표준 16방위대로 北西/北東 표시(2026-07-03 西北西/東北東 오버라이드 철회). + // 표시 경계(124°)와 북면 판정 경계(±135°)는 다시 분리 — 판정은 판매전략 연관으로 ±135° 고정. return i >= 0 ? positive[i] : negative[-i] } -- 2.47.2