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) }} >