diff --git a/src/components/auth/Join.jsx b/src/components/auth/Join.jsx
index f414cd62..4062d313 100644
--- a/src/components/auth/Join.jsx
+++ b/src/components/auth/Join.jsx
@@ -98,6 +98,10 @@ export default function Join() {
alert(getMessage('common.message.required.data', [getMessage('join.sub1.fax')]))
faxRef.current.focus()
return false
+ }else if (!telRegex.test(fax)) {
+ alert(getMessage('join.validation.check1', [getMessage('join.sub1.fax')]))
+ faxRef.current.focus()
+ return false
}
const bizNo = formData.get('bizNo')
@@ -174,6 +178,10 @@ export default function Join() {
alert(getMessage('common.message.required.data', [getMessage('join.sub2.fax')]))
userFaxRef.current.focus()
return false
+ } else if (!telRegex.test(userFax)) {
+ alert(getMessage('join.validation.check1', [getMessage('join.sub2.fax')]))
+ userFaxRef.current.focus()
+ return false
}
return true
@@ -349,7 +357,15 @@ export default function Join() {
{getMessage('join.sub1.fax')}* |
-
+
|
@@ -466,7 +482,8 @@ export default function Join() {
name="userFax"
className="input-light"
maxLength={15}
- onChange={inputNumberCheck}
+ placeholder={getMessage('join.sub1.telNo_placeholder')}
+ onChange={inputTelNumberCheck}
ref={userFaxRef}
/>
diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx
index 4c4ea028..02e9d171 100644
--- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx
+++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx
@@ -124,6 +124,9 @@ export default function CircuitTrestleSetting({ id }) {
*/
const validateModuleSizeForRack = (surface) => {
const { modules, direction, trestleDetail } = surface
+ if (!trestleDetail) {
+ return true // 상세 정보 없음
+ }
const { rackYn, moduleIntvlHor, moduleIntvlVer } = trestleDetail
if (rackYn === 'N' || !modules || modules.length < 2) {
diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js
index 45b3b50f..8e59a1e7 100644
--- a/src/hooks/module/useModule.js
+++ b/src/hooks/module/useModule.js
@@ -749,7 +749,7 @@ export function useModule() {
const copyModules = []
const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)
let isWarning = false
- const { moduleIntvlHor, moduleIntvlVer } = moduleSetupSurface.trestleDetail
+ const { moduleIntvlHor = 0, moduleIntvlVer = 0 } = moduleSetupSurface.trestleDetail || {}
canvas.discardActiveObject()
targetModules.forEach((module) => {
const { top, left } = getPosotion(module, type, moduleIntvlHor, true)
@@ -859,7 +859,7 @@ export function useModule() {
const copyModules = []
const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)
let isWarning = false
- const { moduleIntvlHor, moduleIntvlVer } = moduleSetupSurface.trestleDetail
+ const { moduleIntvlHor = 0, moduleIntvlVer = 0 } = moduleSetupSurface.trestleDetail || {}
canvas.discardActiveObject()
targetModules.forEach((module) => {
const { top, left } = getPosotion(module, type, moduleIntvlVer, true)
diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js
index ce7069ac..8d07b18f 100644
--- a/src/hooks/module/useModuleBasicSetting.js
+++ b/src/hooks/module/useModuleBasicSetting.js
@@ -338,10 +338,27 @@ export function useModuleBasicSetting(tabNum) {
})
let isNorth = false
+ const defaultTrestleDetail = {
+ rackYn: 'N',
+ moduleIntvlHor: +roofSizeSet === 3 ? 300 : 0,
+ moduleIntvlVer: +roofSizeSet === 3 ? 100 : 0,
+ rack: null,
+ rackQty: 0,
+ rackIntvlPct: 0,
+ cvrPlvrYn: 'N',
+ lessSupFitIntvlPct: 0,
+ lessSupFitQty: 0,
+ }
const isExistSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.parentId === roof.id)
+ const normalizedTrestleDetail = trestleDetail
+ ? { ...defaultTrestleDetail, ...trestleDetail }
+ : isExistSurface?.trestleDetail
+ ? { ...defaultTrestleDetail, ...isExistSurface.trestleDetail }
+ : defaultTrestleDetail
if (isExistSurface) {
+ isExistSurface.set({ trestleDetail: normalizedTrestleDetail })
if (canvasSetting.roofSizeSet != '3') {
//북면이 있지만
if (roof.directionText && roof.directionText.indexOf('北') > -1) {
@@ -424,7 +441,7 @@ export function useModuleBasicSetting(tabNum) {
originY: 'center',
modules: [],
roofMaterial: roof.roofMaterial,
- trestleDetail: trestleDetail,
+ trestleDetail: normalizedTrestleDetail,
isNorth: isNorth,
perPixelTargetFind: true,
isSaleStoreNorthFlg: moduleSelectionData.common.saleStoreNorthFlg == '1' ? true : false, //북면설치가능점 여부
diff --git a/src/hooks/module/useTrestle.js b/src/hooks/module/useTrestle.js
index 88980cad..e4ee52a8 100644
--- a/src/hooks/module/useTrestle.js
+++ b/src/hooks/module/useTrestle.js
@@ -65,6 +65,10 @@ export const useTrestle = () => {
if (+roofSizeSet === 3) {
return
}
+ const trestleDetail = surface.trestleDetail
+ if (!trestleDetail) {
+ return
+ }
const construction = moduleSelectionData?.roofConstructions?.find((construction) => construction.roofIndex === roofMaterialIndex).construction
if (!construction) {
return
@@ -76,8 +80,8 @@ export const useTrestle = () => {
let isSnowGuard = construction.setupSnowCover
let cvrLmtRow = construction.cvrLmtRow
const direction = parent.direction
- const rack = surface.trestleDetail.rack
- let { rackQty, rackIntvlPct, rackYn, cvrPlvrYn, lessSupFitIntvlPct, lessSupFitQty } = surface.trestleDetail
+ const rack = trestleDetail.rack
+ let { rackQty, rackIntvlPct, rackYn, cvrPlvrYn, lessSupFitIntvlPct, lessSupFitQty } = trestleDetail
if (!rack && lessSupFitIntvlPct === 0 && lessSupFitQty === 0) {
//25/02/06 가대없음의 경우 랙정보가 없음