Skip to main content
Glama

Convex MCP server

Official
by get-convex
useContextMenuTrigger.ts1.41 kB
import { RefObject, useEffect, useRef } from "react"; // Based on https://codesandbox.io/s/trusting-rui-2duieo export function useContextMenuTrigger( triggerRef: RefObject<HTMLElement>, onOpenContextMenu: (position: { x: number; y: number }) => void, onCloseContextMenu: () => void, ) { // When right-clicking for a long time, the context menu will disappear // when the right mouse button is released. const allowMouseUpCloseRef = useRef(false); useEffect(() => { if (!triggerRef || !triggerRef.current) return undefined; const trigger = triggerRef.current; let timeout: number; function onContextMenu(e: MouseEvent) { e.preventDefault(); onOpenContextMenu({ x: e.clientX, y: e.clientY, }); clearTimeout(timeout); allowMouseUpCloseRef.current = false; timeout = window.setTimeout(() => { allowMouseUpCloseRef.current = true; }, 300); } function onMouseUp() { if (allowMouseUpCloseRef.current) { onCloseContextMenu(); } } trigger.addEventListener("contextmenu", onContextMenu); trigger.addEventListener("mouseup", onMouseUp); return () => { trigger.removeEventListener("contextmenu", onContextMenu); trigger.removeEventListener("mouseup", onMouseUp); clearTimeout(timeout); }; }, [triggerRef, onOpenContextMenu, onCloseContextMenu]); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/get-convex/convex-backend'

If you have feedback or need assistance with the MCP directory API, please join our Discord server