contextmenu modal 추가

This commit is contained in:
minsik 2024-11-01 18:10:42 +09:00
parent 51c4fcfe14
commit ea8b4a3e36
2 changed files with 12 additions and 4 deletions

View File

@ -3,12 +3,14 @@ import { useEffect } from 'react'
import '@/styles/contents.scss' import '@/styles/contents.scss'
import { useRecoilState } from 'recoil' import { useRecoilState } from 'recoil'
import { contextMenuListState, contextMenuState } from '@/store/contextMenu' import { contextMenuListState, contextMenuState } from '@/store/contextMenu'
import { useTempGrid } from '@/hooks/useTempGrid'
export default function QContextMenu(props) { export default function QContextMenu(props) {
const { contextRef, canvasProps, handleKeyup } = props const { contextRef, canvasProps, handleKeyup } = props
const [contextMenu, setContextMenu] = useRecoilState(contextMenuState) const [contextMenu, setContextMenu] = useRecoilState(contextMenuState)
const [contextMenuList, setContextMenuList] = useRecoilState(contextMenuListState) const [contextMenuList, setContextMenuList] = useRecoilState(contextMenuListState)
const activeObject = canvasProps?.getActiveObject() // const activeObject = canvasProps?.getActiveObject() //
const { tempGridMode, setTempGridMode } = useTempGrid()
let contextType = '' let contextType = ''
@ -32,6 +34,7 @@ export default function QContextMenu(props) {
const handleContextMenu = (e) => { const handleContextMenu = (e) => {
// e.preventDefault() // contextmenu // e.preventDefault() // contextmenu
if (tempGridMode) return
const position = { const position = {
x: window.innerWidth / 2 < e.pageX ? e.pageX - 240 : e.pageX, x: window.innerWidth / 2 < e.pageX ? e.pageX - 240 : e.pageX,
y: window.innerHeight / 2 < e.pageY ? getYPosition(e) : e.pageY, y: window.innerHeight / 2 < e.pageY ? getYPosition(e) : e.pageY,

View File

@ -43,12 +43,11 @@ export function useContextMenu() {
const { addPopup } = usePopup() const { addPopup } = usePopup()
const [popupId, setPopupId] = useState(uuidv4()) const [popupId, setPopupId] = useState(uuidv4())
const [gridColor, setGridColor] = useRecoilState(gridColorState) const [gridColor, setGridColor] = useRecoilState(gridColorState)
const { deleteObject, moveObject, copyObject, editText, changeDimensionExtendLine } = useCommonUtils() const { deleteObject, moveObject, copyObject, editText, changeDimensionExtendLine, deleteOuterLineObject } = useCommonUtils()
const [qContextMenu, setQContextMenu] = useRecoilState(contextMenuState) const [qContextMenu, setQContextMenu] = useRecoilState(contextMenuState)
const [cell, setCell] = useState(null) const [cell, setCell] = useState(null)
const [column, setColumn] = useState(null) const [column, setColumn] = useState(null)
const { handleZoomClear } = useCanvasEvent() const { handleZoomClear } = useCanvasEvent()
const currentMenuSetting = () => { const currentMenuSetting = () => {
switch (currentMenu) { switch (currentMenu) {
case MENU.PLAN_DRAWING: case MENU.PLAN_DRAWING:
@ -172,6 +171,7 @@ export function useContextMenu() {
{ {
id: 'sizeEdit', id: 'sizeEdit',
name: getMessage('contextmenu.size.edit'), name: getMessage('contextmenu.size.edit'),
component: <SizeSetting id={popupId} target={currentObject} />,
}, },
{ {
id: 'remove', id: 'remove',
@ -207,6 +207,7 @@ export function useContextMenu() {
{ {
id: 'flowDirectionEdit', id: 'flowDirectionEdit',
name: getMessage('contextmenu.flow.direction.edit'), name: getMessage('contextmenu.flow.direction.edit'),
component: <FlowDirectionSetting id={popupId} />,
}, },
], ],
]) ])
@ -241,7 +242,7 @@ export function useContextMenu() {
if (temp.length > 0) menu = temp if (temp.length > 0) menu = temp
} }
handleClick(null, menu) if (menu) handleClick(null, menu)
} }
useEffect(() => { useEffect(() => {
@ -342,6 +343,7 @@ export function useContextMenu() {
{ {
id: 'sizeEdit', id: 'sizeEdit',
name: getMessage('contextmenu.size.edit'), name: getMessage('contextmenu.size.edit'),
component: <SizeSetting id={popupId} target={currentObject} />,
}, },
{ {
id: 'openingRemove', id: 'openingRemove',
@ -419,19 +421,23 @@ export function useContextMenu() {
]) ])
break break
case 'lineGrid': case 'lineGrid':
case 'tempGrid':
setContextMenu([ setContextMenu([
[ [
{ {
id: 'gridMove', id: 'gridMove',
name: getMessage('modal.grid.move'), name: getMessage('modal.grid.move'),
component: <GridMove id={popupId} />,
}, },
{ {
id: 'gridCopy', id: 'gridCopy',
name: getMessage('modal.grid.copy'), name: getMessage('modal.grid.copy'),
component: <GridCopy id={popupId} />,
}, },
{ {
id: 'gridColorEdit', id: 'gridColorEdit',
name: getMessage('contextmenu.grid.color.edit'), name: getMessage('contextmenu.grid.color.edit'),
component: <ColorPickerModal id={popupId} color={gridColor} setColor={setGridColor} />,
}, },
{ {
id: 'remove', id: 'remove',
@ -561,7 +567,6 @@ export function useContextMenu() {
]) ])
break break
case 'module': case 'module':
case 'dimensionLineText':
setContextMenu([ setContextMenu([
[ [
{ {