Skip to content

Fix RNRenderer import for React Native 0.86+#4160

Merged
m-bert merged 5 commits into
software-mansion:mainfrom
zoontek:fix/rn-renderer-proxy-import
May 11, 2026
Merged

Fix RNRenderer import for React Native 0.86+#4160
m-bert merged 5 commits into
software-mansion:mainfrom
zoontek:fix/rn-renderer-proxy-import

Conversation

@zoontek

@zoontek zoontek commented May 8, 2026

Copy link
Copy Markdown
Contributor

Description

React Native 0.86 removed Libraries/Renderer/shims/ReactNative, breaking the RNRenderer import. This PR switch to RendererProxy and fall back to the legacy shim for compatibility with RN < 0.86.

Copilot AI review requested due to automatic review settings May 8, 2026 13:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR restores compatibility with React Native 0.86+ by replacing the removed react-native/Libraries/Renderer/shims/ReactNative import with RendererProxy, while keeping a fallback to the legacy shim for older React Native versions.

Changes:

  • Replace the previous re-export with a runtime require that prefers react-native/Libraries/ReactNative/RendererProxy.
  • Add a try/catch fallback to the legacy react-native/Libraries/Renderer/shims/ReactNative shim for RN < 0.86.
  • Update linting approach from @ts-nocheck to targeted eslint disables and any.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/react-native-gesture-handler/src/RNRenderer.ts Outdated
Comment thread packages/react-native-gesture-handler/src/RNRenderer.ts Outdated
Comment thread packages/react-native-gesture-handler/src/RNRenderer.ts Outdated

@m-bert m-bert left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

HI @zoontek! Thank you for this PR!

I've checked that and it seems that it doesn't work 😞 I've also did this on standalone RN 0.86 app outside of our monorepo with the same result. Nesting second require in try/catch block fixes this problem.

What we've found out is that RNRenderer is used only in one place, to validate GestureDetector children. However, this is already covered earlier in the flow. So our conclusion is that it probably can be safely removed instead of changed.

Would you like to do this, or should we handle it? 😅

@zoontek

zoontek commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

@m-bert Done ✅

@m-bert m-bert left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thank you!

@m-bert m-bert merged commit 0417378 into software-mansion:main May 11, 2026
2 checks passed
This was referenced May 11, 2026
@zoontek zoontek deleted the fix/rn-renderer-proxy-import branch May 13, 2026 15:20
m-bert added a commit that referenced this pull request Jun 10, 2026
## Description

This PR brings support for React Native 0.86

## Required changes

-
#4160
- Module has not been registered as callable
([6c29e4e](6c29e4e))

## Status

- ## 0.86.0 ✅
- 0.86.0-rc.3 ✅
- 0.86.0-rc.2 ✅
- 0.86.0-rc.1 ✅
- 0.86.0-rc.0 ✅
 
## Test plan

Tested that `basic-example` builds and works correctly.
m-bert added a commit that referenced this pull request Jun 11, 2026
## Description

Cherry pick thread for release 2.32

## List of PRs

| PR  | Original commit |  Picked commit | Without confilct | 
|:----------:|:-------------:|:------:|:--------:|
| [[Android] Remove
`getChildInDrawingOrderAtIndex`](#4156)
|
[f1f09bc](f1f09bc)
|
[d76f2d9](d76f2d9)
| ❌ |
| [[iOS] Fix duplicated
`testID`](#4186)
|
[7feab6e](7feab6e)
|
[d1173ec](d1173ec)
| ❌ |
| [[Android] Fix discrete gestures not triggering
`onFinalize`](#4196)
|
[117087e](117087e)
|
[06212cf](06212cf)
| ✅ |
| [[Android] Fix wrong reported number of
pointers](#4218)
|
[f17bcbd](f17bcbd)
|
[5fd30f6](5fd30f6)
| ❌ |
| [fix(pods): Fix invalid `react-native/../react-native` resolution for
aliases](#4232)
|
[9a9f8b4](9a9f8b4)
|
[cacf6c0](cacf6c0)
| ✅ |
| [Move ruby utils to
module](#4245)
|
[62d0d52](62d0d52)
|
[3884f30](3884f30)
| ❌ |
| [[iOS] Fix handler retrieval and mismatched coordinate
space](#4199)
|
[b1da40b](b1da40b)
|
[2b48a8e](2b48a8e)
| ❌ |
| [[iOS] Don't iterate to root while resolving
recognizer](#4202)
|
[fba4dcc](fba4dcc)
|
[b81f2aa](b81f2aa)
| ❌ |
| [Support React Native
0.86](#4166)
|
[96dfc00](96dfc00)
|
[7df6d1a](7df6d1a)
| ❌ |
| [Fix `RNRenderer` import for React Native
0.86](#4160)
|
[0417378](0417378)
|
[6775d33](6775d33)
| ❌ |
| [Bump `expo` to stable
56](#4227)
|
[45e6ac8](45e6ac8)
|
[0478bb5](0478bb5)
| ❌ |
| [[macOS] Bump example
app](#3993)
|
[8ec0820](8ec0820)
|
[cfc5dd4](cfc5dd4)
| ❌ |
| [Bump
Reanimated](#4040)
|
[23d96d9](23d96d9)
|
[a2101eb](a2101eb)
| ❌ |
| [fix(Android): apply `numberOfPointers` config to the pointer
requirement in
`LongPressGestureHandler`](#4253)
|
[a70c6e3](a70c6e3)
|
[af40f9b](af40f9b)
| ✅ |

## Test plan

Tested that example apps are built correctly

---------

Co-authored-by: Pieter De Baets <pieter.debaets@gmail.com>
Co-authored-by: Mathieu Acthernoene <zoontek@gmail.com>
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Co-authored-by: Phil Pluckthun <phil@kitten.sh>
Co-authored-by: prashanFOMO <prashan@fomo.family>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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