diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx
index ed2249b0..398797f8 100644
--- a/src/components/floor-plan/CanvasMenu.jsx
+++ b/src/components/floor-plan/CanvasMenu.jsx
@@ -74,7 +74,7 @@ export default function CanvasMenu(props) {
const [estimateCopyPopupOpen, setEstimateCopyPopupOpen] = useState(false)
const { getMessage } = useMessage()
- const { saveCanvas } = usePlan()
+ const { saveCanvas, reloadCanvasStatus } = usePlan()
const { swalFire } = useSwal()
const { initEvent, addCanvasMouseEventListener, addDocumentEventListener } = useEvent()
// const { initEvent, addCanvasMouseEventListener, addDocumentEventListener } = useContext(EventContext)
@@ -149,7 +149,7 @@ export default function CanvasMenu(props) {
setIsGlobalLoading(false)
}
- const onClickNav = (menu) => {
+ const onClickNav = async (menu) => {
switch (menu.index) {
case 0:
swalFire({
@@ -164,17 +164,45 @@ export default function CanvasMenu(props) {
case 1:
setType('placementShape')
onClickPlacementInitialMenu()
-
+ await reloadCanvasStatus(objectNo, pid)
break
case 2:
setType('outline')
+ await reloadCanvasStatus(objectNo, pid)
break
case 3:
- setType('surface')
- break
- case 4:
console.log('๐ ~ onClickNav ~ menu:', menu)
console.log('๐ ~ onClickNav ~ menuNumber:', menuNumber)
+ if (menuNumber > menu.index) {
+ const modules = canvas.getObjects().filter((module) => module.name === POLYGON_TYPE.MODULE)
+ if (modules.length > 0) {
+ swalFire({
+ text: getMessage('module.delete.confirm'),
+ type: 'confirm',
+ confirmFn: () => {
+ //ํด๋น ๋ฉ๋ด ์ด๋์ ๋ฐฐ์น๋ฉด ์ญ์
+ const moduleSurfacesArray = canvas
+ .getObjects()
+ .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE || obj.name === POLYGON_TYPE.MODULE)
+ if (moduleSurfacesArray.length > 0) {
+ moduleSurfacesArray.forEach((moduleSurface) => {
+ canvas.remove(moduleSurface)
+ })
+ canvas.renderAll()
+ }
+ setType('surface')
+ },
+ denyFn: () => {
+ setType('surface')
+ },
+ })
+ }
+ } else {
+ setType('surface')
+ }
+ await reloadCanvasStatus(objectNo, pid)
+ break
+ case 4:
if (menuNumber < menu.index) {
if (!checkMenuAndCanvasState()) {
swalFire({ text: getMessage('menu.validation.canvas.roof') })
@@ -185,7 +213,7 @@ export default function CanvasMenu(props) {
} else {
router.push(`/floor-plan?pid=${pid}&objectNo=${objectNo}`)
}
-
+ await reloadCanvasStatus(objectNo, pid)
break
case 5:
setIsGlobalLoading(true)
@@ -591,10 +619,10 @@ export default function CanvasMenu(props) {
{
+ onClick={async () => {
if (['2', '3'].includes(canvasSetting?.roofSizeSet) && menu.index === 2) return
if (menuNumber === 4 && [1, 2].includes(menu.index)) return
- onClickNav(menu)
+ await onClickNav(menu)
}}
>