diff --git a/src/components/floor-plan/CanvasLayout.jsx b/src/components/floor-plan/CanvasLayout.jsx
index 7138907c..3faf35d5 100644
--- a/src/components/floor-plan/CanvasLayout.jsx
+++ b/src/components/floor-plan/CanvasLayout.jsx
@@ -1,124 +1,28 @@
'use client'
import { useEffect, useState } from 'react'
-import { useRecoilState, useRecoilValue } from 'recoil'
+import { useRecoilValue } from 'recoil'
import CanvasFrame from './CanvasFrame'
import { useMessage } from '@/hooks/useMessage'
import { useSwal } from '@/hooks/useSwal'
import { usePlan } from '@/hooks/usePlan'
import { globalLocaleStore } from '@/store/localeAtom'
-import { currentCanvasPlanState, initCanvasPlansState, plansState } from '@/store/canvasAtom'
import { sessionStore } from '@/store/commonAtom'
export default function CanvasLayout() {
const [objectNo, setObjectNo] = useState('test123240822001') // 이후 삭제 필요
- const [planNum, setPlanNum] = useState(0)
- const [currentCanvasPlan, setCurrentCanvasPlan] = useRecoilState(currentCanvasPlanState)
- const [initCanvasPlans, setInitCanvasPlans] = useRecoilState(initCanvasPlansState)
- const [plans, setPlans] = useRecoilState(plansState)
- const globalLocaleState = useRecoilValue(globalLocaleStore)
const sessionState = useRecoilValue(sessionStore)
+ const globalLocaleState = useRecoilValue(globalLocaleStore)
const { getMessage } = useMessage()
const { swalFire } = useSwal()
- const { getCanvasByObjectNo, delCanvasById, checkModifiedCanvasPlan, saveCanvas, currentCanvasData } = usePlan()
-
- const handleCurrentPlan = (newCurrentId) => {
- // console.log('currentPlan newCurrentId: ', newCurrentId)
- if (!currentCanvasPlan || currentCanvasPlan.id !== newCurrentId) {
- if (currentCanvasPlan?.id && checkModifiedCanvasPlan()) {
- swalFire({
- html: getMessage('common.message.confirm.save') + `${currentCanvasPlan.name}`,
- type: 'confirm',
- confirmFn: async () => {
- await saveCanvas(sessionState.userId)
- updateCurrentPlan(newCurrentId)
- },
- denyFn: () => {
- updateCurrentPlan(newCurrentId)
- },
- })
- } else {
- updateCurrentPlan(newCurrentId)
- }
- }
- }
- const updateCurrentPlan = (newCurrentId) => {
- setPlans((plans) =>
- plans.map((plan) => {
- return { ...plan, isCurrent: plan.id === newCurrentId }
- }),
- )
- }
- useEffect(() => {
- setCurrentCanvasPlan(plans.find((plan) => plan.isCurrent) || null)
- }, [plans])
-
- const handleDeletePlan = (e, id) => {
- e.stopPropagation() // 이벤트 버블링 방지
-
- if (initCanvasPlans.some((plan) => plan.id === id)) {
- delCanvasById(id)
- .then((res) => {
- swalFire({ text: getMessage('common.message.delete') })
- // console.log('[DELETE] canvas-statuses res :::::::: %o', res)
- setInitCanvasPlans((initCanvasPlans) => initCanvasPlans.filter((plan) => plan.id !== id))
- setPlans((plans) => plans.filter((plan) => plan.id !== id))
- })
- .catch((error) => {
- swalFire({ text: error.message, icon: 'error' })
- // console.error('[DELETE] canvas-statuses res error :::::::: %o', error)
- })
- } else {
- setPlans((plans) => plans.filter((plan) => plan.id !== id))
- swalFire({ text: getMessage('common.message.delete') })
- }
-
- // 삭제 후 last 데이터에 포커싱
- const lastPlan = plans.filter((plan) => plan.id !== id).at(-1)
- if (!lastPlan) {
- setPlanNum(0)
- setCurrentCanvasPlan(null)
- } else if (id !== lastPlan.id) {
- handleCurrentPlan(lastPlan.id)
- }
- }
-
- const addEmptyPlan = () => {
- setPlans([...plans, { id: planNum, name: `Plan ${planNum + 1}`, objectNo: `${objectNo}` }])
- handleCurrentPlan(planNum)
- setPlanNum(planNum + 1)
- }
-
- const addCopyPlan = () => {
- const copyPlan = {
- id: planNum,
- name: `Plan ${planNum + 1}`,
- objectNo: `${objectNo}`,
- userId: sessionState.userId,
- canvasStatus: currentCanvasData(),
- }
- setPlans((plans) => [...plans, copyPlan])
- handleCurrentPlan(planNum)
- setPlanNum(planNum + 1)
- }
+ const { plans, loadCanvasPlanData, handleCurrentPlan, handleAddPlan, handleDeletePlan } = usePlan()
useEffect(() => {
- if (!currentCanvasPlan) {
- getCanvasByObjectNo(sessionState.userId, objectNo).then((res) => {
- // console.log('canvas 목록 ', res)
- if (res.length > 0) {
- setInitCanvasPlans(res)
- setPlans(res)
- handleCurrentPlan(res.at(-1).id) // last 데이터에 포커싱
- setPlanNum(res.length)
- } else {
- addEmptyPlan()
- }
- })
- }
+ console.log('loadCanvasPlanData 실행, sessionState.userId >>> ', sessionState.userId)
+ loadCanvasPlanData(sessionState.userId, objectNo)
}, [])
-
+
return (
@@ -127,7 +31,7 @@ export default function CanvasLayout() {