Compare commits
3 Commits
6c6e5845ef
...
d524b33f56
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d524b33f56 | ||
| f32e772141 | |||
| 7d76929689 |
@ -91,14 +91,14 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (roofsStore && addedRoofs) {
|
if (roofsStore && addedRoofs) {
|
||||||
console.log('🚀 ~ useEffect ~ roofsStore, addedRoofs:', roofsStore, addedRoofs)
|
console.log('🚀 ~ useEffect ~ roofsStore, addedRoofs:', roofsStore, addedRoofs)
|
||||||
setRoofs(
|
// setRoofs(
|
||||||
addedRoofs.map((roof, index) => {
|
// addedRoofs.map((roof, index) => {
|
||||||
return {
|
// return {
|
||||||
...roof,
|
// ...roof,
|
||||||
...roofsStore[index].addRoof,
|
// ...roofsStore[index]?.addRoof,
|
||||||
}
|
// }
|
||||||
}),
|
// }),
|
||||||
)
|
// )
|
||||||
|
|
||||||
setModuleSelectionData({
|
setModuleSelectionData({
|
||||||
...moduleSelectionData,
|
...moduleSelectionData,
|
||||||
|
|||||||
@ -321,7 +321,7 @@ export const Orientation = forwardRef((props, ref) => {
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{Array.from({ length: 2 }).map((_, index) => {
|
{Array.from({ length: 3 }).map((_, index) => {
|
||||||
return selectedModules && selectedModules?.itemList && selectedModules?.itemList?.length >= index + 1 ? (
|
return selectedModules && selectedModules?.itemList && selectedModules?.itemList?.length >= index + 1 ? (
|
||||||
<tr key={index}>
|
<tr key={index}>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import {
|
|||||||
checkedModuleState,
|
checkedModuleState,
|
||||||
isManualModuleLayoutSetupState,
|
isManualModuleLayoutSetupState,
|
||||||
isManualModuleSetupState,
|
isManualModuleSetupState,
|
||||||
|
moduleRowColArrayState,
|
||||||
moduleSetupOptionState,
|
moduleSetupOptionState,
|
||||||
toggleManualSetupModeState,
|
toggleManualSetupModeState,
|
||||||
} from '@/store/canvasAtom'
|
} from '@/store/canvasAtom'
|
||||||
@ -36,6 +37,7 @@ const Placement = forwardRef((props, refs) => {
|
|||||||
const resetModuleSetupOption = useResetRecoilState(moduleSetupOptionState)
|
const resetModuleSetupOption = useResetRecoilState(moduleSetupOptionState)
|
||||||
|
|
||||||
const [colspan, setColspan] = useState(1)
|
const [colspan, setColspan] = useState(1)
|
||||||
|
const [moduleRowColArray, setModuleRowColArray] = useRecoilState(moduleRowColArrayState)
|
||||||
|
|
||||||
//모듈 배치면 생성
|
//모듈 배치면 생성
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -62,6 +64,10 @@ const Placement = forwardRef((props, refs) => {
|
|||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
console.log('moduleRowColArray', moduleRowColArray)
|
||||||
|
}, [moduleRowColArray])
|
||||||
|
|
||||||
//최초 지입시 체크
|
//최초 지입시 체크
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isObjectNotEmpty(moduleSelectionData)) {
|
if (isObjectNotEmpty(moduleSelectionData)) {
|
||||||
@ -342,18 +348,18 @@ const Placement = forwardRef((props, refs) => {
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{moduleSelectionData.roofConstructions.map((item) => (
|
{moduleSelectionData.roofConstructions.map((item, index) => (
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<div className="color-wrap">
|
<div className="color-wrap">
|
||||||
<span className="color-box" style={{ backgroundColor: roofOutlineColor(item.roofIndex) }}></span>
|
<span className="color-box" style={{ backgroundColor: roofOutlineColor(item.addRoof.index) }}></span>
|
||||||
<span className="name">{item.addRoof.roofMatlNmJp}</span>
|
<span className="name">{item.addRoof.roofMatlNmJp}</span>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
{selectedModules.itemList.map((item) => (
|
{moduleRowColArray[index]?.map((item) => (
|
||||||
<>
|
<>
|
||||||
<td className="al-c">7</td>
|
<td className="al-c">{item.moduleMaxRows}</td>
|
||||||
{colspan > 1 && <td className="al-c">5</td>}
|
{colspan > 1 && <td className="al-c">{item.mixModuleMaxRows}</td>}
|
||||||
</>
|
</>
|
||||||
))}
|
))}
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -45,7 +45,7 @@ const Trestle = forwardRef((props, ref) => {
|
|||||||
const selectedModules = useRecoilValue(selectedModuleState) //선택된 모듈
|
const selectedModules = useRecoilValue(selectedModuleState) //선택된 모듈
|
||||||
// const [moduleSelectionData, setModuleSelectionData] = useRecoilState(moduleSelectionDataState)
|
// const [moduleSelectionData, setModuleSelectionData] = useRecoilState(moduleSelectionDataState)
|
||||||
const [lengthBase, setLengthBase] = useState(0)
|
const [lengthBase, setLengthBase] = useState(0)
|
||||||
const [hajebichi, setHajebichi] = useState(0)
|
const [hajebichi, setHajebichi] = useState(trestleState?.roofPitch ?? 0)
|
||||||
const [selectedRaftBase, setSelectedRaftBase] = useState(null)
|
const [selectedRaftBase, setSelectedRaftBase] = useState(null)
|
||||||
const [selectedTrestle, setSelectedTrestle] = useState(null)
|
const [selectedTrestle, setSelectedTrestle] = useState(null)
|
||||||
const [selectedConstMthd, setSelectedConstMthd] = useState(null)
|
const [selectedConstMthd, setSelectedConstMthd] = useState(null)
|
||||||
@ -196,10 +196,12 @@ const Trestle = forwardRef((props, ref) => {
|
|||||||
stdWindSpeed: managementState?.standardWindSpeedId ?? '',
|
stdWindSpeed: managementState?.standardWindSpeedId ?? '',
|
||||||
stdSnowLd: +managementState?.verticalSnowCover ?? '',
|
stdSnowLd: +managementState?.verticalSnowCover ?? '',
|
||||||
inclCd: selectedRoof?.pitch.toString() ?? 0,
|
inclCd: selectedRoof?.pitch.toString() ?? 0,
|
||||||
roofPitch: Math.round(selectedRoof?.roofPchBase ?? 0),
|
// roofPitch: Math.round(selectedRoof?.roofPchBase ?? 0),
|
||||||
|
roofPitch: hajebichi ?? 0,
|
||||||
constTp: constructionList[index].constTp,
|
constTp: constructionList[index].constTp,
|
||||||
mixMatlNo: selectedModules.mixMatlNo,
|
mixMatlNo: selectedModules.mixMatlNo,
|
||||||
workingWidth: selectedRoof?.length.toString() ?? '',
|
// workingWidth: selectedRoof?.length.toString() ?? '',
|
||||||
|
workingWidth: lengthBase ?? '',
|
||||||
// snowGdPossYn: constructionList[index].snowGdPossYn,
|
// snowGdPossYn: constructionList[index].snowGdPossYn,
|
||||||
// cvrYn: constructionList[index].cvrYn,
|
// cvrYn: constructionList[index].cvrYn,
|
||||||
},
|
},
|
||||||
@ -254,25 +256,24 @@ const Trestle = forwardRef((props, ref) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
console.log('newAddedRoofs', newAddedRoofs)
|
|
||||||
|
|
||||||
if (result) {
|
if (result) {
|
||||||
setRoofs(newAddedRoofs)
|
setRoofs(newAddedRoofs)
|
||||||
setModuleSelectionData({
|
setModuleSelectionData({
|
||||||
...moduleSelectionData,
|
...moduleSelectionData,
|
||||||
roofConstructions: newAddedRoofs.map((roof, index) => {
|
roofConstructions: newAddedRoofs.map((roof, index) => {
|
||||||
return {
|
return {
|
||||||
|
roofIndex: index,
|
||||||
addRoof: {
|
addRoof: {
|
||||||
|
...moduleSelectionData.roofConstructions[index]?.addRoof,
|
||||||
...roof.addRoof,
|
...roof.addRoof,
|
||||||
...moduleSelectionData.roofConstructions[index].addRoof,
|
|
||||||
},
|
},
|
||||||
trestle: {
|
trestle: {
|
||||||
...roof.trestle,
|
...roof.trestle,
|
||||||
...moduleSelectionData.roofConstructions[index].trestle,
|
...moduleSelectionData.roofConstructions[index]?.trestle,
|
||||||
},
|
},
|
||||||
construction: {
|
construction: {
|
||||||
|
...moduleSelectionData.roofConstructions[index]?.construction,
|
||||||
...roof.construction,
|
...roof.construction,
|
||||||
...moduleSelectionData.roofConstructions[index].construction,
|
|
||||||
},
|
},
|
||||||
trestleDetail: {
|
trestleDetail: {
|
||||||
...roof.trestleDetail,
|
...roof.trestleDetail,
|
||||||
@ -338,7 +339,7 @@ const Trestle = forwardRef((props, ref) => {
|
|||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
className="input-origin block"
|
className="input-origin block"
|
||||||
value={trestleState?.lengthBase}
|
value={lengthBase}
|
||||||
onChange={(e) => setLengthBase(e.target.value)}
|
onChange={(e) => setLengthBase(e.target.value)}
|
||||||
disabled={selectedRoof.lenAuth === 'R'}
|
disabled={selectedRoof.lenAuth === 'R'}
|
||||||
/>
|
/>
|
||||||
@ -379,7 +380,7 @@ const Trestle = forwardRef((props, ref) => {
|
|||||||
type="text"
|
type="text"
|
||||||
className="input-origin block"
|
className="input-origin block"
|
||||||
disabled={selectedRoof.roofPchAuth === 'R'}
|
disabled={selectedRoof.roofPchAuth === 'R'}
|
||||||
onChange={(e) => handleHajebichiAndLength(e, 'hajebichi')}
|
onChange={(e) => setHajebichi(e.target.value)}
|
||||||
value={hajebichi}
|
value={hajebichi}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import {
|
|||||||
isManualModuleSetupState,
|
isManualModuleSetupState,
|
||||||
moduleSetupOptionState,
|
moduleSetupOptionState,
|
||||||
toggleManualSetupModeState,
|
toggleManualSetupModeState,
|
||||||
|
moduleRowColArrayState,
|
||||||
} from '@/store/canvasAtom'
|
} from '@/store/canvasAtom'
|
||||||
|
|
||||||
import { rectToPolygon, polygonToTurfPolygon, calculateVisibleModuleHeight, getDegreeByChon, toFixedWithoutRounding } from '@/util/canvas-util'
|
import { rectToPolygon, polygonToTurfPolygon, calculateVisibleModuleHeight, getDegreeByChon, toFixedWithoutRounding } from '@/util/canvas-util'
|
||||||
@ -61,6 +62,7 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
const { drawDirectionArrow } = usePolygon()
|
const { drawDirectionArrow } = usePolygon()
|
||||||
const moduleSetupOption = useRecoilValue(moduleSetupOptionState)
|
const moduleSetupOption = useRecoilValue(moduleSetupOptionState)
|
||||||
const setManualSetupMode = useSetRecoilState(toggleManualSetupModeState)
|
const setManualSetupMode = useSetRecoilState(toggleManualSetupModeState)
|
||||||
|
const [moduleRowColArray, setModuleRowColArray] = useRecoilState(moduleRowColArrayState)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
return () => {
|
return () => {
|
||||||
@ -81,6 +83,8 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
|
|
||||||
//모듈 선택에서 선택된 값들 넘어옴
|
//모듈 선택에서 선택된 값들 넘어옴
|
||||||
const makeModuleInitArea = () => {
|
const makeModuleInitArea = () => {
|
||||||
|
console.log('moduleSelectionData', moduleSelectionData)
|
||||||
|
|
||||||
if (isObjectNotEmpty(moduleSelectionData) && tabNum === 3) {
|
if (isObjectNotEmpty(moduleSelectionData) && tabNum === 3) {
|
||||||
if (canvasSetting.roofSizeSet !== '3') {
|
if (canvasSetting.roofSizeSet !== '3') {
|
||||||
const common = moduleSelectionData.common
|
const common = moduleSelectionData.common
|
||||||
@ -90,11 +94,11 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
const listParams = roofConstructions.map((item) => {
|
const listParams = roofConstructions.map((item) => {
|
||||||
return {
|
return {
|
||||||
...common,
|
...common,
|
||||||
roofMatlCd: item.trestle.roofMatlCd,
|
roofMatlCd: item.addRoof.roofMatlCd,
|
||||||
trestleMkrCd: item.trestle.trestleMkrCd,
|
trestleMkrCd: item.addRoof.trestleMkrCd,
|
||||||
constMthdCd: item.trestle.constMthdCd,
|
constMthdCd: item.addRoof.constMthdCd,
|
||||||
roofBaseCd: item.trestle.roofBaseCd,
|
roofBaseCd: item.addRoof.roofBaseCd,
|
||||||
constTp: item.construction.constTp,
|
constTp: item.addRoof.constTp,
|
||||||
mixMatlNo: selectedModules.mixMatlNo,
|
mixMatlNo: selectedModules.mixMatlNo,
|
||||||
roofPitch: item.addRoof.hajebichi ? item.addRoof.hajebichi : 0,
|
roofPitch: item.addRoof.hajebichi ? item.addRoof.hajebichi : 0,
|
||||||
inclCd: String(item.addRoof.pitch),
|
inclCd: String(item.addRoof.pitch),
|
||||||
@ -140,6 +144,7 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
//가대 상세 데이터 들어오면 실행
|
//가대 상세 데이터 들어오면 실행
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (trestleDetailList.length > 0) {
|
if (trestleDetailList.length > 0) {
|
||||||
|
let rowColArray = []
|
||||||
//지붕을 가져옴
|
//지붕을 가져옴
|
||||||
canvas
|
canvas
|
||||||
.getObjects()
|
.getObjects()
|
||||||
@ -147,26 +152,37 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
.forEach((roof) => {
|
.forEach((roof) => {
|
||||||
if (!roof.roofMaterial) return
|
if (!roof.roofMaterial) return
|
||||||
const roofIndex = roof.roofMaterial.index //지붕의 지붕재의 순번
|
const roofIndex = roof.roofMaterial.index //지붕의 지붕재의 순번
|
||||||
|
|
||||||
trestleDetailList.forEach((detail) => {
|
trestleDetailList.forEach((detail) => {
|
||||||
if (detail.data !== null) {
|
if (detail.data !== null) {
|
||||||
if (Number(detail.data.roofIndex) === roofIndex) {
|
if (Number(detail.data.roofIndex) === roofIndex) {
|
||||||
//roof에 상세 데이터 추가
|
//roof에 상세 데이터 추가
|
||||||
|
|
||||||
roof.set({
|
roof.set({
|
||||||
trestleDetail: detail.data,
|
trestleDetail: detail.data,
|
||||||
stroke: roofOutlineColor(roofIndex),
|
stroke: roofOutlineColor(roofIndex),
|
||||||
strokeWidth: 7,
|
strokeWidth: 7,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const offsetObjects = moduleSelectionData.roofConstructions.find((item) => item.addRoof.index === roofIndex)
|
||||||
|
|
||||||
roof.lines.forEach((line) => {
|
roof.lines.forEach((line) => {
|
||||||
line.attributes = { ...line.attributes, offset: getOffset(detail.data, line.attributes.type) }
|
line.attributes = { ...line.attributes, offset: getOffset(offsetObjects.addRoof, line.attributes.type) }
|
||||||
})
|
})
|
||||||
//배치면 설치 영역
|
//배치면 설치 영역
|
||||||
makeModuleInstArea(roof, detail.data)
|
makeModuleInstArea(roof, detail.data)
|
||||||
//surface에 상세 데이터 추가
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
trestleDetailList.forEach((detail) => {
|
||||||
|
const moduleRowArray = []
|
||||||
|
detail.data.module.forEach((module) => {
|
||||||
|
moduleRowArray.push({ moduleMaxRows: module.moduleMaxRows, mixModuleMaxRows: module.mixModuleMaxRows })
|
||||||
|
})
|
||||||
|
rowColArray.push(moduleRowArray)
|
||||||
|
})
|
||||||
|
setModuleRowColArray(rowColArray)
|
||||||
}
|
}
|
||||||
}, [trestleDetailList])
|
}, [trestleDetailList])
|
||||||
|
|
||||||
@ -185,12 +201,12 @@ export function useModuleBasicSetting(tabNum) {
|
|||||||
const getOffset = (data, type) => {
|
const getOffset = (data, type) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case LINE_TYPE.WALLLINE.EAVES:
|
case LINE_TYPE.WALLLINE.EAVES:
|
||||||
return data.eaveIntvl / 10
|
return data.eavesMargin / 10
|
||||||
case LINE_TYPE.WALLLINE.GABLE:
|
case LINE_TYPE.WALLLINE.GABLE:
|
||||||
return data.kerabaIntvl / 10
|
return data.kerabaMargin / 10
|
||||||
case LINE_TYPE.SUBLINE.RIDGE:
|
case LINE_TYPE.SUBLINE.RIDGE:
|
||||||
case LINE_TYPE.WALLLINE.SHED:
|
case LINE_TYPE.WALLLINE.SHED:
|
||||||
return data.ridgeIntvl / 10
|
return data.ridgeMargin / 10
|
||||||
default:
|
default:
|
||||||
return 200 / 10
|
return 200 / 10
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,8 +8,6 @@ import { GlobalDataContext } from '@/app/GlobalDataProvider'
|
|||||||
const RAFT_BASE_CODE = '203800'
|
const RAFT_BASE_CODE = '203800'
|
||||||
|
|
||||||
const trestleReducer = (state, action) => {
|
const trestleReducer = (state, action) => {
|
||||||
console.log('🚀 ~ trestleReducer ~ state:', state)
|
|
||||||
console.log('🚀 ~ trestleReducer ~ action:', action)
|
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case 'SET_RAFT_BASE':
|
case 'SET_RAFT_BASE':
|
||||||
case 'SET_TRESTLE_MAKER':
|
case 'SET_TRESTLE_MAKER':
|
||||||
@ -21,7 +19,6 @@ const trestleReducer = (state, action) => {
|
|||||||
...action.roof,
|
...action.roof,
|
||||||
}
|
}
|
||||||
case 'SET_INITIALIZE':
|
case 'SET_INITIALIZE':
|
||||||
console.log('SET_INITIALIZE')
|
|
||||||
return {
|
return {
|
||||||
moduleTpCd: action.roof.moduleTpCd ?? '',
|
moduleTpCd: action.roof.moduleTpCd ?? '',
|
||||||
roofMatlCd: action.roof.roofMatlCd ?? '',
|
roofMatlCd: action.roof.roofMatlCd ?? '',
|
||||||
@ -85,7 +82,6 @@ export function useModuleTrestle(props) {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (trestleState) {
|
if (trestleState) {
|
||||||
console.log('🚀 ~ useEffect ~ trestleState:', trestleState)
|
|
||||||
handleSetTrestleList()
|
handleSetTrestleList()
|
||||||
if (!trestleState.trestleMkrCd) {
|
if (!trestleState.trestleMkrCd) {
|
||||||
setConstMthdList([])
|
setConstMthdList([])
|
||||||
@ -168,7 +164,7 @@ export function useModuleTrestle(props) {
|
|||||||
stdSnowLd: trestleState.stdSnowLd ?? '',
|
stdSnowLd: trestleState.stdSnowLd ?? '',
|
||||||
inclCd: trestleState.inclCd ?? '',
|
inclCd: trestleState.inclCd ?? '',
|
||||||
raftBaseCd: trestleState.raftBaseCd ?? '',
|
raftBaseCd: trestleState.raftBaseCd ?? '',
|
||||||
roofPitch: trestleState.roofPitch ?? '',
|
roofPitch: Math.round(trestleState.roofPitch) ?? '',
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res?.data) setConstructionList(res.data)
|
if (res?.data) setConstructionList(res.data)
|
||||||
})
|
})
|
||||||
|
|||||||
@ -296,7 +296,7 @@ export function useRoofAllocationSetting(id) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return { ...roof, index: idx, raft: roof.raft ? roof.raft : roof.raftBaseCd }
|
return { ...roof, index: idx, raft: roof.raft ? roof.raft : roof.raftBaseCd, raftBaseCd: roof.raft ? roof.raft : roof.raftBaseCd }
|
||||||
})
|
})
|
||||||
|
|
||||||
setBasicSetting((prev) => {
|
setBasicSetting((prev) => {
|
||||||
@ -308,7 +308,8 @@ export function useRoofAllocationSetting(id) {
|
|||||||
const selectedRoofMaterial = newRoofList.find((roof) => roof.selected)
|
const selectedRoofMaterial = newRoofList.find((roof) => roof.selected)
|
||||||
setSurfaceShapePattern(currentObject, roofDisplay.column, false, selectedRoofMaterial, true)
|
setSurfaceShapePattern(currentObject, roofDisplay.column, false, selectedRoofMaterial, true)
|
||||||
drawDirectionArrow(currentObject)
|
drawDirectionArrow(currentObject)
|
||||||
modifyModuleSelectionData()
|
setModuleSelectionData({ ...moduleSelectionData, roofConstructions: newRoofList })
|
||||||
|
// modifyModuleSelectionData()
|
||||||
closeAll()
|
closeAll()
|
||||||
basicSettingSave()
|
basicSettingSave()
|
||||||
}
|
}
|
||||||
@ -430,7 +431,8 @@ export function useRoofAllocationSetting(id) {
|
|||||||
setSelectedMenu('surface')
|
setSelectedMenu('surface')
|
||||||
|
|
||||||
/** 모듈 선택 데이터 초기화 */
|
/** 모듈 선택 데이터 초기화 */
|
||||||
modifyModuleSelectionData()
|
// modifyModuleSelectionData()
|
||||||
|
setModuleSelectionData({ ...moduleSelectionData, roofConstructions: newRoofList })
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -402,3 +402,9 @@ export const toggleManualSetupModeState = atom({
|
|||||||
key: 'toggleManualSetupModeState',
|
key: 'toggleManualSetupModeState',
|
||||||
default: '',
|
default: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export const moduleRowColArrayState = atom({
|
||||||
|
key: 'moduleRowColArrayState',
|
||||||
|
default: [],
|
||||||
|
dangerouslyAllowMutability: true,
|
||||||
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user