모듈 선택 저장 로직 관련 작업

This commit is contained in:
lelalela 2025-01-17 13:01:29 +09:00
parent 5e62a3492f
commit 6e5b4d65d2
5 changed files with 19 additions and 31 deletions

View File

@ -13,6 +13,7 @@ export default function Module({ setTabNum }) {
const { getMessage } = useMessage()
const addedRoofs = useRecoilValue(addedRoofsState) //
const [roofTab, setRoofTab] = useState(0) //
const currentCanvasPlan = useRecoilValue(currentCanvasPlanState)
const {
moduleSelectionInitParams,
@ -40,18 +41,10 @@ export default function Module({ setTabNum }) {
const [moduleSelectionData, setModuleSelectionData] = useRecoilState(moduleSelectionDataState) //
const [moduleSelectionDataPlanList, setModuleSelectionDataPlanList] = useRecoilState(moduleSelectionDataPlanListState)
const currentCanvasPlan = useRecoilValue(currentCanvasPlanState)
const [tempModuleSelectionData, setTempModuleSelectionData] = useReducer((prevState, nextState) => {
return { ...prevState, ...nextState }
}, moduleSelectionData)
useEffect(() => {
if (moduleSelectionDataPlanList) {
setModuleSelectionData(moduleSelectionDataPlanList[currentCanvasPlan.id])
}
}, [])
useEffect(() => {
handleChangeInstallHeight(debouncedInstallHeight)
}, [debouncedInstallHeight])
@ -118,9 +111,9 @@ export default function Module({ setTabNum }) {
</thead>
<tbody>
{selectedModules.itemList &&
selectedModules.itemList.map((row) => (
selectedModules.itemList.map((row, index) => (
<>
<tr>
<tr key={index}>
<td>
<div className="color-wrap">
<span className="color-box" style={{ backgroundColor: row.color }}></span>
@ -242,8 +235,7 @@ export default function Module({ setTabNum }) {
tempModuleSelectionData={tempModuleSelectionData}
setTempModuleSelectionData={setTempModuleSelectionData}
selectedModule={selectedModules}
moduleSelectionDataPlanList={moduleSelectionDataPlanList}
setModuleSelectionDataPlanList={setModuleSelectionDataPlanList}
setModuleSelectionData={setModuleSelectionData}
/>
</div>
))}

View File

@ -15,8 +15,7 @@ export default function ModuleTabContents({
tempModuleSelectionData,
setTempModuleSelectionData,
selectedModule,
moduleSelectionDataPlanList,
setModuleSelectionDataPlanList,
setModuleSelectionData,
}) {
const { getMessage } = useMessage()
const [roofMaterial, setRoofMaterial] = useState(addRoof) //`
@ -164,8 +163,6 @@ export default function ModuleTabContents({
}
useEffect(() => {
console.log('tempModuleSelectionData', tempModuleSelectionData)
if (isObjectNotEmpty(selectedRoofBase) && isObjectNotEmpty(selectedConstruction)) {
const newRoofConstructions = {
roofIndex: roofTab,
@ -246,7 +243,6 @@ export default function ModuleTabContents({
if (isModuleLoaded) {
setTrestleParams({ moduleTpCd: moduleSelectionInitParams.moduleTpCd, roofMatlCd: addRoof.roofMatlCd, raftBaseCd: addRoof.raftBaseCd })
setConstructionList([])
setTempModuleSelectionData({ common: moduleSelectionInitParams, module: selectedModule })
if (isObjectNotEmpty(moduleConstructionSelectionData)) {
//
@ -255,11 +251,11 @@ export default function ModuleTabContents({
setCvrChecked(moduleConstructionSelectionData.construction.setupCover)
setSnowGdChecked(moduleConstructionSelectionData.construction.setupSnowCover)
setIsExistData(true)
setTempModuleSelectionData({ roofConstructions: [{ ...moduleConstructionSelectionData }] })
}
}
}
setTempModuleSelectionData({ common: moduleSelectionInitParams, module: selectedModule })
}, [moduleSelectionInitParams])
useEffect(() => {
@ -288,8 +284,8 @@ export default function ModuleTabContents({
useEffect(() => {
if (isObjectNotEmpty(tempModuleSelectionData)) {
setModuleSelectionDataPlanList({ ...moduleSelectionDataPlanList, [currentCanvasPlan.id]: tempModuleSelectionData })
// setModuleSelectionData(tempModuleSelectionData)
// setModuleSelectionDataPlanList({ ...moduleSelectionDataPlanList, [currentCanvasPlan.id]: tempModuleSelectionData })
setModuleSelectionData(tempModuleSelectionData)
}
}, [tempModuleSelectionData])

View File

@ -3,7 +3,7 @@ import { useMessage } from '@/hooks/useMessage'
import { useModuleBasicSetting } from '@/hooks/module/useModuleBasicSetting'
import { checkedModuleState, currentCanvasPlanState } from '@/store/canvasAtom'
import { useRecoilValue, useSetRecoilState } from 'recoil'
import { moduleSelectionDataPlanListState } from '@/store/selectedModuleOptions'
import { moduleSelectionDataPlanListState, moduleSelectionDataState } from '@/store/selectedModuleOptions'
import { useModulePlace } from '@/hooks/module/useModulePlace'
const Placement = forwardRef((props, refs) => {
@ -21,6 +21,7 @@ const Placement = forwardRef((props, refs) => {
const setCheckedModules = useSetRecoilState(checkedModuleState)
const moduleSelectionDataPlanList = useRecoilValue(moduleSelectionDataPlanListState)
const moduleSelectionData = useRecoilValue(moduleSelectionDataState)
//
useEffect(() => {
@ -28,7 +29,7 @@ const Placement = forwardRef((props, refs) => {
if (moduleSelectionDataPlanList) {
//1
const isChidroriValue = moduleSelectionDataPlanList[currentCanvasPlan.id].roofConstructions.some((item) => item.construction.plvrYn === 'N')
const isChidroriValue = moduleSelectionData.roofConstructions.some((item) => item.construction.plvrYn === 'N')
if (isChidroriValue) {
setIsChidoriNotAble(true)
}

View File

@ -850,7 +850,7 @@ export function useModuleBasicSetting() {
leftMargin = j === 0 ? 0 : intvVer * j
chidoriLength = 0
if (isChidori) {
chidoriLength = i % 2 === 0 ? 0 : height / 2 - intvHor
chidoriLength = i % 2 === 0 ? 0 : height / 2
}
square = [

View File

@ -1,12 +1,13 @@
import { useEffect, useState } from 'react'
import { useRecoilState, useRecoilValue } from 'recoil'
import { moduleSelectionDataPlanListState, selectedModuleState } from '@/store/selectedModuleOptions'
import { moduleSelectionDataPlanListState, moduleSelectionDataState, selectedModuleState } from '@/store/selectedModuleOptions'
import { useMasterController } from '@/hooks/common/useMasterController'
import { canvasState, currentCanvasPlanState } from '@/store/canvasAtom'
export function useModulePlace() {
const canvas = useRecoilValue(canvasState)
const moduleSelectionDataPlanList = useRecoilValue(moduleSelectionDataPlanListState) //다음으로 넘어가는 최종 데이터
const moduleSelectionData = useRecoilValue(moduleSelectionDataState)
const currentCanvasPlan = useRecoilValue(currentCanvasPlanState)
const [trestleDetailParams, setTrestleDetailParams] = useState([])
const [trestleDetailList, setTrestleDetailList] = useState([])
@ -14,9 +15,9 @@ export function useModulePlace() {
const { getTrestleDetailList } = useMasterController()
useEffect(() => {
if (moduleSelectionDataPlanList) {
const common = moduleSelectionDataPlanList[currentCanvasPlan.id].common
const roofConstructions = moduleSelectionDataPlanList[currentCanvasPlan.id].roofConstructions
if (moduleSelectionData) {
const common = moduleSelectionData.common
const roofConstructions = moduleSelectionData.roofConstructions
const listParams = roofConstructions.map((item) => {
return {
@ -35,7 +36,7 @@ export function useModulePlace() {
})
setTrestleDetailParams(listParams)
}
}, [moduleSelectionDataPlanList])
}, [moduleSelectionData])
const getTrestleDetailListData = async () => {
const trestleDetailList = await getTrestleDetailList(trestleDetailParams)
@ -49,8 +50,6 @@ export function useModulePlace() {
}, [trestleDetailParams])
useEffect(() => {
console.log('🚀 ~ useModulePlace ~ trestleDetailList:', trestleDetailList)
//지붕을 가져옴
canvas
.getObjects()