From 4f483dbfee2518492a838e76cebfc35f8274e13d Mon Sep 17 00:00:00 2001 From: ysCha Date: Tue, 16 Dec 2025 16:20:26 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EC=99=B8=EB=B2=BD=ED=8E=B8=EC=A7=91?= =?UTF-8?q?=EC=98=A4=EB=B8=8C=EC=85=8B=20:=20=EA=B3=84=EC=82=B0=EA=B8=B0?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/wallLineOffset/type/Offset.jsx | 16 ++++++++- .../modal/wallLineOffset/type/WallLine.jsx | 33 +++++++++++++++++-- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx b/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx index 76f09cc7..79ae0898 100644 --- a/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx +++ b/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx @@ -1,6 +1,7 @@ import { useMessage } from '@/hooks/useMessage' import { useEffect, useState } from 'react' import { useEvent } from '@/hooks/useEvent' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function Offset({ length1Ref, arrow1Ref, currentWallLineRef }) { const { getMessage } = useMessage() @@ -74,7 +75,20 @@ export default function Offset({ length1Ref, arrow1Ref, currentWallLineRef }) {
- + {/**/} + {}} + options={{ + allowNegative: false, + allowDecimal: false + }} + />
mm
diff --git a/src/components/floor-plan/modal/wallLineOffset/type/WallLine.jsx b/src/components/floor-plan/modal/wallLineOffset/type/WallLine.jsx index 92f6a10b..d78a202f 100644 --- a/src/components/floor-plan/modal/wallLineOffset/type/WallLine.jsx +++ b/src/components/floor-plan/modal/wallLineOffset/type/WallLine.jsx @@ -1,6 +1,7 @@ import { useMessage } from '@/hooks/useMessage' import { forwardRef, useEffect, useImperativeHandle, useState } from 'react' import { useEvent } from '@/hooks/useEvent' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default forwardRef(function WallLine({ length1Ref, length2Ref, arrow1Ref, arrow2Ref, radioTypeRef, currentWallLineRef }, ref) { const { getMessage } = useMessage() @@ -46,7 +47,21 @@ export default forwardRef(function WallLine({ length1Ref, length2Ref, arrow1Ref,
- + {/**/} + {}} + readOnly={type !== 1} + options={{ + allowNegative: false, + allowDecimal: false + }} + />
mm
@@ -80,7 +95,21 @@ export default forwardRef(function WallLine({ length1Ref, length2Ref, arrow1Ref,
- + {/**/} + {}} + readOnly={type !== 2} + options={{ + allowNegative: false, + allowDecimal: false + }} + />
mm
From bbf2dfbe7c92cb62579c6691c608f7caee7fb9c3 Mon Sep 17 00:00:00 2001 From: ysCha Date: Tue, 16 Dec 2025 17:14:47 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EB=B3=B4=EC=A1=B0=EC=84=A0=EC=82=AC?= =?UTF-8?q?=EC=9D=B4=EC=A6=88=EB=B3=80=EA=B2=BD=20:=20=EA=B3=84=EC=82=B0?= =?UTF-8?q?=EA=B8=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/auxiliary/AuxiliarySize.jsx | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/src/components/floor-plan/modal/auxiliary/AuxiliarySize.jsx b/src/components/floor-plan/modal/auxiliary/AuxiliarySize.jsx index 5a9cde6f..40fb9f76 100644 --- a/src/components/floor-plan/modal/auxiliary/AuxiliarySize.jsx +++ b/src/components/floor-plan/modal/auxiliary/AuxiliarySize.jsx @@ -8,19 +8,21 @@ import { useEffect, useState } from 'react' import Big from 'big.js' import { calcLineActualSize, calcLinePlaneSize } from '@/util/qpolygon-utils' import { normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function AuxiliarySize(props) { const contextPopupPosition = useRecoilValue(contextPopupPositionState) const { id, pos = contextPopupPosition } = props const [checkedRadio, setCheckedRadio] = useState(null) - const [value1, setValue1] = useState(null) - const [value2, setValue2] = useState(null) + const [value1, setValue1] = useState('') + const [value2, setValue2] = useState('') const [size, setSize] = useState(0) const { getMessage } = useMessage() const { closePopup } = usePopup() const currentObject = useRecoilValue(currentObjectState) const canvas = useRecoilValue(canvasState) + useEffect(() => { return () => { canvas?.discardActiveObject() @@ -37,7 +39,7 @@ export default function AuxiliarySize(props) { }, [currentObject]) const handleInput = (e) => { - let value = e.target.value.replace(/^0+/, '') + let value = e.replace(/^0+/, '') if (value === '') { if (checkedRadio === 1) setValue1(value) if (checkedRadio === 2) setValue2(value) @@ -130,7 +132,20 @@ export default function AuxiliarySize(props) {
{getMessage('length')}
- + {/**/} +
mm
@@ -149,7 +164,20 @@ export default function AuxiliarySize(props) {
{getMessage('length')}
- + {/**/} +
mm
From b81fc389f53b54bf2246aeef29f1d747e20ec790 Mon Sep 17 00:00:00 2001 From: ysCha Date: Tue, 16 Dec 2025 17:20:28 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EB=B3=B4=EC=A1=B0=EC=84=A0=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=EB=B3=B5=EC=82=AC=20:=20=EA=B3=84=EC=82=B0=EA=B8=B0?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/auxiliary/AuxiliaryEdit.jsx | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/components/floor-plan/modal/auxiliary/AuxiliaryEdit.jsx b/src/components/floor-plan/modal/auxiliary/AuxiliaryEdit.jsx index 938b5244..d7696a84 100644 --- a/src/components/floor-plan/modal/auxiliary/AuxiliaryEdit.jsx +++ b/src/components/floor-plan/modal/auxiliary/AuxiliaryEdit.jsx @@ -8,6 +8,7 @@ import { currentObjectState } from '@/store/canvasAtom' import { useAuxiliaryDrawing } from '@/hooks/roofcover/useAuxiliaryDrawing' import { useSwal } from '@/hooks/useSwal' import { normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' export default function AuxiliaryEdit(props) { const contextPopupPosition = useRecoilValue(contextPopupPositionState) @@ -66,7 +67,19 @@ export default function AuxiliaryEdit(props) {

{getMessage('length')}

- setVerticalSize(normalizeDigits(e.target.value))} /> + {/* setVerticalSize(normalizeDigits(e.target.value))} />*/} + setVerticalSize(value)} + options={{ + allowNegative: false, + allowDecimal: false + }} + />
mm
@@ -88,7 +101,19 @@ export default function AuxiliaryEdit(props) {
- setHorizonSize(normalizeDigits(e.target.value))} /> + {/* setHorizonSize(normalizeDigits(e.target.value))} />*/} + setHorizonSize(value)} + options={{ + allowNegative: false, + allowDecimal: false + }} + />
mm
From 6f47b9dc540219b5292e004fb986a4c33c2d01b2 Mon Sep 17 00:00:00 2001 From: ysCha Date: Tue, 16 Dec 2025 17:39:28 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EB=A9=B4=ED=98=95=EC=83=81=EB=B0=B0?= =?UTF-8?q?=EC=B9=98=20:=20=EA=B3=84=EC=82=B0=EA=B8=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../placementSurface/PlacementSurface.jsx | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/components/floor-plan/modal/placementSurface/PlacementSurface.jsx b/src/components/floor-plan/modal/placementSurface/PlacementSurface.jsx index 7ab89106..4ede1367 100644 --- a/src/components/floor-plan/modal/placementSurface/PlacementSurface.jsx +++ b/src/components/floor-plan/modal/placementSurface/PlacementSurface.jsx @@ -1,6 +1,7 @@ import Image from 'next/image' import { useMessage } from '@/hooks/useMessage' import { forwardRef, useState } from 'react' +import { CalculatorInput } from '@/components/common/input/CalcInput' const PlacementSurface = forwardRef((props, refs) => { const { getMessage } = useMessage() @@ -74,10 +75,32 @@ const PlacementSurface = forwardRef((props, refs) => {
- */} + + {}} ref={ line.isDiagonal ? lengthetc @@ -91,6 +114,10 @@ const PlacementSurface = forwardRef((props, refs) => { ? length4 : length5 } + options={{ + allowNegative: false, + allowDecimal: false + }} />
mm From 7bf2db7479b4221ea749066b8755ca9aeb86b2ca Mon Sep 17 00:00:00 2001 From: ysCha Date: Tue, 16 Dec 2025 17:58:46 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EB=8F=99=EC=9D=B4=EB=8F=99=ED=98=84?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20:=20=EA=B3=84=EC=82=B0=EA=B8=B0=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/movement/type/FlowLine.jsx | 21 +++++++++++++++--- .../floor-plan/modal/movement/type/Updown.jsx | 22 ++++++++++++++++--- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/components/floor-plan/modal/movement/type/FlowLine.jsx b/src/components/floor-plan/modal/movement/type/FlowLine.jsx index 7c400fd4..d4267a27 100644 --- a/src/components/floor-plan/modal/movement/type/FlowLine.jsx +++ b/src/components/floor-plan/modal/movement/type/FlowLine.jsx @@ -2,6 +2,7 @@ import { useMessage } from '@/hooks/useMessage' import { useState } from 'react' import { currentObjectState } from '@/store/canvasAtom' import { useRecoilValue } from 'recoil' +import { CalculatorInput } from '@/components/common/input/CalcInput' const FLOW_LINE_TYPE = { DOWN_LEFT: 'downLeft', @@ -69,13 +70,27 @@ export default function FlowLine({ FLOW_LINE_REF }) {
{getMessage('modal.movement.flow.line.movement')}
- */} + {setFilledInput(value)}} + options={{ + allowNegative: false, + allowDecimal: false + }} />
mm diff --git a/src/components/floor-plan/modal/movement/type/Updown.jsx b/src/components/floor-plan/modal/movement/type/Updown.jsx index f03685e7..ab88bbbf 100644 --- a/src/components/floor-plan/modal/movement/type/Updown.jsx +++ b/src/components/floor-plan/modal/movement/type/Updown.jsx @@ -3,6 +3,7 @@ import { useState } from 'react' import { useRecoilValue } from 'recoil' import { currentObjectState } from '@/store/canvasAtom' import { normalizeDigits } from '@/util/input-utils' +import { CalculatorInput } from '@/components/common/input/CalcInput' const UP_DOWN_TYPE = { UP: 'up', @@ -35,6 +36,7 @@ export default function Updown({ UP_DOWN_REF }) { {getMessage('modal.movement.flow.line.position')}
+
@@ -68,13 +70,27 @@ export default function Updown({ UP_DOWN_REF }) {
{getMessage('modal.movement.flow.line.movement')}
- */} + {setFilledInput(value)}} + options={{ + allowNegative: false, + allowDecimal: false + }} />
mm