Close Docs

ContextMenu (<disco-context-menu>)

Programmatic context menu for list items and arbitrary targets.

Usage

import { DiscoContextMenu } from 'discoui';

listView.addEventListener('itemselect', async (event) => {
  const target = event.detail?.element;
  if (!(target instanceof HTMLElement)) return;

  const result = await DiscoContextMenu.openFor(target, [
    { id: 'pin', label: 'add to start' },
    { id: 'uninstall', label: 'uninstall', danger: true }
  ]);

  if (result === 'pin') {
    // pin item
  }
  if (result === 'uninstall') {
    // uninstall item
  }
});

Long-press / right-click binding

const unbind = DiscoContextMenu.bind(
  itemElement,
  () => [
    { id: 'open', label: 'open' },
    { id: 'remove', label: 'remove', danger: true }
  ],
  { trigger: 'both', longPressMs: 460 }
);

// later
unbind();

API

Notes