roofMaterials가 로드 후 실행 배치면초기설정 조회 처리 및 setCanvasSetting 수정
This commit is contained in:
parent
a69d2879f3
commit
fefddac1a9
@ -140,8 +140,7 @@ export function useCanvasSetting() {
|
|||||||
const selectedRoofMaterial = useRecoilValue(selectedRoofMaterialSelector) // 선택된 지붕재 정보
|
const selectedRoofMaterial = useRecoilValue(selectedRoofMaterialSelector) // 선택된 지붕재 정보
|
||||||
const { floorPlanState } = useContext(FloorPlanContext) // 플랜 상태
|
const { floorPlanState } = useContext(FloorPlanContext) // 플랜 상태
|
||||||
const { closeAll } = usePopup() // 팝업 닫기
|
const { closeAll } = usePopup() // 팝업 닫기
|
||||||
// const previousObjectNoRef = useRef(null) // 최초 데이터 설정 확인
|
const [isRoofMaterialsLoaded, setIsRoofMaterialsLoaded] = useState(false) // roofMaterials 로드 상태 확인
|
||||||
// const previousRoofMaterialsRef = useRef(null) // 최초 데이터 설정 확인
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const tempFetchRoofMaterials = !fetchRoofMaterials
|
const tempFetchRoofMaterials = !fetchRoofMaterials
|
||||||
@ -153,6 +152,15 @@ export function useCanvasSetting() {
|
|||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roofMaterials가 변경될 때마다 로드 상태 업데이트
|
||||||
|
*/
|
||||||
|
useEffect(() => {
|
||||||
|
if (roofMaterials.length > 0) {
|
||||||
|
setIsRoofMaterialsLoaded(true)
|
||||||
|
}
|
||||||
|
}, [roofMaterials])
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 지붕재 초기세팅
|
* 지붕재 초기세팅
|
||||||
*/
|
*/
|
||||||
@ -188,26 +196,6 @@ export function useCanvasSetting() {
|
|||||||
setBasicSettings({ ...basicSetting, selectedRoofMaterial: selectedRoofMaterial })
|
setBasicSettings({ ...basicSetting, selectedRoofMaterial: selectedRoofMaterial })
|
||||||
}
|
}
|
||||||
|
|
||||||
// useEffect(() => {
|
|
||||||
// // 지붕재 select 정보가 존재해야 배치면초기설정 DB 정보 비교 후 지붕재 정보를 가져올 수 있음
|
|
||||||
// if (
|
|
||||||
// (!previousObjectNoRef.current && !correntObjectNo && previousObjectNoRef.current !== correntObjectNo) ||
|
|
||||||
// (roofMaterials.length !== 0 && JSON.stringify(previousRoofMaterialsRef.current) !== JSON.stringify(roofMaterials))
|
|
||||||
// ) {
|
|
||||||
// // 1회만 실행
|
|
||||||
// if (roofMaterials && previousRoofMaterialsYn === 'N') {
|
|
||||||
// if (correntObjectNo) {
|
|
||||||
// //fetchBasicSettings()
|
|
||||||
// previousRoofMaterialsYn = 'Y'
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // 이전 값을 업데이트
|
|
||||||
// previousObjectNoRef.current = correntObjectNo
|
|
||||||
// previousRoofMaterialsRef.current = roofMaterials
|
|
||||||
// }
|
|
||||||
// }, [roofMaterials, correntObjectNo])
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 배치면 초기설정 화면이 열리지 않아도 데이터 set 하기 위해서 추가
|
* 배치면 초기설정 화면이 열리지 않아도 데이터 set 하기 위해서 추가
|
||||||
*/
|
*/
|
||||||
@ -330,13 +318,24 @@ export function useCanvasSetting() {
|
|||||||
* 기본설정(PlacementShapeSetting) 조회 및 초기화
|
* 기본설정(PlacementShapeSetting) 조회 및 초기화
|
||||||
*/
|
*/
|
||||||
const fetchBasicSettings = async (planNo, openPoint) => {
|
const fetchBasicSettings = async (planNo, openPoint) => {
|
||||||
/* roofMaterials가 로드될 때까지 대기 */
|
|
||||||
if (!roofMaterials || roofMaterials.length === 0) {
|
|
||||||
console.log('Waiting for roofMaterials to load...')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
/* roofMaterials가 로드될 때까지 대기 후 실행 */
|
||||||
|
if (!isRoofMaterialsLoaded) {
|
||||||
|
/* roofMaterials가 아직 로드되지 않았다면 */
|
||||||
|
await new Promise((resolve) => {
|
||||||
|
/* 새로운 Promise 생성 */
|
||||||
|
const checkInterval = setInterval(() => {
|
||||||
|
/* 100ms마다 체크하는 인터벌 설정 */
|
||||||
|
console.log('roofMaterials loading... ', roofMaterials.length)
|
||||||
|
if (roofMaterials.length > 0) {
|
||||||
|
/* roofMaterials가 로드되었다면 */
|
||||||
|
clearInterval(checkInterval) // 인터벌 중지
|
||||||
|
resolve() // Promise 완료
|
||||||
|
}
|
||||||
|
}, 100)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
await get({
|
await get({
|
||||||
url: `/api/canvas-management/canvas-basic-settings/by-object/${correntObjectNo}/${planNo}`,
|
url: `/api/canvas-management/canvas-basic-settings/by-object/${correntObjectNo}/${planNo}`,
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
@ -433,6 +432,7 @@ export function useCanvasSetting() {
|
|||||||
|
|
||||||
if (addRoofs.length > 0) {
|
if (addRoofs.length > 0) {
|
||||||
setAddedRoofs(addRoofs)
|
setAddedRoofs(addRoofs)
|
||||||
|
|
||||||
setBasicSettings({
|
setBasicSettings({
|
||||||
...basicSetting,
|
...basicSetting,
|
||||||
roofMaterials: addRoofs[0],
|
roofMaterials: addRoofs[0],
|
||||||
@ -442,13 +442,23 @@ export function useCanvasSetting() {
|
|||||||
roofsData: roofsArray,
|
roofsData: roofsArray,
|
||||||
selectedRoofMaterial: addRoofs.find((roof) => roof.selected),
|
selectedRoofMaterial: addRoofs.find((roof) => roof.selected),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
setCanvasSetting({
|
||||||
|
...basicSetting,
|
||||||
|
roofMaterials: addRoofs[0],
|
||||||
|
planNo: roofsRow[0].planNo,
|
||||||
|
roofSizeSet: roofsRow[0].roofSizeSet,
|
||||||
|
roofAngleSet: roofsRow[0].roofAngleSet,
|
||||||
|
roofsData: roofsArray,
|
||||||
|
selectedRoofMaterial: addRoofs.find((roof) => roof.selected),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Data fetching error:', error)
|
console.error('Data fetching error:', error)
|
||||||
}
|
}
|
||||||
|
|
||||||
setCanvasSetting({ ...basicSetting })
|
// setCanvasSetting({ ...basicSetting })
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -482,12 +492,15 @@ export function useCanvasSetting() {
|
|||||||
|
|
||||||
await post({ url: `/api/canvas-management/canvas-basic-settings`, data: patternData }).then((res) => {
|
await post({ url: `/api/canvas-management/canvas-basic-settings`, data: patternData }).then((res) => {
|
||||||
swalFire({ text: getMessage(res.returnMessage) })
|
swalFire({ text: getMessage(res.returnMessage) })
|
||||||
/* 배치면초기설정 조회 */
|
/* BasicSettings Recoil 설정 */
|
||||||
setBasicSettings({ ...params })
|
setBasicSettings({ ...params })
|
||||||
})
|
})
|
||||||
|
|
||||||
/* CanvasSetting Recoil 설정 */
|
/* CanvasSetting Recoil 설정 - roofSizeSet을 문자열로 변환 */
|
||||||
setCanvasSetting({ ...basicSetting })
|
setCanvasSetting({
|
||||||
|
...basicSetting,
|
||||||
|
roofSizeSet: String(params.roofSizeSet),
|
||||||
|
})
|
||||||
|
|
||||||
/* 배치면초기설정 조회 */
|
/* 배치면초기설정 조회 */
|
||||||
fetchBasicSettings(params.planNo, null)
|
fetchBasicSettings(params.planNo, null)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user