- useContextMenu 추가

This commit is contained in:
minsik 2024-10-16 15:10:37 +09:00
parent e172b2cd33
commit 8b570a66de

153
src/hooks/useContextMenu.js Normal file
View File

@ -0,0 +1,153 @@
import { useRecoilValue } from 'recoil'
import { currentMenuState } from '@/store/canvasAtom'
import { useEffect, useState } from 'react'
import { MENU } from '@/common/common'
export function useContextMenu() {
const currentMenu = useRecoilValue(currentMenuState)
const [contextMenu, setContextMenu] = useState([[]])
useEffect(() => {
switch (currentMenu) {
case MENU.PLAN_DRAWING:
setContextMenu([
[
{
id: 'gridMove',
name: '그리드 이동',
},
{
id: 'gridCopy',
name: '그리드 복사',
},
{
id: 'gridColorEdit',
name: '그리드 색 변경',
},
{
id: 'remove',
name: '삭제',
},
{
id: 'removeAll',
name: '전체 삭제',
},
],
])
break
case MENU.ROOF_COVERING.EXTERIOR_WALL_LINE:
case MENU.ROOF_COVERING.ROOF_SHAPE_SETTINGS:
case MENU.ROOF_COVERING.ROOF_SHAPE_PASSIVITY_SETTINGS:
case MENU.ROOF_COVERING.ROOF_SHAPE_EDITING:
case MENU.ROOF_COVERING.HELP_LINE_DRAWING:
case MENU.ROOF_COVERING.EAVES_KERAVA_EDIT:
case MENU.ROOF_COVERING.MOVEMENT_SHAPE_UPDOWN:
case MENU.ROOF_COVERING.OUTLINE_EDIT_OFFSET:
case MENU.ROOF_COVERING.ROOF_SHAPE_ALLOC:
case MENU.ROOF_COVERING.DEFAULT:
setContextMenu([
[
{
id: 'roofMaterialPlacement',
name: '지붕재 배치',
},
{
id: 'roofMaterialRemove',
name: '지붕재 삭제',
},
{
id: 'roofMaterialRemoveAll',
name: '지붕재 전체 삭제',
},
{
id: 'selectMove',
name: '선택・이동',
},
{
id: 'wallLineRemove',
name: '외벽선 삭제',
},
],
[
{
id: 'sizeEdit',
name: '사이즈 변경',
},
{
id: 'auxiliaryMove',
name: '보조선 이동(M)',
},
{
id: 'auxiliaryCopy',
name: '보조선 복사(C)',
},
{
id: 'auxiliaryRemove',
name: '보조선 삭제(D)',
},
{
id: 'auxiliaryVerticalBisector',
name: '보조선 수직이등분선',
},
{
id: 'auxiliaryCut',
name: '보조선 절삭',
},
{
id: 'auxiliaryRemoveAll',
name: '보조선 전체 삭제',
},
],
])
break
case MENU.BATCH_CANVAS.SLOPE_SETTING:
case MENU.BATCH_CANVAS.BATCH_DRAWING:
case MENU.BATCH_CANVAS.SURFACE_SHAPE_BATCH:
case MENU.BATCH_CANVAS.OBJECT_BATCH:
case MENU.BATCH_CANVAS.ALL_REMOVE:
case MENU.BATCH_CANVAS.DEFAULT:
setContextMenu([
[
{
id: 'sizeEdit',
name: '사이즈 변경',
},
{
id: 'remove',
name: '삭제(D)',
},
{
id: 'move',
name: '이동(M)',
},
{
id: 'copy',
name: '복사(C)',
},
],
[
{
id: 'roofMaterialEdit',
name: '지붕재 변경',
},
{
id: 'linePropertyEdit',
name: '각 변 속성 변경',
},
{
id: 'flowDirectionEdit',
name: '흐름 방향 변경',
},
],
])
break
default:
setContextMenu([])
break
}
}, [currentMenu])
return {
contextMenu,
}
}