FILEUP



LOG | FILES | OVERVIEW


import { mk } from './util';

// Some elements have custom right click context menus
// If there's a custom context menu active, this will be it
var context_menu = null;

// Create a right click context menu
export function context(e, entries) {
    if (context_menu)
        context_menu.remove();

    context_menu = mk(document.body, 'ul', 'context');

    context_menu.onmousedown = (e) => {
        e.stopPropagation();
    }
    
    context_menu.onclick = (_e) => {
        context_menu.remove();
        context_menu = null;
    }


    context_menu.style.left = e.clientX + "px";
    context_menu.style.top  = e.clientY + "px";

    for (const e of entries) {
        const li = document.createElement('li');
        li.innerText = e[0];
        li.onclick = e[1];
        context_menu.appendChild(li);
    }
}

// When we click anywhere, remove the context menu
// The context menu itself has a onmousedown that prevents propagation so we can click its elements
document.body.onmousedown = (_e) => {
    if (context_menu) {
        context_menu.remove();
        context_menu = null;
    }
}



export function oncontextmenu_hook(_e) {
    if (context_menu) {
        context_menu.remove();
        context_menu = null;
    }
}