+
+ {getMessage('setting')}
+
+
{type === TYPES.EAVES &&
}
{type === TYPES.GABLE &&
}
{type === TYPES.WALL_MERGE &&
}
diff --git a/src/components/floor-plan/modal/eavesGable/type/Eaves.jsx b/src/components/floor-plan/modal/eavesGable/type/Eaves.jsx
index fb4db8cd..78cbd55e 100644
--- a/src/components/floor-plan/modal/eavesGable/type/Eaves.jsx
+++ b/src/components/floor-plan/modal/eavesGable/type/Eaves.jsx
@@ -6,7 +6,7 @@ import { ANGLE_TYPE, currentAngleTypeSelector } from '@/store/canvasAtom'
import { normalizeDecimalLimit, normalizeDigits } from '@/util/input-utils'
import { CalculatorInput } from '@/components/common/input/CalcInput'
-export default function Eaves({ pitchRef, offsetRef, widthRef, radioTypeRef, pitchText }) {
+export default function Eaves({ pitchRef, offsetRef, widthRef, radioTypeRef, pitchText, disableKeypad }) {
const { getMessage } = useMessage()
const [type, setType] = useState('1')
const onChange = (e) => {
@@ -43,6 +43,7 @@ export default function Eaves({ pitchRef, offsetRef, widthRef, radioTypeRef, pit
onChange={(value) => {
if (pitchRef?.current) pitchRef.current.value = value
}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: true //(index !== 0),
@@ -77,6 +78,7 @@ export default function Eaves({ pitchRef, offsetRef, widthRef, radioTypeRef, pit
onChange={(value) => {
if (offsetRef?.current) offsetRef.current.value = value
}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false //(index !== 0),
@@ -144,6 +146,7 @@ export default function Eaves({ pitchRef, offsetRef, widthRef, radioTypeRef, pit
onChange={(value) => {
if (widthRef?.current) widthRef.current.value = value
}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false //(index !== 0),
diff --git a/src/components/floor-plan/modal/eavesGable/type/Gable.jsx b/src/components/floor-plan/modal/eavesGable/type/Gable.jsx
index b8eab8a7..ba947dec 100644
--- a/src/components/floor-plan/modal/eavesGable/type/Gable.jsx
+++ b/src/components/floor-plan/modal/eavesGable/type/Gable.jsx
@@ -5,7 +5,7 @@ import { useRecoilValue } from 'recoil'
import { ANGLE_TYPE, currentAngleTypeSelector } from '@/store/canvasAtom'
import { CalculatorInput } from '@/components/common/input/CalcInput'
-export default function Gable({ pitchRef, offsetRef, widthRef, radioTypeRef, pitchText }) {
+export default function Gable({ pitchRef, offsetRef, widthRef, radioTypeRef, pitchText, disableKeypad }) {
const { getMessage } = useMessage()
const [type, setType] = useState('1')
const onChange = (e) => {
@@ -30,6 +30,7 @@ export default function Gable({ pitchRef, offsetRef, widthRef, radioTypeRef, pit
className="input-origin block"
ref={offsetRef}
value={300}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false //(index !== 0),
@@ -96,6 +97,7 @@ export default function Gable({ pitchRef, offsetRef, widthRef, radioTypeRef, pit
onChange={(value) => {
if (pitchRef?.current) pitchRef.current.value = value
}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: true //(index !== 0),
@@ -129,6 +131,7 @@ export default function Gable({ pitchRef, offsetRef, widthRef, radioTypeRef, pit
ref={widthRef}
value={800}
readOnly={type === '1'}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false //(index !== 0),
diff --git a/src/components/floor-plan/modal/eavesGable/type/Shed.jsx b/src/components/floor-plan/modal/eavesGable/type/Shed.jsx
index 8ce6038a..724e6c40 100644
--- a/src/components/floor-plan/modal/eavesGable/type/Shed.jsx
+++ b/src/components/floor-plan/modal/eavesGable/type/Shed.jsx
@@ -1,7 +1,7 @@
import { useMessage } from '@/hooks/useMessage'
import { CalculatorInput } from '@/components/common/input/CalcInput'
-export default function Shed({ offsetRef }) {
+export default function Shed({ offsetRef, disableKeypad }) {
const { getMessage } = useMessage()
return (
<>
@@ -19,6 +19,7 @@ export default function Shed({ offsetRef }) {
className="input-origin block"
ref={offsetRef}
value={300}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false //(index !== 0),
diff --git a/src/components/floor-plan/modal/eavesGable/type/WallMerge.jsx b/src/components/floor-plan/modal/eavesGable/type/WallMerge.jsx
index e398a2f1..18891015 100644
--- a/src/components/floor-plan/modal/eavesGable/type/WallMerge.jsx
+++ b/src/components/floor-plan/modal/eavesGable/type/WallMerge.jsx
@@ -3,7 +3,7 @@ import Image from 'next/image'
import { useState } from 'react'
import { CalculatorInput } from '@/components/common/input/CalcInput'
-export default function WallMerge({ offsetRef, radioTypeRef }) {
+export default function WallMerge({ offsetRef, radioTypeRef, disableKeypad }) {
const { getMessage } = useMessage()
const [type, setType] = useState('1')
const onChange = (e) => {
@@ -61,6 +61,7 @@ export default function WallMerge({ offsetRef, radioTypeRef }) {
ref={offsetRef}
value={300}
readOnly={type === '1'}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false //(index !== 0),
diff --git a/src/components/floor-plan/modal/movement/MovementSetting.jsx b/src/components/floor-plan/modal/movement/MovementSetting.jsx
index 46464538..8de192c3 100644
--- a/src/components/floor-plan/modal/movement/MovementSetting.jsx
+++ b/src/components/floor-plan/modal/movement/MovementSetting.jsx
@@ -3,16 +3,22 @@ import WithDraggable from '@/components/common/draggable/WithDraggable'
import FlowLine from '@/components/floor-plan/modal/movement/type/FlowLine'
import Updown from '@/components/floor-plan/modal/movement/type/Updown'
import { useMovementSetting } from '@/hooks/roofcover/useMovementSetting'
+import { useState } from 'react'
+import Image from 'next/image'
export default function MovementSetting({ id, pos = { x: 50, y: 230 } }) {
const { getMessage } = useMessage()
const { TYPE, closePopup, buttonType, type, setType, FLOW_LINE_REF, UP_DOWN_REF, handleSave } = useMovementSetting(id)
+ const [useCalcPad, setUseCalcPad] = useState(false)
+ const disableKeypad = !useCalcPad
const flowLineProps = {
FLOW_LINE_REF,
+ disableKeypad,
}
const updownProps = {
UP_DOWN_REF,
+ disableKeypad,
}
return (
@@ -30,7 +36,10 @@ export default function MovementSetting({ id, pos = { x: 50, y: 230 } }) {
{type === TYPE.FLOW_LINE &&
}
{type === TYPE.UP_DOWN &&
}
+
+
diff --git a/src/components/floor-plan/modal/movement/type/FlowLine.jsx b/src/components/floor-plan/modal/movement/type/FlowLine.jsx
index d4267a27..0c38638d 100644
--- a/src/components/floor-plan/modal/movement/type/FlowLine.jsx
+++ b/src/components/floor-plan/modal/movement/type/FlowLine.jsx
@@ -9,7 +9,7 @@ const FLOW_LINE_TYPE = {
UP_RIGHT: 'upRight',
}
-export default function FlowLine({ FLOW_LINE_REF }) {
+export default function FlowLine({ FLOW_LINE_REF, disableKeypad }) {
const { getMessage } = useMessage()
const [type, setType] = useState(FLOW_LINE_TYPE.DOWN_LEFT)
const [filledInput, setFilledInput] = useState('')
@@ -87,6 +87,7 @@ export default function FlowLine({ FLOW_LINE_REF }) {
value={filledInput}
onFocus={handleFocus}
onChange={(value)=>{setFilledInput(value)}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false
diff --git a/src/components/floor-plan/modal/movement/type/Updown.jsx b/src/components/floor-plan/modal/movement/type/Updown.jsx
index ab88bbbf..a89ce39d 100644
--- a/src/components/floor-plan/modal/movement/type/Updown.jsx
+++ b/src/components/floor-plan/modal/movement/type/Updown.jsx
@@ -10,7 +10,7 @@ const UP_DOWN_TYPE = {
DOWN: 'down',
}
-export default function Updown({ UP_DOWN_REF }) {
+export default function Updown({ UP_DOWN_REF, disableKeypad }) {
const { getMessage } = useMessage()
const [type, setType] = useState(UP_DOWN_TYPE.UP)
const [filledInput, setFilledInput] = useState('100')
@@ -87,6 +87,7 @@ export default function Updown({ UP_DOWN_REF }) {
value={filledInput}
onFocus={handleFocus}
onChange={(value)=>{setFilledInput(value)}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false
diff --git a/src/components/floor-plan/modal/roofShape/RoofShapePassivitySetting.jsx b/src/components/floor-plan/modal/roofShape/RoofShapePassivitySetting.jsx
index 7530bcdd..c43c16ce 100644
--- a/src/components/floor-plan/modal/roofShape/RoofShapePassivitySetting.jsx
+++ b/src/components/floor-plan/modal/roofShape/RoofShapePassivitySetting.jsx
@@ -5,27 +5,34 @@ import Shed from '@/components/floor-plan/modal/roofShape/passivity/Shed'
import { useMessage } from '@/hooks/useMessage'
import { useRoofShapePassivitySetting } from '@/hooks/roofcover/useRoofShapePassivitySetting'
import { usePopup } from '@/hooks/usePopup'
+import { useState } from 'react'
+import Image from 'next/image'
export default function RoofShapePassivitySetting({ id, pos = { x: 50, y: 230 } }) {
const { handleSave, handleConfirm, handleRollback, buttons, type, setType, TYPES, offsetRef, pitchRef, pitchText } =
useRoofShapePassivitySetting(id)
const { getMessage } = useMessage()
const { closePopup } = usePopup()
+ const [useCalcPad, setUseCalcPad] = useState(false)
+ const disableKeypad = !useCalcPad
const eavesProps = {
offsetRef,
pitchRef,
pitchText,
+ disableKeypad,
}
const gableProps = {
offsetRef,
pitchRef,
pitchText,
+ disableKeypad,
}
const shedProps = {
offsetRef,
+ disableKeypad,
}
return (
@@ -55,7 +62,10 @@ export default function RoofShapePassivitySetting({ id, pos = { x: 50, y: 230 }
+
+
diff --git a/src/components/floor-plan/modal/roofShape/passivity/Eaves.jsx b/src/components/floor-plan/modal/roofShape/passivity/Eaves.jsx
index f3dd4052..3b775440 100644
--- a/src/components/floor-plan/modal/roofShape/passivity/Eaves.jsx
+++ b/src/components/floor-plan/modal/roofShape/passivity/Eaves.jsx
@@ -5,7 +5,7 @@ import { selectedRoofMaterialSelector } from '@/store/settingAtom'
import { useEffect } from 'react'
import { CalculatorInput } from '@/components/common/input/CalcInput'
-export default function Eaves({ offsetRef, pitchRef, pitchText }) {
+export default function Eaves({ offsetRef, pitchRef, pitchText, disableKeypad }) {
const { getMessage } = useMessage()
const currentAngleType = useRecoilValue(currentAngleTypeSelector)
const selectedRoofMaterial = useRecoilValue(selectedRoofMaterialSelector)
@@ -30,6 +30,7 @@ export default function Eaves({ offsetRef, pitchRef, pitchText }) {
className="input-origin block"
ref={pitchRef}
value={currentAngleType === ANGLE_TYPE.SLOPE ? selectedRoofMaterial.pitch : selectedRoofMaterial.angle}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: true //(index !== 0),
@@ -52,6 +53,7 @@ export default function Eaves({ offsetRef, pitchRef, pitchText }) {
value={offsetRef.current?.value ?? 500} // Set default value to 500
ref={offsetRef}
onChange={() => {}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false
diff --git a/src/components/floor-plan/modal/roofShape/passivity/Gable.jsx b/src/components/floor-plan/modal/roofShape/passivity/Gable.jsx
index fe04a65e..a37f7072 100644
--- a/src/components/floor-plan/modal/roofShape/passivity/Gable.jsx
+++ b/src/components/floor-plan/modal/roofShape/passivity/Gable.jsx
@@ -3,7 +3,7 @@ import { useRecoilValue } from 'recoil'
import { currentAngleTypeSelector } from '@/store/canvasAtom'
import { CalculatorInput } from '@/components/common/input/CalcInput'
-export default function Gable({ offsetRef }) {
+export default function Gable({ offsetRef, disableKeypad }) {
const { getMessage } = useMessage()
const currentAngleType = useRecoilValue(currentAngleTypeSelector)
return (
@@ -22,6 +22,7 @@ export default function Gable({ offsetRef }) {
value={offsetRef.current?.value ?? 300} // Set default value to 500
ref={offsetRef}
onChange={() => {}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false
diff --git a/src/components/floor-plan/modal/roofShape/passivity/Shed.jsx b/src/components/floor-plan/modal/roofShape/passivity/Shed.jsx
index 67a47bb0..0f33278f 100644
--- a/src/components/floor-plan/modal/roofShape/passivity/Shed.jsx
+++ b/src/components/floor-plan/modal/roofShape/passivity/Shed.jsx
@@ -1,7 +1,7 @@
import { useMessage } from '@/hooks/useMessage'
import { CalculatorInput } from '@/components/common/input/CalcInput'
-export default function Shed({ offsetRef }) {
+export default function Shed({ offsetRef, disableKeypad }) {
const { getMessage } = useMessage()
return (
<>
@@ -19,6 +19,7 @@ export default function Shed({ offsetRef }) {
value={offsetRef.current?.value ?? 300} // Set default value to 500
ref={offsetRef}
onChange={() => {}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false
diff --git a/src/components/floor-plan/modal/wallLineOffset/WallLineOffsetSetting.jsx b/src/components/floor-plan/modal/wallLineOffset/WallLineOffsetSetting.jsx
index 09c847e7..86ab5df6 100644
--- a/src/components/floor-plan/modal/wallLineOffset/WallLineOffsetSetting.jsx
+++ b/src/components/floor-plan/modal/wallLineOffset/WallLineOffsetSetting.jsx
@@ -4,10 +4,14 @@ import WallLine from '@/components/floor-plan/modal/wallLineOffset/type/WallLine
import Offset from '@/components/floor-plan/modal/wallLineOffset/type/Offset'
import { useWallLineOffsetSetting } from '@/hooks/roofcover/useWallLineOffsetSetting'
import { usePopup } from '@/hooks/usePopup'
+import { useState } from 'react'
+import Image from 'next/image'
export default function WallLineOffsetSetting({ id, pos = { x: 50, y: 230 } }) {
const { getMessage } = useMessage()
const { closePopup } = usePopup()
+ const [useCalcPad, setUseCalcPad] = useState(false)
+ const disableKeypad = !useCalcPad
const {
type,
setType,
@@ -30,12 +34,14 @@ export default function WallLineOffsetSetting({ id, pos = { x: 50, y: 230 } }) {
arrow2Ref,
radioTypeRef,
currentWallLineRef,
+ disableKeypad,
}
const offsetProps = {
length1Ref,
arrow1Ref,
currentWallLineRef,
+ disableKeypad,
}
return (
@@ -54,7 +60,10 @@ export default function WallLineOffsetSetting({ id, pos = { x: 50, y: 230 } }) {
{type === TYPES.WALL_LINE_EDIT && }
{type === TYPES.OFFSET && }
-
+
+
diff --git a/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx b/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx
index 79ae0898..8c4685ee 100644
--- a/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx
+++ b/src/components/floor-plan/modal/wallLineOffset/type/Offset.jsx
@@ -3,7 +3,7 @@ import { useEffect, useState } from 'react'
import { useEvent } from '@/hooks/useEvent'
import { CalculatorInput } from '@/components/common/input/CalcInput'
-export default function Offset({ length1Ref, arrow1Ref, currentWallLineRef }) {
+export default function Offset({ length1Ref, arrow1Ref, currentWallLineRef, disableKeypad }) {
const { getMessage } = useMessage()
const { addDocumentEventListener, initEvent } = useEvent()
// const { addDocumentEventListener, initEvent } = useContext(EventContext)
@@ -84,6 +84,7 @@ export default function Offset({ length1Ref, arrow1Ref, currentWallLineRef }) {
value={length1Ref.current?.value ?? 0}
ref={length1Ref}
onChange={() => {}}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false
diff --git a/src/components/floor-plan/modal/wallLineOffset/type/WallLine.jsx b/src/components/floor-plan/modal/wallLineOffset/type/WallLine.jsx
index d78a202f..610780e6 100644
--- a/src/components/floor-plan/modal/wallLineOffset/type/WallLine.jsx
+++ b/src/components/floor-plan/modal/wallLineOffset/type/WallLine.jsx
@@ -3,7 +3,7 @@ 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) {
+export default forwardRef(function WallLine({ length1Ref, length2Ref, arrow1Ref, arrow2Ref, radioTypeRef, currentWallLineRef, disableKeypad }, ref) {
const { getMessage } = useMessage()
const { addDocumentEventListener, initEvent } = useEvent()
// const { addDocumentEventListener, initEvent } = useContext(EventContext)
@@ -57,6 +57,7 @@ export default forwardRef(function WallLine({ length1Ref, length2Ref, arrow1Ref,
ref={length1Ref}
onChange={() => {}}
readOnly={type !== 1}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false
@@ -105,6 +106,7 @@ export default forwardRef(function WallLine({ length1Ref, length2Ref, arrow1Ref,
ref={length2Ref}
onChange={() => {}}
readOnly={type !== 2}
+ disableKeypad={disableKeypad}
options={{
allowNegative: false,
allowDecimal: false
diff --git a/src/hooks/surface/usePlacementShapeDrawing.js b/src/hooks/surface/usePlacementShapeDrawing.js
index 374616be..3a6d1c05 100644
--- a/src/hooks/surface/usePlacementShapeDrawing.js
+++ b/src/hooks/surface/usePlacementShapeDrawing.js
@@ -7,6 +7,7 @@ import { useEffect, useRef } from 'react'
import { fabric } from 'fabric'
import { calculateAngle } from '@/util/qpolygon-utils'
import {
+ OUTER_LINE_TYPE,
placementShapeDrawingAngle1State,
placementShapeDrawingAngle2State,
placementShapeDrawingArrow1State,
@@ -92,6 +93,7 @@ export function usePlacementShapeDrawing(id) {
useEffect(() => {
setPoints([])
+ setType(OUTER_LINE_TYPE.OUTER_LINE)
return () => {
const placementShapeDrawingStartPoint = canvas.getObjects().find((obj) => obj.name === 'placementShapeDrawingStartPoint')