From 6929878ccae984c74bc14956098150ee9f13f2c5 Mon Sep 17 00:00:00 2001 From: minsik Date: Thu, 31 Oct 2024 14:30:45 +0900 Subject: [PATCH] =?UTF-8?q?context=20menu=20=EB=B2=84=EA=B7=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useContextMenu.js | 4 ++-- src/hooks/usePopup.js | 5 +++-- src/store/popupAtom.js | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/hooks/useContextMenu.js b/src/hooks/useContextMenu.js index 99fa585f..e60b80ae 100644 --- a/src/hooks/useContextMenu.js +++ b/src/hooks/useContextMenu.js @@ -10,7 +10,7 @@ import GridMove from '@/components/floor-plan/modal/grid/GridMove' import GridCopy from '@/components/floor-plan/modal/grid/GridCopy' import ColorPickerModal from '@/components/common/color-picker/ColorPickerModal' import { gridColorState } from '@/store/gridAtom' -import { contextPopupPositionState } from '@/store/popupAtom' +import { contextPopupPositionState, contextPopupState } from '@/store/popupAtom' import AuxiliaryCopy from '@/components/floor-plan/modal/auxiliary/AuxiliaryCopy' import SizeSetting from '@/components/floor-plan/modal/object/SizeSetting' import RoofMaterialSetting from '@/components/floor-plan/modal/object/RoofMaterialSetting' @@ -37,7 +37,7 @@ export function useContextMenu() { const currentMenu = useRecoilValue(currentMenuState) // 현재 메뉴 const setContextPopupPosition = useSetRecoilState(contextPopupPositionState) // 현재 메뉴 const [contextMenu, setContextMenu] = useState([[]]) // 메뉴.object 별 context menu - const [currentContextMenu, setCurrentContextMenu] = useState(null) // 선택한 contextMenu + const [currentContextMenu, setCurrentContextMenu] = useRecoilState(contextPopupState) // 선택한 contextMenu const currentObject = useRecoilValue(currentObjectState) const { getMessage } = useMessage() const { addPopup } = usePopup() diff --git a/src/hooks/usePopup.js b/src/hooks/usePopup.js index 37730ec5..b126996d 100644 --- a/src/hooks/usePopup.js +++ b/src/hooks/usePopup.js @@ -1,14 +1,15 @@ import { useRecoilState } from 'recoil' -import { popupState } from '@/store/popupAtom' +import { contextPopupState, popupState } from '@/store/popupAtom' export function usePopup() { const [popup, setPopup] = useRecoilState(popupState) - + const [contextMenuPopup, setContextMenuPopup] = useRecoilState(contextPopupState) const addPopup = (id, depth, component) => { setPopup({ children: [...filterDepth(depth), { id: id, depth: depth, component: component }] }) } const closePopup = (id) => { + if (contextMenuPopup) setContextMenuPopup(null) setPopup({ children: [...filterChildrenPopup(id).filter((child) => child.id !== id)] }) } diff --git a/src/store/popupAtom.js b/src/store/popupAtom.js index 498f4eed..c5c75501 100644 --- a/src/store/popupAtom.js +++ b/src/store/popupAtom.js @@ -12,6 +12,12 @@ export const popupState = atom({ dangerouslyAllowMutability: true, }) +export const contextPopupState = atom({ + key: 'contextPopupState', + default: null, + dangerouslyAllowMutability: true, +}) + export const contextPopupPositionState = atom({ key: 'contextPopupPositionState', default: {