diff --git a/src/hooks/object/useObjectBatch.js b/src/hooks/object/useObjectBatch.js index 8fe24364..959a0798 100644 --- a/src/hooks/object/useObjectBatch.js +++ b/src/hooks/object/useObjectBatch.js @@ -1,8 +1,8 @@ 'use client' -import { useEffect } from 'react' +import { useEffect, useState } from 'react' import { useMessage } from '@/hooks/useMessage' import { useRecoilValue } from 'recoil' -import { canvasState } from '@/store/canvasAtom' +import { canvasState, currentObjectState } from '@/store/canvasAtom' import { BATCH_TYPE, INPUT_TYPE, POLYGON_TYPE } from '@/common/common' import { useEvent } from '@/hooks/useEvent' import { @@ -23,10 +23,13 @@ import { useRoofFn } from '@/hooks/common/useRoofFn' import { roofDisplaySelector } from '@/store/settingAtom' import { usePopup } from '@/hooks/usePopup' import { useMouse } from '@/hooks/useMouse' +import { useTurf } from '@/hooks/common/useTurf' +import SizeSetting from '@/components/floor-plan/modal/object/SizeSetting' export function useObjectBatch({ isHidden, setIsHidden }) { const { getMessage } = useMessage() const canvas = useRecoilValue(canvasState) + const [popupId, setPopupId] = useState(uuidv4()) const { addCanvasMouseEventListener, initEvent, addDocumentEventListener } = useEvent() // const { addCanvasMouseEventListener, initEvent, addDocumentEventListener } = useContext(EventContext) const { swalFire } = useSwal() @@ -34,8 +37,10 @@ export function useObjectBatch({ isHidden, setIsHidden }) { const { setSurfaceShapePattern } = useRoofFn() const lengthTextFont = useRecoilValue(fontSelector('lengthText')) const roofDisplay = useRecoilValue(roofDisplaySelector) - const { closePopup } = usePopup() + const { closePopup, closeAll, addPopup } = usePopup() const { getIntersectMousePoint } = useMouse() + const { checkModuleDisjointSurface } = useTurf() + const currentObject = useRecoilValue(currentObjectState) useEffect(() => { if (canvas) { @@ -166,7 +171,7 @@ export function useObjectBatch({ isHidden, setIsHidden }) { //그림자는 배치면이 겹친부분에도 그려져야 한다 if (rect.name === BATCH_TYPE.OPENING_TEMP) { //지붕 밖으로 그렸을때 - if (!turf.booleanWithin(rectPolygon, selectedSurfacePolygon)) { + if (!checkModuleDisjointSurface(rectPolygon, selectedSurfacePolygon)) { swalFire({ text: getMessage('batch.object.outside.roof'), icon: 'error' }) //일단 지워 deleteTempObjects() @@ -189,9 +194,11 @@ export function useObjectBatch({ isHidden, setIsHidden }) { isDown = false rect.set({ name: objName, parentId: selectedSurface.id, points: rectToPolygon(rect) }) rect.setCoords() + canvas.setActiveObject(rect) //선택된 상태로 initEvent() - if (setIsHidden) setIsHidden(false) + closeAll() + addPopup(popupId, 1, ) } }) } else if (selectedType === INPUT_TYPE.DIMENSION) {