JedWatson / JedWatson/react-select

For multi-select options on iOS, while trying quickly select several options causes the delay

Open
#5,783 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

issue/bug-unconfirmed
Dominant language
TypeScript
Stars
28k
Forks
4.1k
PR merge metrics
No merged PRs in 30d

Description

For multi-select options on iOS, while trying quickly select several options without closing dropdown menu, what causes the delay.
Therefore some options get deselected or selected randomly.

Code:
https://codesandbox.io/s/react-select-v5-sandbox-forked-m55cdn?file=/MultiSelect.tsx

Incorrect behavior occurs on iOS (version 16.6.1) in Safari and Chrome browsers.
There is no problem on Android.

Steps to reproduce:

  1. Open multiselect
  2. Quickly select multiple options.
  3. Make sure that some previously selected options have been reset.

Approaches have been taken:

  • updated react-select to the latest version (5.7.7)
  • switched various react-select API parameters
  • tried to handle onTouchStart events for the custom Option component
  • tried to customise isOptionSelected from react-select
  • setTimeOut, debounce, throttle

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 with the linked CodeSandbox and its MultiSelect.tsx reproduction, testing rapid multi-selection on iOS 16.6.1 in Safari and Chrome. Trace the touch and selection handling while the dropdown remains open; done means previously selected options remain selected during rapid interaction on iOS without breaking Android behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
react, typescript
Domain
frontend, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.