From f5f8eb9460051697db0bd74c4b5e06add1becae2 Mon Sep 17 00:00:00 2001 From: ysCha Date: Wed, 27 May 2026 10:03:56 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[2173]=20=EC=B2=98=EB=A7=88/=EC=BC=80?= =?UTF-8?q?=EB=9D=BC=EB=B0=94=20=ED=86=A0=EA=B8=80=20KERAB-SIMPLE=20?= =?UTF-8?q?=EC=95=8C=EA=B3=A0=EB=A6=AC=EC=A6=98=20+=20offset-surgical=20he?= =?UTF-8?q?lper(flag=20off)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/input/CalcInput.jsx | 26 +- src/hooks/roofcover/useAuxiliaryDrawing.js | 4 + src/hooks/roofcover/useEavesGableEdit.js | 2097 ++++++++++++++++++-- src/hooks/useEvent.js | 4 + src/hooks/useMode.js | 4 + src/util/kerab-offset-surgical.js | 157 ++ src/util/skeleton-utils.js | 4 +- 7 files changed, 2117 insertions(+), 179 deletions(-) create mode 100644 src/util/kerab-offset-surgical.js diff --git a/src/components/common/input/CalcInput.jsx b/src/components/common/input/CalcInput.jsx index a92b86c7..6a26174d 100644 --- a/src/components/common/input/CalcInput.jsx +++ b/src/components/common/input/CalcInput.jsx @@ -77,7 +77,7 @@ export const CalculatorInput = forwardRef( newDisplayValue = calculator.currentOperand setDisplayValue(newDisplayValue) - onChange(newDisplayValue) + onChange?.(newDisplayValue) requestAnimationFrame(() => { if (inputRef.current) { @@ -145,7 +145,7 @@ export const CalculatorInput = forwardRef( newDisplayValue = calculator.currentOperand setDisplayValue(newDisplayValue) if (!hasOperation) { - onChange(calculator.currentOperand) + onChange?.(calculator.currentOperand) } } else if (num === '.') { if (!calculator.currentOperand.includes('.')) { @@ -153,7 +153,7 @@ export const CalculatorInput = forwardRef( newDisplayValue = calculator.currentOperand setDisplayValue(newDisplayValue) if (!hasOperation) { - onChange(newDisplayValue) + onChange?.(newDisplayValue) } } } else if (!shouldPreventInput(calculator.currentOperand)) { @@ -161,7 +161,7 @@ export const CalculatorInput = forwardRef( newDisplayValue = calculator.currentOperand setDisplayValue(newDisplayValue) if (!hasOperation) { - onChange(newDisplayValue) + onChange?.(newDisplayValue) } } // else { @@ -169,7 +169,7 @@ export const CalculatorInput = forwardRef( // newDisplayValue = calculator.currentOperand // setDisplayValue(newDisplayValue) // if (!hasOperation) { - // onChange(newDisplayValue) + // onChange?.(newDisplayValue) // } // } } @@ -236,7 +236,7 @@ export const CalculatorInput = forwardRef( const displayValue = newValue || '0' setDisplayValue(displayValue) setHasOperation(false) - onChange(displayValue) + onChange?.(displayValue) // 커서를 텍스트 끝으로 이동하고 스크롤 처리 requestAnimationFrame(() => { if (inputRef.current) { @@ -260,7 +260,7 @@ export const CalculatorInput = forwardRef( setDisplayValue(resultStr) setHasOperation(false) // Only call onChange with the final result - onChange(resultStr) + onChange?.(resultStr) // 엔터키로 호출된 경우 포커스 설정하지 않음 if (!fromEnterKey) { @@ -282,7 +282,7 @@ export const CalculatorInput = forwardRef( const displayValue = newValue || '0' setDisplayValue(displayValue) setHasOperation(!!calculator.operation) - onChange(displayValue) + onChange?.(displayValue) // 커서를 텍스트 끝으로 이동하고 스크롤 처리 requestAnimationFrame(() => { if (inputRef.current) { @@ -337,10 +337,10 @@ export const CalculatorInput = forwardRef( calculator.currentOperand = filteredValue setHasOperation(false) // 연산자가 없는 순수 숫자일 때만 부모 컴포넌트의 onChange 호출 - onChange(filteredValue) + onChange?.(filteredValue) } - //onChange(filteredValue) + //onChange?.(filteredValue) } } @@ -485,7 +485,7 @@ export const CalculatorInput = forwardRef( onClick={() => { // const newValue = calculatorRef.current.clear() // setDisplayValue(newValue || '0') - // onChange(newValue || '0') + // onChange?.(newValue || '0') handleClear() setHasOperation(false) }} @@ -497,7 +497,7 @@ export const CalculatorInput = forwardRef( onClick={() => { // const newValue = calculatorRef.current.deleteNumber() // setDisplayValue(newValue || '0') - // onChange(newValue || '0') + // onChange?.(newValue || '0') //setHasOperation(!!calculatorRef.current.operation) handleDelete() }} @@ -532,7 +532,7 @@ export const CalculatorInput = forwardRef(