Skip to content

@jsvision/ui / findDuplicateAccelerators

Function: findDuplicateAccelerators()

findDuplicateAccelerators(chars): DuplicateAccelerator[]

Defined in: ui/src/menu/accelerators.ts:36

Find every accelerator character claimed by more than one entry, case-insensitively. Pure — no view or reactive dependency, so it is directly unit-testable.

Pass one accelerator char (or '') per scope entry, in scope order: ''/absent entries (menu separators, items with no ~X~) are ignored and never grouped. Each returned group lists the claiming indices in order; only chars claimed twice or more appear, in first-appearance order.

Parameters

chars

readonly string[]

One accelerator char (lowercase or any case) or '' per scope entry, in scope order.

Returns

DuplicateAccelerator[]

The collisions, one group per over-claimed char; [] when every char is unique.

Example

ts
import { findDuplicateAccelerators } from '@jsvision/ui';

findDuplicateAccelerators(['f', 'e', 'o']);      // [] — all distinct
findDuplicateAccelerators(['x', '', 'X']);       // [{ char: 'x', indices: [0, 2] }]