import React, { useCallback, useEffect, useRef, useState } from 'react' import { Button, Input } from '@nextui-org/react' import { useRecoilState, useSetRecoilState } from 'recoil' import { modalState } from '@/store/modalAtom' import { fabric } from 'fabric' import { QPolygon } from '@/components/fabric/QPolygon' import { modeState, objectPlacementModeState } from '@/store/canvasAtom' import { BATCH_TYPE, INPUT_TYPE } from '@/common/common' const ObjectPlacement = ({ canvas }) => { const [open, setOpen] = useRecoilState(modalState) const [mode, setMode] = useRecoilState(modeState) const [objectPlacementMode, setObjectPlacementModeState] = useRecoilState(objectPlacementModeState) const [width, setWidth] = useState(0) const [height, setHeight] = useState(0) const [areaBoundary, setAreaBoundary] = useState(true) // opening or shadow 개구 / 그림자 const [batchType, setBatchType] = useState(BATCH_TYPE.OPENING) // free or dimension 프리 / 치수 const [inputType, setInputType] = useState(INPUT_TYPE.FREE) const handleSave = () => { setMode(batchType) setOpen(false) } return (