Compare commits

...

2 commits

Author SHA1 Message Date
f1eda2da75
feat: handle setting of default context menu state variable only in app.vue
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
ci/woodpecker/pr/build-and-publish Pipeline was successful
2025-08-11 00:04:18 +02:00
ce57b8e7db
feat: remove global context menu event listener and handler to allow regular context menu where a custom one isn't needed 2025-08-11 00:03:47 +02:00
4 changed files with 4 additions and 21 deletions

15
app.vue
View file

@ -12,16 +12,11 @@ import type { ContextMenuInterface } from './types/interfaces';
const banner = useState("banner", () => false);
const contextMenu = useState<ContextMenuInterface>("contextMenu");
const contextMenu = useState<ContextMenuInterface>("contextMenu", () => ({ show: false, pointerX: 0, pointerY: 0, items: [] }));
onMounted(() => {
loadPreferredThemes()
document.removeEventListener("contextmenu", contextMenuHandler);
document.addEventListener("contextmenu", (e) => {
if (e.target instanceof Element && e.target.classList.contains("default-contextmenu")) return;
contextMenuHandler(e);
});
document.addEventListener("mousedown", (e) => {
if (e.target instanceof HTMLElement && e.target.classList.contains("context-menu-item")) return;
console.log("click");
@ -55,14 +50,6 @@ onMounted(() => {
});
});
function contextMenuHandler(e: MouseEvent) {
e.preventDefault();
//console.log("Opened context menu");
//createContextMenu(e, [
// { name: "Wah", callback: () => { return } }
//]);
}
</script>
<style>

View file

@ -15,7 +15,7 @@ import type { ContextMenuInterface, GuildMemberResponse } from '~/types/interfac
const { getDisplayName } = useProfile()
const contextMenu = useState<ContextMenuInterface>("contextMenu", () => ({ show: false, pointerX: 0, pointerY: 0, items: [] }));
const contextMenu = useState<ContextMenuInterface>("contextMenu");
const props = defineProps<{
member: GuildMemberResponse

View file

@ -76,7 +76,7 @@ const route = useRoute();
const props = defineProps<MessageProps>();
const contextMenu = useState<ContextMenuInterface>("contextMenu", () => ({ show: false, pointerX: 0, pointerY: 0, items: [] }));
const contextMenu = useState<ContextMenuInterface>("contextMenu");
const messageElement = ref<HTMLDivElement>();

View file

@ -1,5 +1,5 @@
<template>
<div ref="resizableSidebar" class="resizable-sidebar"
<div ref="resizableSidebar" class="resizable-sidebar" @contextmenu="showContextMenu($event, contextMenu, menuItems)"
:style="{
'width': storedWidth ? storedWidth : props.width,
'min-width': props.minWidth,
@ -49,10 +49,6 @@ onMounted(() => {
if (resizableSidebar.value && widthResizer.value) {
widthResizer.value.addEventListener("pointerdown", (e) => {
e.preventDefault();
if (e.button == 2) {
showContextMenu(e, contextMenu.value, menuItems);
return
};
document.body.style.cursor = "ew-resize";
function handleMove(pointer: PointerEvent) {
if (resizableSidebar.value) {