개구, 도머 설치시 sizesetting popup open

This commit is contained in:
hyojun.choi 2025-07-25 14:17:36 +09:00
parent 40970c5580
commit d1da73849f

View File

@ -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, <SizeSetting id={popupId} target={rect} />)
}
})
} else if (selectedType === INPUT_TYPE.DIMENSION) {