react-admin icon indicating copy to clipboard operation
react-admin copied to clipboard

Feature Request: Support Routers other than react-router

Open MohammedFaragallah opened this issue 7 months ago • 3 comments

Is your feature request related to a problem? Please describe. I’ve been using React-Admin since its early days, including the enterprise version for over three years, and have successfully integrated it with React Native for over a year. However, React-Admin’s tight coupling with react-router is a huge limitation — specifically, react-router-native is now deprecated, and I’m locked into an outdated version just to keep things working. This makes long-term maintenance and upgrades difficult.

Describe the solution you'd like I’d like the router to be moved to a customizable context, similar to how data and auth providers are handled. This would decouple routing from a specific library and make it possible to use React-Admin with any routing solution, including custom ones tailored for native or other platforms.

Describe alternatives you've considered Currently, I’m using react-router-native as a workaround, but it’s deprecated and not officially supported by either React-Admin or React Router. There’s no long-term path forward with this approach.

Additional context Allowing routing to be handled via a routing context would greatly expand the flexibility of React-Admin. It would allow projects to integrate seamlessly with alternative routing systems, adapt to React Native and other environments, and reduce the tight coupling with a single router implementation.

MohammedFaragallah avatar May 14 '25 09:05 MohammedFaragallah

This is more complex than adding a context as React-admin actually declares routes. The way to do it differs greatly in react-router and tanstack-router for example. I'd love to have that but it's a really complex problem. Besides, there's no way to do it without breaking changes.

Regarding react-native, you can probably use the memory router instead of react-router-native

djhi avatar May 14 '25 12:05 djhi

This is more complex than adding a context as React-admin actually declares routes. The way to do it differs greatly in react-router and tanstack-router for example. I'd love to have that but it's a really complex problem. Besides, there's no way to do it without breaking changes.

Regarding react-native, you can probably use the memory router instead of react-router-native

I completely understand that this would be a massive and complex update. However, I also believe it would be worthwhile to open react-admin to new routers would take it beyond admin panels. The context-based solution has already been implemented and tested successfully across multiple libraries and frameworks—for example, in refine.

MohammedFaragallah avatar May 14 '25 13:05 MohammedFaragallah

I can try to work on a proof of concept if you're interested.

Let me know what you think

MohammedFaragallah avatar May 14 '25 13:05 MohammedFaragallah