From b51efc01e9db38127303971cc127dd5ffd80fc47 Mon Sep 17 00:00:00 2001 From: SauceyRed Date: Thu, 10 Jul 2025 23:57:25 +0200 Subject: [PATCH] feat: add utils to create and remove the context menu --- utils/createContextMenu.ts | 17 +++++++++++++++++ utils/removeContextMenu.ts | 6 ++++++ 2 files changed, 23 insertions(+) create mode 100644 utils/createContextMenu.ts create mode 100644 utils/removeContextMenu.ts diff --git a/utils/createContextMenu.ts b/utils/createContextMenu.ts new file mode 100644 index 0000000..f3c4aab --- /dev/null +++ b/utils/createContextMenu.ts @@ -0,0 +1,17 @@ +import { render } from "vue"; +import ContextMenu from "~/components/ContextMenu.vue"; +import type { ContextMenuItem } from "~/types/interfaces"; + +export default (e: MouseEvent, menuItems: ContextMenuItem[]) => { + console.log("Rendering new context menu"); + const menuContainer = document.createElement("div"); + menuContainer.id = "context-menu"; + document.body.appendChild(menuContainer); + const contextMenu = h(ContextMenu, { + menuItems, + cursorX: e.clientX, + cursorY: e.clientY + }); + render(contextMenu, menuContainer); + console.log("Rendered"); +} diff --git a/utils/removeContextMenu.ts b/utils/removeContextMenu.ts new file mode 100644 index 0000000..3b42c8b --- /dev/null +++ b/utils/removeContextMenu.ts @@ -0,0 +1,6 @@ +export default () => { + const contextMenu = document.getElementById("context-menu"); + if (contextMenu) { + contextMenu.remove(); + } +}