Components: Add context-menu opening and point anchors for Menu

Ouverte
#4,383 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
32/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
react-native, typescript
Domaine
frontend, mobile

Piste de recherche

Start by reviewing the Menu contract and the referenced Callout type files: packages/agentic/native-core/src/components/callout/Callout.types.ts and packages/agentic/native-core/src/legacy/callout/Callout.types.ts. Then qualify context-menu input and point anchoring across the listed macOS and Windows endpoints, coordinating coordinate behavior with #4375. Done means the contract, supported paths, public API decision, endpoint coverage, and per-endpoint wdio results meet the acceptance criteria.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Goal

Add context-menu presentation to the agentic Menu: opening a Menu from a secondary click or a keyboard context-menu invocation, anchored at the invocation point or element. This scope was deferred from the first Menu delivery by owner decision on 2026-10-16. Part of #4274. Trigger-anchored Menu, MenuButton, and Popover delivery remain #4232, #4231, and #4236; do not duplicate them.

Observed baseline — 2026-10-16

  • The modern native-core Callout (/macos and /windows previews) already accepts view, owner-relative rect, and owner-relative point anchors (packages/agentic/native-core/src/components/callout/Callout.types.ts). No agentic component exposes point anchoring, and no component detects secondary-click or context-menu-key input.
  • The legacy Win32 Callout accepts an anchorRect in DIPs relative to the React surface origin (packages/agentic/native-core/src/legacy/callout/Callout.types.ts). Point anchoring on the prebuilt Office host is unverified.
  • The first Menu delivery (#4232) anchors to its trigger view only.

Acceptance

  • Review a Menu contract amendment covering context-menu opening sources (secondary click, the platform context-menu key or shortcut, and assistive-technology show-menu actions), point versus element anchoring, placement with flip and clamping around a point, entry focus, focus return to the invoking element, and dismissal.
  • Qualify secondary-click and context-menu-key delivery on macOS Paper and Fabric, Windows Fabric, and Win32. Record unsupported paths explicitly; do not emulate secondary input with primary presses.
  • Expose point anchoring through the public Menu API (and Popover, if approved) only after native point anchoring is qualified on every platform, including Win32, with RTL, display scaling, multiple monitors, and scrolled anchors (coordinate with #4375).
  • Ship on all desktop endpoints together (macOS Paper and Fabric, Windows Fabric, Win32), matching the platform policy for the Menu family.
  • Add stories with top-level wdio cases and record per-endpoint executed, passed, failed, and skipped counts; skips are not passes.

Evidence

  • Deferred during Popover, Menu, MenuButton, and Dropdown implementation planning against main e2092f9df3fd4fafc141c696ca0e49e690d69cd1.
  • The pinned Flex Menu guidance includes context-menu opening; the #4232 contract should record it as deferred scope linked here rather than as an unsupported promise.
Langage dominant
TypeScript
Étoiles
1.4k
Forks
179
Merge moyen
1 j 10 h
PR mergées (30 j)
50

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de microsoft/fluentui-react-native

Toutes les issues de microsoft/fluentui-react-native

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.