import WallLineSetting from '@/components/floor-plan/modal/outerlinesetting/WallLineSetting' import RoofShapeSetting from '@/components/floor-plan/modal/roofShape/RoofShapeSetting' import RoofShapePassivitySetting from '@/components/floor-plan/modal/roofShape/RoofShapePassivitySetting' import AuxiliaryDrawing from '@/components/floor-plan/modal/auxiliary/AuxiliaryDrawing' import EavesGableEdit from '@/components/floor-plan/modal/eavesGable/EavesGableEdit' import MovementSetting from '@/components/floor-plan/modal/movement/MovementSetting' import WallLineOffsetSetting from '@/components/floor-plan/modal/wallLineOffset/WallLineOffsetSetting' import RoofAllocationSetting from '@/components/floor-plan/modal/roofAllocation/RoofAllocationSetting' import Slope from '@/components/floor-plan/modal/Slope' import PlacementShapeDrawing from '@/components/floor-plan/modal/placementShape/PlacementShapeDrawing' import PlacementSurfaceSetting from '@/components/floor-plan/modal/placementSurface/PlacementSurfaceSetting' import ObjectSetting from '@/components/floor-plan/modal/object/ObjectSetting' import BasicSetting from '@/components/floor-plan/modal/basic/BasicSetting' import CircuitTrestleSetting from '@/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting' import { usePopup } from '@/hooks/usePopup' import { useState } from 'react' import { v4 as uuidv4 } from 'uuid' import { useSurfaceShapeBatch } from '@/hooks/surface/useSurfaceShapeBatch' import { useRecoilValue } from 'recoil' import { currentMenuState } from '@/store/canvasAtom' import { MENU } from '@/common/common' export default function useMenu() { const menus = [] const currentMenu = useRecoilValue(currentMenuState) const [popupId, setPopupId] = useState(uuidv4()) const { addPopup } = usePopup() const { deleteAllSurfacesAndObjects } = useSurfaceShapeBatch() const handleMenu = (type) => { if (type === 'outline') { switch (currentMenu) { case MENU.ROOF_COVERING.EXTERIOR_WALL_LINE: addPopup(popupId, 1, ) break case MENU.ROOF_COVERING.ROOF_SHAPE_SETTINGS: addPopup(popupId, 1, ) break case MENU.ROOF_COVERING.ROOF_SHAPE_PASSIVITY_SETTINGS: addPopup(popupId, 1, ) break case MENU.ROOF_COVERING.HELP_LINE_DRAWING: addPopup(popupId, 1, ) break case MENU.ROOF_COVERING.EAVES_KERAVA_EDIT: addPopup(popupId, 1, ) break case MENU.ROOF_COVERING.MOVEMENT_SHAPE_UPDOWN: addPopup(popupId, 1, ) break case MENU.ROOF_COVERING.OUTLINE_EDIT_OFFSET: addPopup(popupId, 1, ) break case MENU.ROOF_COVERING.ROOF_SHAPE_ALLOC: addPopup(popupId, 1, ) break } } if (type === 'surface') { switch (currentMenu) { case MENU.BATCH_CANVAS.SLOPE_SETTING: addPopup(popupId, 1, ) break case MENU.BATCH_CANVAS.BATCH_DRAWING: addPopup(popupId, 1, ) break case MENU.BATCH_CANVAS.SURFACE_SHAPE_BATCH: addPopup(popupId, 1, ) break case MENU.BATCH_CANVAS.OBJECT_BATCH: addPopup(popupId, 1, ) break case MENU.BATCH_CANVAS.ALL_REMOVE: deleteAllSurfacesAndObjects() break } } if (type === 'module') { switch (currentMenu) { case MENU.MODULE_CIRCUIT_SETTING.BASIC_SETTING: addPopup(popupId, 1, ) break case MENU.MODULE_CIRCUIT_SETTING.CIRCUIT_TRESTLE_SETTING: addPopup(popupId, 1, ) break } } } return { menus, handleMenu, } }