microsoft / microsoft/react-native-windows

Add isComposing to onKeyDown/onKeyUp

Open
#5,821 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement help wanted Needs: Dev Design Partner: Facebook Workstream: Component Parity
Dominant language
C++
Stars
17.3k
Forks
1.2k
Avg merge
1d 13h
Merged PRs (30d)
33

Description

See comment for context. Copying from necolas's comment:

The event has an isComposing property set to true in that case. However, it's a bit more complicated (and inconsistent across browsers) than that and there has been discussion about what the timing of the composition events (compositionstart, compositionend [ref]) and when the isComposing property should be true. So in practice, on the web you also have to check whether the keyCode is a magic number 229 which indicates IME composition.

The work I'm doing on interactions will probably add onCompositionStart/End events and prevent all IME events from triggering onKeyDown and onKeyUp events, as the vast majority of developers aren't aware of IME and end up breaking things by acting on key events like Enter that are actually occurring during composition.

Some IME-related discussion here: necolas/react-native-web#1538 (comment)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the onKeyDown and onKeyUp event handling and the linked pull request 5590 discussion for the intended IME behavior. Check the referenced react-native-web discussion for context, then verify that these events expose isComposing during composition; the issue names no files or tests to run.

Written by the indexing model from the issue text.

Assessment

Tech stack
react-native
Domain
desktop
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.