Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix remote debugger detection in bridgeless mode #2864

Merged
merged 2 commits into from
Apr 15, 2024

Conversation

piaskowyk
Copy link
Member

Description

This pull request fixes the issue with checking if the remote debugger is enabled for applications in bridgeless mode. Without this additional check, it incorrectly indicates that the remote debugger is enabled even on native devices. As a result, the gesture handler doesn't register event handlers in Reanimated, causing all callback events to be executed on the JS thread instead of the UI thread.

Same code we have had in Reanimated already: https://github.com/software-mansion/react-native-reanimated/blob/3.9.0-rc.0/src/reanimated2/PlatformChecker.ts#L17

before after
Screen.Recording.2024-04-15.at.13.48.05.mov
Screen.Recording.2024-04-15.at.13.48.31.mov

Test plan

code
import Animated, {
  useAnimatedStyle,
  useSharedValue,
  withSpring,
} from 'react-native-reanimated';
import {
  Gesture,
  GestureDetector,
  GestureHandlerRootView,
  GestureStateManager,
  GestureTouchEvent,
  GestureUpdateEvent,
  PanGestureChangeEventPayload,
} from 'react-native-gesture-handler';

import React from 'react';
import { StyleSheet } from 'react-native';

function Ball() {
  const isPressed = useSharedValue(false);
  const offset = useSharedValue({ x: 0, y: 0 });

  const animatedStyles = useAnimatedStyle(() => {
    return {
      transform: [
        { translateX: offset.value.x },
        { translateY: offset.value.y },
        { scale: withSpring(isPressed.value ? 1.2 : 1) },
      ],
      backgroundColor: isPressed.value ? 'blue' : 'navy',
    };
  });

  const gesture = Gesture.Pan()
    .onBegin(() => {
      'worklet';
      console.log('onBegin', _WORKLET, Date.now());
      isPressed.value = true;
    })
    .onChange((e: GestureUpdateEvent<PanGestureChangeEventPayload>) => {
      'worklet';
      console.log('onBegin', _WORKLET, Date.now());
      offset.value = {
        x: e.changeX + offset.value.x,
        y: e.changeY + offset.value.y,
      };
    })
    .onFinalize(() => {
      'worklet';
      console.log('onBegin', _WORKLET, Date.now());
      isPressed.value = false;
    });

  return (
    <GestureDetector gesture={gesture}>
      <Animated.View style={[styles.ball, animatedStyles]} />
    </GestureDetector>
  );
}

export default function GestureHandlerExample() {
  return (
    <GestureHandlerRootView style={styles.container}>
      <Ball />
    </GestureHandlerRootView>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
  ball: {
    width: 100,
    height: 100,
    borderRadius: 100,
    backgroundColor: 'blue',
    alignSelf: 'center',
  },
});

@piaskowyk piaskowyk changed the title @piaskowyk/fix chrome debugger detection Fix remote debugger detection in bridgeless mode Apr 15, 2024
@piaskowyk piaskowyk requested review from j-piasecki and tjzel April 15, 2024 11:52
Copy link
Contributor

@tjzel tjzel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge this bad boy

@piaskowyk piaskowyk merged commit 2770cc9 into main Apr 15, 2024
1 check passed
@piaskowyk piaskowyk deleted the @piaskowyk/fix-chrome-debugger-detection branch April 15, 2024 12:20
github-merge-queue bot pushed a commit to software-mansion/react-native-reanimated that referenced this pull request May 11, 2024
## Summary

We need to update `react-native-gesture-handler` to the latest version
because contains some necessary fixes for Reaniamted:
-
software-mansion/react-native-gesture-handler#2864
-
software-mansion/react-native-gesture-handler#2881
github-merge-queue bot referenced this pull request in valora-inc/wallet Jun 6, 2024
…5520)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[react-native-gesture-handler](https://togithub.com/software-mansion/react-native-gesture-handler)
| [`^2.16.0` ->
`^2.16.2`](https://renovatebot.com/diffs/npm/react-native-gesture-handler/2.16.0/2.16.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-gesture-handler/2.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-gesture-handler/2.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-gesture-handler/2.16.0/2.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-gesture-handler/2.16.0/2.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>software-mansion/react-native-gesture-handler
(react-native-gesture-handler)</summary>

###
[`v2.16.2`](https://togithub.com/software-mansion/react-native-gesture-handler/releases/tag/2.16.2)

[Compare
Source](https://togithub.com/software-mansion/react-native-gesture-handler/compare/2.16.1...2.16.2)

##### 🐛 Bug fixes

- Revert "Change `.web` files to default and add `.native`
([#&#8203;2835](https://togithub.com/software-mansion/react-native-gesture-handler/issues/2835))"
by [@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2896](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2896)

##### 🔢 Miscellaneous

- Add examples to Gestures section in docs by
[@&#8203;xnameTM](https://togithub.com/xnameTM) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2876](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2876)
- Fix missing styles in gestures' InteractiveExamples by
[@&#8203;patrycjakalinska](https://togithub.com/patrycjakalinska) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2897](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2897)

**Full Changelog**:
software-mansion/react-native-gesture-handler@2.16.1...2.16.2

###
[`v2.16.1`](https://togithub.com/software-mansion/react-native-gesture-handler/releases/tag/2.16.1)

[Compare
Source](https://togithub.com/software-mansion/react-native-gesture-handler/compare/2.16.0...2.16.1)

#### 🐛 Bug fixes

- Fix remote debugger detection in bridgeless mode by
[@&#8203;piaskowyk](https://togithub.com/piaskowyk) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2864](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2864)
- Fix `manualActivation` on web by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2869](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2869)
- Fix old Gesture Handler API integration with Reaniamted by
[@&#8203;piaskowyk](https://togithub.com/piaskowyk) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2881](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2881)
- \[Web] Fix incorrect `startX` and `startY` values in `Pan` by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2871](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2871)
- \[Web] Add `minVelocity` to `Pan` custom activation criteria by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2884](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2884)

#### 👍 Improvements

- Add `TypeDoc` to new API by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2874](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2874)

#### 🔢 Miscellaneous

- Bump Gesture Handler version in documentation by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2838](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2838)
- Change `.web` files to default and add `.native` by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2835](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2835)
- Bump `typescript` version in example by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2848](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2848)
- Disable flipper on CI by [@&#8203;m-bert](https://togithub.com/m-bert)
in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2843](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2843)
- Update supported RN versions by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2849](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2849)
- Add state flow charts to Gesture Handler's documentation. by
[@&#8203;latekvo](https://togithub.com/latekvo) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2817](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2817)
- Fix `cancell` typo by [@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2854](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2854)
- Minor TS changes by [@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2872](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2872)
- Add automatic og:image generation to docs by
[@&#8203;xnameTM](https://togithub.com/xnameTM) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2851](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2851)
- Fix typo in og:image generation by
[@&#8203;kacperkapusciak](https://togithub.com/kacperkapusciak) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2880](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2880)
- Bump React Native in FabricExample to 0.74 by
[@&#8203;m-bert](https://togithub.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2877](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2877)
- Update yarn setup in the repository by
[@&#8203;j-piasecki](https://togithub.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2882](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2882)
- Release 2.16.1 by
[@&#8203;j-piasecki](https://togithub.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2883](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2883)

#### New Contributors

- [@&#8203;xnameTM](https://togithub.com/xnameTM) made their first
contribution in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2851](https://togithub.com/software-mansion/react-native-gesture-handler/pull/2851)

**Full Changelog**:
software-mansion/react-native-gesture-handler@2.16.0...2.16.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone
America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone
America/Los_Angeles.

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/valora-inc/wallet).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJucG0iLCJyZW5vdmF0ZSJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: valora-bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants