From 3071c0ddc5512dc2e1e72e667f2ae0e371b1680b Mon Sep 17 00:00:00 2001 From: ysCha Date: Mon, 24 Nov 2025 14:06:01 +0900 Subject: [PATCH] =?UTF-8?q?[1308]=20=EC=B4=8C=EC=97=90=20=EC=86=8C?= =?UTF-8?q?=EC=88=98=EC=A0=90=20=EC=9E=85=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/roofShape/type/Direction.jsx | 81 +++++++++++++++---- .../modal/roofShape/type/Pattern.jsx | 46 ++++++++++- .../floor-plan/modal/roofShape/type/Ridge.jsx | 31 ++++++- .../modal/roofShape/type/option/Eaves.jsx | 32 +++++++- .../modal/roofShape/type/option/Gable.jsx | 16 +++- .../roofShape/type/option/HipAndGable.jsx | 27 +++++-- .../roofShape/type/option/Jerkinhead.jsx | 52 ++++++++++-- .../modal/roofShape/type/option/Shed.jsx | 6 +- .../modal/roofShape/type/option/Wall.jsx | 28 +++++-- 9 files changed, 275 insertions(+), 44 deletions(-) diff --git a/src/components/floor-plan/modal/roofShape/type/Direction.jsx b/src/components/floor-plan/modal/roofShape/type/Direction.jsx index 5ea8e635..7c3cf809 100644 --- a/src/components/floor-plan/modal/roofShape/type/Direction.jsx +++ b/src/components/floor-plan/modal/roofShape/type/Direction.jsx @@ -1,5 +1,6 @@ import { useMessage } from '@/hooks/useMessage' import { normalizeDecimalLimit, normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function Direction({ pitch, setPitch, eavesOffset, setEavesOffset, gableOffset, setGableOffset, shedWidth, setShedWidth, pitchText }) { const { getMessage } = useMessage() @@ -10,12 +11,24 @@ export default function Direction({ pitch, setPitch, eavesOffset, setEavesOffset {getMessage('slope')}
- setPitch(normalizeDecimalLimit(e.target.value, 2))}*/} + {/*/>*/} + setPitch(normalizeDecimalLimit(e.target.value, 2))} - /> + onChange={(value) => setPitch(value)} + options={{ + allowNegative: false, + allowDecimal: true //(index !== 0), + }} + >
{pitchText} @@ -24,12 +37,24 @@ export default function Direction({ pitch, setPitch, eavesOffset, setEavesOffset {getMessage('eaves.offset')}
- setEavesOffset(normalizeDigits(e.target.value))}*/} + {/*/>*/} + setEavesOffset(normalizeDigits(e.target.value))} - /> + onChange={(value) => setEavesOffset(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm @@ -38,12 +63,24 @@ export default function Direction({ pitch, setPitch, eavesOffset, setEavesOffset {getMessage('gable.offset')}
- setGableOffset(normalizeDigits(e.target.value))}*/} + {/*/>*/} + setGableOffset(normalizeDigits(e.target.value))} - /> + onChange={(value) => setGableOffset(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm @@ -52,12 +89,24 @@ export default function Direction({ pitch, setPitch, eavesOffset, setEavesOffset {getMessage('windage.width')}
- setShedWidth(normalizeDigits(e.target.value))}*/} + {/*/>*/} + setShedWidth(normalizeDigits(e.target.value))} - /> + onChange={(value) => setShedWidth(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm diff --git a/src/components/floor-plan/modal/roofShape/type/Pattern.jsx b/src/components/floor-plan/modal/roofShape/type/Pattern.jsx index 269cac58..46631b5c 100644 --- a/src/components/floor-plan/modal/roofShape/type/Pattern.jsx +++ b/src/components/floor-plan/modal/roofShape/type/Pattern.jsx @@ -1,5 +1,6 @@ import { useMessage } from '@/hooks/useMessage' import { normalizeDecimalLimit, normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function Pattern(props) { const { getMessage } = useMessage() @@ -11,7 +12,20 @@ export default function Pattern(props) { {getMessage('slope')}
- setPitch(normalizeDecimalLimit(e.target.value, 2))} /> + {/* setPitch(normalizeDecimalLimit(e.target.value, 2))} />*/} + setPitch(value)} + options={{ + allowNegative: false, + allowDecimal: true //(index !== 0), + }} + >
{pitchText} @@ -20,7 +34,20 @@ export default function Pattern(props) { {getMessage('eaves.offset')}
- setEavesOffset(normalizeDigits(e.target.value))} /> + {/* setEavesOffset(normalizeDigits(e.target.value))} />*/} + setEavesOffset(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm @@ -29,7 +56,20 @@ export default function Pattern(props) { {getMessage('gable.offset')}
- setGableOffset(normalizeDigits(e.target.value))} /> + {/* setGableOffset(normalizeDigits(e.target.value))} />*/} + setGableOffset(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm diff --git a/src/components/floor-plan/modal/roofShape/type/Ridge.jsx b/src/components/floor-plan/modal/roofShape/type/Ridge.jsx index fb0f016f..03f22936 100644 --- a/src/components/floor-plan/modal/roofShape/type/Ridge.jsx +++ b/src/components/floor-plan/modal/roofShape/type/Ridge.jsx @@ -1,6 +1,7 @@ import { useMessage } from '@/hooks/useMessage' import { useEffect } from 'react' import { normalizeDecimalLimit, normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function Ridge(props) { const { getMessage } = useMessage() @@ -13,7 +14,20 @@ export default function Ridge(props) { {getMessage('slope')}
- setPitch(normalizeDecimalLimit(e.target.value, 2))} /> + {/* setPitch(normalizeDecimalLimit(e.target.value, 2))} />*/} + setPitch(value)} + options={{ + allowNegative: false, + allowDecimal: true //(index !== 0), + }} + >
{pitchText} @@ -22,7 +36,20 @@ export default function Ridge(props) { {getMessage('eaves.offset')}
- setEavesOffset(normalizeDigits(e.target.value))} /> + {/* setEavesOffset(normalizeDigits(e.target.value))} />*/} + setEavesOffset(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm diff --git a/src/components/floor-plan/modal/roofShape/type/option/Eaves.jsx b/src/components/floor-plan/modal/roofShape/type/option/Eaves.jsx index 8e231c7e..9477adae 100644 --- a/src/components/floor-plan/modal/roofShape/type/option/Eaves.jsx +++ b/src/components/floor-plan/modal/roofShape/type/option/Eaves.jsx @@ -1,5 +1,6 @@ import { useMessage } from '@/hooks/useMessage' import { normalizeDecimalLimit, normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function Eaves({ pitch, setPitch, eavesOffset, setEavesOffset, pitchText }) { const { getMessage } = useMessage() @@ -10,7 +11,21 @@ export default function Eaves({ pitch, setPitch, eavesOffset, setEavesOffset, pi {getMessage('slope')}
- setPitch(normalizeDecimalLimit(e.target.value, 2))} /> + {/* setPitch(normalizeDecimalLimit(e.target.value, 2))} />*/} + setPitch(value)} + options={{ + allowNegative: false, + allowDecimal: true //(index !== 0), + }} + > +
{pitchText} @@ -19,7 +34,20 @@ export default function Eaves({ pitch, setPitch, eavesOffset, setEavesOffset, pi {getMessage('eaves.offset')}
- setEavesOffset(normalizeDigits(e.target.value))} /> + {/* setEavesOffset(normalizeDigits(e.target.value))} />*/} + setEavesOffset(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm diff --git a/src/components/floor-plan/modal/roofShape/type/option/Gable.jsx b/src/components/floor-plan/modal/roofShape/type/option/Gable.jsx index 173c12f4..1b6c1c7f 100644 --- a/src/components/floor-plan/modal/roofShape/type/option/Gable.jsx +++ b/src/components/floor-plan/modal/roofShape/type/option/Gable.jsx @@ -1,6 +1,7 @@ import { useMessage } from '@/hooks/useMessage' import { useEffect } from 'react' import { normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function Gable({ gableOffset, setGableOffset }) { const { getMessage } = useMessage() @@ -10,7 +11,20 @@ export default function Gable({ gableOffset, setGableOffset }) {
{getMessage('gable.offset')}
- setGableOffset(normalizeDigits(e.target.value))} /> + {/* setGableOffset(normalizeDigits(e.target.value))} />*/} + setGableOffset(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm
diff --git a/src/components/floor-plan/modal/roofShape/type/option/HipAndGable.jsx b/src/components/floor-plan/modal/roofShape/type/option/HipAndGable.jsx index 787dd0e8..674525a8 100644 --- a/src/components/floor-plan/modal/roofShape/type/option/HipAndGable.jsx +++ b/src/components/floor-plan/modal/roofShape/type/option/HipAndGable.jsx @@ -1,5 +1,6 @@ import { useMessage } from '@/hooks/useMessage' import { normalizeDecimalLimit, normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function HipAndGable({ pitch, setPitch, eavesOffset, setEavesOffset, hipAndGableWidth, setHipAndGableWidth, pitchText }) { const { getMessage } = useMessage() @@ -10,7 +11,8 @@ export default function HipAndGable({ pitch, setPitch, eavesOffset, setEavesOffs {getMessage('slope')}
- setPitch(normalizeDecimalLimit(e.target.value, 2))} /> + setPitch(normalizeDecimalLimit(e.target.value, 2))} />
{pitchText} @@ -19,7 +21,8 @@ export default function HipAndGable({ pitch, setPitch, eavesOffset, setEavesOffs {getMessage('eaves.offset')}
- setEavesOffset(normalizeDigits(e.target.value))} /> + setEavesOffset(normalizeDigits(e.target.value))} />
mm @@ -28,12 +31,24 @@ export default function HipAndGable({ pitch, setPitch, eavesOffset, setEavesOffs {getMessage('hipandgable.width')}
- setHipAndGableWidth(normalizeDigits(e.target.value))}*/} + {/*/>*/} + setHipAndGableWidth(normalizeDigits(e.target.value))} - /> + onChange={(value) => setHipAndGableWidth(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm diff --git a/src/components/floor-plan/modal/roofShape/type/option/Jerkinhead.jsx b/src/components/floor-plan/modal/roofShape/type/option/Jerkinhead.jsx index 22f0607e..c4f8736f 100644 --- a/src/components/floor-plan/modal/roofShape/type/option/Jerkinhead.jsx +++ b/src/components/floor-plan/modal/roofShape/type/option/Jerkinhead.jsx @@ -1,5 +1,6 @@ import { useMessage } from '@/hooks/useMessage' import { normalizeDecimalLimit, normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function Jerkinhead({ gableOffset, @@ -18,7 +19,20 @@ export default function Jerkinhead({ {getMessage('gable.offset')}
- setGableOffset(normalizeDigits(e.target.value))} /> + setGableOffset(normalizeDigits(e.target.value))} /> + setGableOffset(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm @@ -27,7 +41,21 @@ export default function Jerkinhead({ {getMessage('jerkinhead.width')}
- setJerkinHeadWidth(normalizeDigits(e.target.value))} /> + {/* setJerkinHeadWidth(normalizeDigits(e.target.value))} />*/} + + setJerkinHeadWidth(value)} + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm @@ -36,12 +64,24 @@ export default function Jerkinhead({ {getMessage('jerkinhead.slope')}
- setJerkinHeadPitch(normalizeDecimalLimit(e.target.value, 2))}*/} + {/*/>*/} + setJerkinHeadPitch(normalizeDecimalLimit(e.target.value, 2))} - /> + onChange={(value) => jerkinHeadPitch(value)} + options={{ + allowNegative: false, + allowDecimal: true //(index !== 0), + }} + >
{pitchText} diff --git a/src/components/floor-plan/modal/roofShape/type/option/Shed.jsx b/src/components/floor-plan/modal/roofShape/type/option/Shed.jsx index daacea56..7326204e 100644 --- a/src/components/floor-plan/modal/roofShape/type/option/Shed.jsx +++ b/src/components/floor-plan/modal/roofShape/type/option/Shed.jsx @@ -8,14 +8,16 @@ export default function Shed({ shedWidth, setShedWidth, shedPitch, setShedPitch,
{getMessage('slope')}
- setShedPitch(normalizeDecimalLimit(e.target.value, 2))} /> + setShedPitch(normalizeDecimalLimit(e.target.value, 2))} />
{pitchText}
{getMessage('shed.width')}
- setShedWidth(normalizeDigits(e.target.value))} /> + setShedWidth(normalizeDigits(e.target.value))} />
mm
diff --git a/src/components/floor-plan/modal/roofShape/type/option/Wall.jsx b/src/components/floor-plan/modal/roofShape/type/option/Wall.jsx index dfdff20d..bee6e9bb 100644 --- a/src/components/floor-plan/modal/roofShape/type/option/Wall.jsx +++ b/src/components/floor-plan/modal/roofShape/type/option/Wall.jsx @@ -1,6 +1,7 @@ import { useState } from 'react' import { useMessage } from '@/hooks/useMessage' import { normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function Wall({ sleeveOffset, setSleeveOffset, hasSleeve, setHasSleeve }) { const { getMessage } = useMessage() @@ -10,7 +11,8 @@ export default function Wall({ sleeveOffset, setSleeveOffset, hasSleeve, setHasS
- setHasSleeve(e.target.value)} /> + setHasSleeve(e.target.value)} />
@@ -18,20 +20,34 @@ export default function Wall({ sleeveOffset, setSleeveOffset, hasSleeve, setHasS
- setHasSleeve(e.target.value)} /> + setHasSleeve(e.target.value)} />
- setSleeveOffset(normalizeDigits(e.target.value))}*/} + {/* readOnly={hasSleeve === '0'}*/} + {/*/>*/} + setSleeveOffset(normalizeDigits(e.target.value))} + onChange={(value) => setSleeveOffset(value)} readOnly={hasSleeve === '0'} - /> + options={{ + allowNegative: false, + allowDecimal: false //(index !== 0), + }} + >
mm