expo icon indicating copy to clipboard operation
expo copied to clipboard

App reloads when pressing "R" on Physical iPad Keyboard

Open reececox opened this issue 3 years ago • 10 comments

Summary

When using a dev client, pressing the R key on a physical keyboard connected to an iPad reloads the application. This happens even when the focus is on a text field. I haven't found a way to disable this.

We use iPad keyboards a lot for development as it improves the experience but it's difficult to code and test the app when typing is involved as pressing the "R" key causes the application to reload.

Moving the reload to Cmd + R would resolve this issue – this would also match the dev menu Cmd + D.

Thanks. Reece

Managed or bare workflow?

managed

What platform(s) does this occur on?

iOS

Package versions

expo: 47.0.0 expo-dev-client: 2.0.1

Environment

  expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 12.3.1
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 16.13.1 - /usr/local/bin/node
      Yarn: 1.22.19 - /opt/homebrew/bin/yarn
      npm: 8.15.1 - /usr/local/bin/npm
      Watchman: 2022.08.15.00 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.11.3 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
    IDEs:
      Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
    npmPackages:
      @expo/webpack-config: ^0.17.2 => 0.17.3 
      babel-preset-expo: ~9.2.1 => 9.2.2 
      expo: ^47.0.0 => 47.0.8 
      react: 18.1.0 => 18.1.0 
      react-dom: 18.1.0 => 18.1.0 
      react-native: 0.70.5 => 0.70.5 
      react-native-web: ~0.18.7 => 0.18.10 
    Expo Workflow: managed

Reproducible demo

  • Build and open a dev-client on an iPad that has a physical keyboard connected
  • Press "R" on the keyboard
  • The dev-client reloads
  • Open an application in the dev-client
  • Press "R" on the keyboard
  • The application in the dev-client reloads

This happens everywhere in the dev client. Pressing R on the main dev client interface reloads the dev client. Pressing R after you've loaded an application reloads the application

Stacktrace (if a crash is involved)

No response

reececox avatar Nov 27 '22 16:11 reececox

Thank you for filing this issue! This comment acknowledges we believe this may be a bug and there’s enough information to investigate it. However, we can’t promise any sort of timeline for resolution. We prioritize issues based on severity, breadth of impact, and alignment with our roadmap. If you’d like to help move it more quickly, you can continue to investigate it more deeply and/or you can open a pull request that fixes the cause.

expo-bot avatar Nov 29 '22 00:11 expo-bot

Have been running into this issue on iPhone as well for the past 2 weeks -- never used to happen prior. Pressing R always reloads it, making it very difficult to test and text field inputs.

ateethk avatar Nov 29 '22 21:11 ateethk

I'm seeing this issue in the iOS Sim, expo-dev-client (1.3.1), while typing "R" into an input box with desktop keyboard

mricho avatar Nov 29 '22 23:11 mricho

I am also seeing this issue

johngarcia9110 avatar Dec 01 '22 19:12 johngarcia9110

same problem with "expo": "^47.0.6" and "expo-dev-client": "~2.0.1".

amin79 avatar Dec 02 '22 09:12 amin79

Likely culprit: https://github.com/expo/expo/pull/14590 See also https://github.com/expo/expo/pull/14202

Possibly fixed in 2.0.2: https://github.com/expo/expo/pull/20107

pwfcurry avatar Dec 08 '22 09:12 pwfcurry

Might also be fixed in https://github.com/expo/expo/pull/20209

demianscv avatar Dec 12 '22 22:12 demianscv

tracked in https://github.com/expo/expo/issues/19911 which is marked closed, but I am replicating it in Expo 46 & Xcode 14.2

lucksp avatar Mar 30 '23 04:03 lucksp

this is not fixed with XCode 14.3 either

lucksp avatar Apr 05 '23 14:04 lucksp

Still broken running Expo 48 on simulated iPhone 14 iOS 16.4. Wildly irritating. Why couldn't the cmd-r have been swapped for a cmd-shift-r or a ctrl-r instead or just r?

Lil hack for anyone running into this problem. If you are typing words with r in them, just roll the previous letter into the r, aka make sure you hold down the letter in front of the r until you've pressed the r. If there is no 'all-keys-up' gap between the letter just typed and the r, it doesn't trigger.

Eg. to type the word 'try', type <t-down> <r-down> <t-up> <r-up> <y-down> <y-up>, or <t-down> <r-down> <r-up> <t-up> <y-down> <y-up>

Note that for whatever reason, holding down the letter two-before the r will not work. Ie. typing 'oar' like this causes a reload: <o-down> <a-down> <a-up> <r-down> <o-up> <r-up>

finnmerlett avatar Jul 04 '23 01:07 finnmerlett