LocalStorage -> API 변경
This commit is contained in:
parent
11a7061e0a
commit
028fa7f9bf
@ -1,21 +1,13 @@
|
|||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import { createContext, useEffect, useState } from 'react'
|
import { createContext, useState } from 'react'
|
||||||
import { useLocalStorage } from 'usehooks-ts'
|
|
||||||
|
|
||||||
export const GlobalDataContext = createContext(null)
|
export const GlobalDataContext = createContext(null)
|
||||||
|
|
||||||
const GlobalDataProvider = ({ children }) => {
|
const GlobalDataProvider = ({ children }) => {
|
||||||
const [managementState, setManagementState] = useState(null)
|
const [managementState, setManagementState] = useState(null)
|
||||||
const [managementStateLoaded, setManagementStateLoaded] = useLocalStorage('managementStateLoaded', null)
|
|
||||||
|
|
||||||
useEffect(() => {
|
return <GlobalDataContext.Provider value={{ managementState, setManagementState }}>{children}</GlobalDataContext.Provider>
|
||||||
if (managementState !== null) {
|
|
||||||
setManagementStateLoaded(managementState)
|
|
||||||
}
|
|
||||||
}, [managementState])
|
|
||||||
|
|
||||||
return <GlobalDataContext.Provider value={{ managementState, setManagementState, managementStateLoaded }}>{children}</GlobalDataContext.Provider>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default GlobalDataProvider
|
export default GlobalDataProvider
|
||||||
|
|||||||
@ -1,15 +1,18 @@
|
|||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import { useEffect } from 'react'
|
import { useContext, useEffect } from 'react'
|
||||||
import CanvasMenu from '@/components/floor-plan/CanvasMenu'
|
import CanvasMenu from '@/components/floor-plan/CanvasMenu'
|
||||||
import { useCanvasMenu } from '@/hooks/common/useCanvasMenu'
|
import { useCanvasMenu } from '@/hooks/common/useCanvasMenu'
|
||||||
import { useCanvasSetting } from '@/hooks/option/useCanvasSetting'
|
import { useCanvasSetting } from '@/hooks/option/useCanvasSetting'
|
||||||
import { usePopup } from '@/hooks/usePopup'
|
import { usePopup } from '@/hooks/usePopup'
|
||||||
import '@/styles/contents.scss'
|
import '@/styles/contents.scss'
|
||||||
import { notFound, useSearchParams } from 'next/navigation'
|
import { notFound, useSearchParams } from 'next/navigation'
|
||||||
import { useRecoilState, useResetRecoilState } from 'recoil'
|
import { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'
|
||||||
import { correntObjectNoState } from '@/store/settingAtom'
|
import { correntObjectNoState } from '@/store/settingAtom'
|
||||||
import { currentMenuState } from '@/store/canvasAtom'
|
import { currentMenuState } from '@/store/canvasAtom'
|
||||||
|
import { globalLocaleStore } from '@/store/localeAtom'
|
||||||
|
import { useAxios } from '@/hooks/useAxios'
|
||||||
|
import { GlobalDataContext } from '@/app/GlobalDataProvider'
|
||||||
|
|
||||||
export default function FloorPlan({ children }) {
|
export default function FloorPlan({ children }) {
|
||||||
const [correntObjectNo, setCurrentObjectNo] = useRecoilState(correntObjectNoState)
|
const [correntObjectNo, setCurrentObjectNo] = useRecoilState(correntObjectNoState)
|
||||||
@ -20,12 +23,39 @@ export default function FloorPlan({ children }) {
|
|||||||
const { selectedMenu, setSelectedMenu } = useCanvasMenu()
|
const { selectedMenu, setSelectedMenu } = useCanvasMenu()
|
||||||
const { fetchSettings } = useCanvasSetting()
|
const { fetchSettings } = useCanvasSetting()
|
||||||
const resetCurrentMenu = useResetRecoilState(currentMenuState)
|
const resetCurrentMenu = useResetRecoilState(currentMenuState)
|
||||||
|
const globalLocaleState = useRecoilValue(globalLocaleStore)
|
||||||
|
const { promiseGet } = useAxios(globalLocaleState)
|
||||||
|
const { setManagementState } = useContext(GlobalDataContext)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
getStuffDetailInfo()
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
resetCurrentMenu()
|
resetCurrentMenu()
|
||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
const getStuffDetailInfo = () => {
|
||||||
|
promiseGet({ url: `/api/object/${objectNo}/detail` }).then((res) => {
|
||||||
|
if (res.status === 200) {
|
||||||
|
const { data } = res
|
||||||
|
console.log(data)
|
||||||
|
|
||||||
|
let surfaceTypeValue
|
||||||
|
if (res.data.surfaceType === 'Ⅲ・Ⅳ') {
|
||||||
|
surfaceTypeValue = '3'
|
||||||
|
} else if (res.data.surfaceType === 'Ⅱ') {
|
||||||
|
surfaceTypeValue = '2'
|
||||||
|
}
|
||||||
|
//설치높이 0이면 빈값으로로 셋팅
|
||||||
|
if (res.data.installHeight === '0') {
|
||||||
|
res.data.installHeight = ''
|
||||||
|
}
|
||||||
|
setManagementState({ ...res.data, surfaceTypeValue: surfaceTypeValue })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* URL 파라미터에서 objectNo 설정
|
* URL 파라미터에서 objectNo 설정
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -48,7 +48,6 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) {
|
|||||||
const [manualSetupMode, setManualSetupMode] = useRecoilState(toggleManualSetupModeState)
|
const [manualSetupMode, setManualSetupMode] = useRecoilState(toggleManualSetupModeState)
|
||||||
const [layoutSetup, setLayoutSetup] = useState([{}])
|
const [layoutSetup, setLayoutSetup] = useState([{}])
|
||||||
const {
|
const {
|
||||||
moduleSelectionInitParams,
|
|
||||||
selectedModules,
|
selectedModules,
|
||||||
roughnessCodes,
|
roughnessCodes,
|
||||||
windSpeedCodes,
|
windSpeedCodes,
|
||||||
@ -241,7 +240,6 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) {
|
|||||||
setTabNum,
|
setTabNum,
|
||||||
compasDeg, // 방위각
|
compasDeg, // 방위각
|
||||||
setCompasDeg,
|
setCompasDeg,
|
||||||
moduleSelectionInitParams,
|
|
||||||
selectedModules,
|
selectedModules,
|
||||||
moduleSelectionData,
|
moduleSelectionData,
|
||||||
setModuleSelectionData,
|
setModuleSelectionData,
|
||||||
|
|||||||
@ -23,7 +23,6 @@ export const Orientation = forwardRef((props, ref) => {
|
|||||||
setTabNum,
|
setTabNum,
|
||||||
compasDeg,
|
compasDeg,
|
||||||
setCompasDeg,
|
setCompasDeg,
|
||||||
moduleSelectionInitParams,
|
|
||||||
selectedModules,
|
selectedModules,
|
||||||
roughnessCodes,
|
roughnessCodes,
|
||||||
windSpeedCodes,
|
windSpeedCodes,
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { useContext, useEffect, useState } from 'react'
|
|||||||
import { GlobalDataContext } from '@/app/GlobalDataProvider'
|
import { GlobalDataContext } from '@/app/GlobalDataProvider'
|
||||||
import { useMasterController } from '@/hooks/common/useMasterController'
|
import { useMasterController } from '@/hooks/common/useMasterController'
|
||||||
import { useCommonCode } from '@/hooks/common/useCommonCode'
|
import { useCommonCode } from '@/hooks/common/useCommonCode'
|
||||||
import { selectedModuleState, moduleSelectionInitParamsState, moduleSelectionDataState } from '@/store/selectedModuleOptions'
|
import { selectedModuleState, moduleSelectionDataState } from '@/store/selectedModuleOptions'
|
||||||
import { isObjectNotEmpty } from '@/util/common-utils'
|
import { isObjectNotEmpty } from '@/util/common-utils'
|
||||||
import { canvasState } from '@/store/canvasAtom'
|
import { canvasState } from '@/store/canvasAtom'
|
||||||
import { POLYGON_TYPE } from '@/common/common'
|
import { POLYGON_TYPE } from '@/common/common'
|
||||||
@ -12,7 +12,7 @@ import { useModuleBasicSetting } from '@/hooks/module/useModuleBasicSetting'
|
|||||||
|
|
||||||
export function useModuleSelection(props) {
|
export function useModuleSelection(props) {
|
||||||
const canvas = useRecoilValue(canvasState)
|
const canvas = useRecoilValue(canvasState)
|
||||||
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
|
const { managementState, setManagementState } = useContext(GlobalDataContext)
|
||||||
const [roughnessCodes, setRoughnessCodes] = useState([]) //면조도 목록
|
const [roughnessCodes, setRoughnessCodes] = useState([]) //면조도 목록
|
||||||
const [windSpeedCodes, setWindSpeedCodes] = useState([]) //기준풍속 목록
|
const [windSpeedCodes, setWindSpeedCodes] = useState([]) //기준풍속 목록
|
||||||
const [moduleList, setModuleList] = useState([{}]) //모듈 목록
|
const [moduleList, setModuleList] = useState([{}]) //모듈 목록
|
||||||
@ -21,8 +21,8 @@ export function useModuleSelection(props) {
|
|||||||
const [standardWindSpeed, setStandardWindSpeed] = useState() //기준풍속
|
const [standardWindSpeed, setStandardWindSpeed] = useState() //기준풍속
|
||||||
const [verticalSnowCover, setVerticalSnowCover] = useState(managementState?.verticalSnowCover) //수직적설량
|
const [verticalSnowCover, setVerticalSnowCover] = useState(managementState?.verticalSnowCover) //수직적설량
|
||||||
const [selectedModules, setSelectedModules] = useRecoilState(selectedModuleState) //선택된 모듈
|
const [selectedModules, setSelectedModules] = useRecoilState(selectedModuleState) //선택된 모듈
|
||||||
const [margin, setMargin] = useState(100)
|
|
||||||
const [moduleSelectionInitParams, setModuleSelectionInitParams] = useRecoilState(moduleSelectionInitParamsState) //모듈 기본 데이터 ex) 면조도, 높이등등
|
// const [moduleSelectionInitParams, setModuleSelectionInitParams] = useRecoilState(moduleSelectionInitParamsState) //모듈 기본 데이터 ex) 면조도, 높이등등
|
||||||
const { getModuleTypeItemList } = useMasterController()
|
const { getModuleTypeItemList } = useMasterController()
|
||||||
const { findCommonCode } = useCommonCode()
|
const { findCommonCode } = useCommonCode()
|
||||||
const resetStatisticsData = useResetRecoilState(moduleStatisticsState)
|
const resetStatisticsData = useResetRecoilState(moduleStatisticsState)
|
||||||
@ -40,21 +40,21 @@ export function useModuleSelection(props) {
|
|||||||
//탭별 파라메터 초기화
|
//탭별 파라메터 초기화
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
bindInitData()
|
bindInitData()
|
||||||
const initParams = {
|
// const initParams = {
|
||||||
illuminationTp: managementState?.surfaceTypeValue, //면조도
|
// illuminationTp: managementState?.surfaceTypeValue, //면조도
|
||||||
illuminationTpNm: managementState?.surfaceType, //면조도명
|
// illuminationTpNm: managementState?.surfaceType, //면조도명
|
||||||
instHt: managementState?.installHeight, //설치높이
|
// instHt: managementState?.installHeight, //설치높이
|
||||||
stdWindSpeed: managementState?.standardWindSpeedId, //기준풍속
|
// stdWindSpeed: managementState?.standardWindSpeedId, //기준풍속
|
||||||
stdSnowLd: managementState?.verticalSnowCover, //기준적설량
|
// stdSnowLd: managementState?.verticalSnowCover, //기준적설량
|
||||||
saleStoreNorthFlg: managementState?.saleStoreNorthFlg, //북쪽 설치 여부
|
// saleStoreNorthFlg: managementState?.saleStoreNorthFlg, //북쪽 설치 여부
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (selectedModules) {
|
// if (selectedModules) {
|
||||||
initParams.moduleTpCd = selectedModules.itemTp
|
// initParams.moduleTpCd = selectedModules.itemTp
|
||||||
initParams.moduleItemId = selectedModules.itemId
|
// initParams.moduleItemId = selectedModules.itemId
|
||||||
}
|
// }
|
||||||
|
|
||||||
setModuleSelectionInitParams(initParams)
|
// setModuleSelectionInitParams(initParams)
|
||||||
}, [managementState])
|
}, [managementState])
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -122,19 +122,19 @@ export function useModuleSelection(props) {
|
|||||||
setSelectedModules(option) //선택값 저장
|
setSelectedModules(option) //선택값 저장
|
||||||
|
|
||||||
//init 데이터에 선택된 모듈 추가
|
//init 데이터에 선택된 모듈 추가
|
||||||
setModuleSelectionInitParams({
|
// setModuleSelectionInitParams({
|
||||||
...moduleSelectionInitParams,
|
// ...moduleSelectionInitParams,
|
||||||
moduleTpCd: option.itemTp,
|
// moduleTpCd: option.itemTp,
|
||||||
moduleItemId: option.itemId,
|
// moduleItemId: option.itemId,
|
||||||
})
|
// })
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleChangeSurfaceType = (option) => {
|
const handleChangeSurfaceType = (option) => {
|
||||||
setModuleSelectionInitParams({
|
// setModuleSelectionInitParams({
|
||||||
...moduleSelectionInitParams,
|
// ...moduleSelectionInitParams,
|
||||||
illuminationTp: option.clCode,
|
// illuminationTp: option.clCode,
|
||||||
illuminationTpNm: option.clCodeNm,
|
// illuminationTpNm: option.clCodeNm,
|
||||||
})
|
// })
|
||||||
|
|
||||||
setManagementState({
|
setManagementState({
|
||||||
...managementState,
|
...managementState,
|
||||||
@ -144,10 +144,10 @@ export function useModuleSelection(props) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const handleChangeWindSpeed = (option) => {
|
const handleChangeWindSpeed = (option) => {
|
||||||
setModuleSelectionInitParams({
|
// setModuleSelectionInitParams({
|
||||||
...moduleSelectionInitParams,
|
// ...moduleSelectionInitParams,
|
||||||
stdWindSpeed: option.clCode,
|
// stdWindSpeed: option.clCode,
|
||||||
})
|
// })
|
||||||
|
|
||||||
setManagementState({
|
setManagementState({
|
||||||
...managementState,
|
...managementState,
|
||||||
@ -157,10 +157,10 @@ export function useModuleSelection(props) {
|
|||||||
|
|
||||||
const handleChangeInstallHeight = (option) => {
|
const handleChangeInstallHeight = (option) => {
|
||||||
setInstallHeight(option)
|
setInstallHeight(option)
|
||||||
setModuleSelectionInitParams({
|
// setModuleSelectionInitParams({
|
||||||
...moduleSelectionInitParams,
|
// ...moduleSelectionInitParams,
|
||||||
instHt: option,
|
// instHt: option,
|
||||||
})
|
// })
|
||||||
|
|
||||||
setManagementState({
|
setManagementState({
|
||||||
...managementState,
|
...managementState,
|
||||||
@ -170,10 +170,10 @@ export function useModuleSelection(props) {
|
|||||||
|
|
||||||
const handleChangeVerticalSnowCover = (option) => {
|
const handleChangeVerticalSnowCover = (option) => {
|
||||||
setVerticalSnowCover(option)
|
setVerticalSnowCover(option)
|
||||||
setModuleSelectionInitParams({
|
// setModuleSelectionInitParams({
|
||||||
...moduleSelectionInitParams,
|
// ...moduleSelectionInitParams,
|
||||||
stdSnowLd: option,
|
// stdSnowLd: option,
|
||||||
})
|
// })
|
||||||
|
|
||||||
setManagementState({
|
setManagementState({
|
||||||
...managementState,
|
...managementState,
|
||||||
@ -181,36 +181,8 @@ export function useModuleSelection(props) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: 설치높이, 기준적설량 debounce 적용해서 추가해야됨
|
|
||||||
|
|
||||||
// useEffect(() => {
|
|
||||||
// getConstructionListData(constructionListParams)
|
|
||||||
// }, [constructionListParams])
|
|
||||||
|
|
||||||
// const getConstructionListData = async (params) => {
|
|
||||||
// if (params.trestleMkrCd && params.constMthdCd && params.roofBaseCd) {
|
|
||||||
// const optionsList = await getConstructionList(params)
|
|
||||||
// console.log('optionsList', optionsList)
|
|
||||||
// setConstructionList(optionsList.data)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
//state 배열에 데이터 추가 함수
|
|
||||||
// const addRoofTabParams = (key, value, excludeArray = []) => {
|
|
||||||
// const index = roofTabParams.findIndex((obj) => obj.roofTab === roofTab)
|
|
||||||
// if (index !== -1) {
|
|
||||||
// roofTabParams[index][key] = value
|
|
||||||
// if (excludeArray.length > 0) {
|
|
||||||
// excludeArray.forEach((exclude) => {
|
|
||||||
// roofTabParams[index][exclude] = ''
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
// setRoofTabParams((prev) => [...prev.slice(0, index), roofTabParams[index], ...prev.slice(index + 1)])
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
moduleSelectionInitParams,
|
// moduleSelectionInitParams,
|
||||||
selectedModules,
|
selectedModules,
|
||||||
roughnessCodes,
|
roughnessCodes,
|
||||||
windSpeedCodes,
|
windSpeedCodes,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user