react-everywhere / re-start

react-native template to target multiple platforms :globe_with_meridians: :iphone: :computer: with single codebase.
https://medium.com/@amoghbanta/write-once-use-everywhere-with-react-native-d6e575efe58e#.nfl50gwfg
MIT License
1.3k stars 85 forks source link

Specific development only for electron platform like web/android/ios #79

Open alexis-regnaud opened 5 years ago

alexis-regnaud commented 5 years ago

Is there a way to do a specific development only for electron device ? Use file.electron.js and the object Platform.select({electron: .... }), same to .ios / .android / .web

Thansk in advance !

piranna commented 5 years ago

Electron platform is just web platform displayed inside Electron, so the platform is web. Why do you want to have a specific electron platform? Can't you be able to detect it as if it were another web browser? Maybe with presence of some Electron-only APIs?

alexis-regnaud commented 5 years ago

Thank for your answer, just to know if it was possible to do that (with same logical that .web, .android, .ios => .electron) Specifically I had a problem with the navigation because I use "react-navigation" to mobile case and "react-router-dom" to web and electron cases. Except that web need BrowserRouter and electron need HashRouter, but I solve my problem with a conditional test with the help of "is-electron" lib.

piranna commented 5 years ago

Thank for your answer, just to know if it was possible to do that (with same logical that .web, .android, .ios => .electron)

Technically it's possible, but I don't know how to register the .electron prefix to use it when generating for Electron platform, and more specially if it's just web platform packaged inside Electron.

Specifically I had a problem with the navigation because I use "react-navigation" to mobile case and "react-router-dom" to web and electron cases.

Why don't you use react-router-native for mobile? The re-start_router template has already an example how to unify both APIs...

Except that web need BrowserRouter and electron need HashRouter, but I solve my problem with a conditional test with the help of "is-electron" lib.

Is that true? I didn't have any problem with default BrowserRouter in Electron...

alexis-regnaud commented 5 years ago

Why don't you use react-router-native for mobile? The re-start_router template has already an example how to unify both APIs...

Because I think that "react-navigation" have a better approach to mobile UI (Native design according to platform, respect of safe area, ...). "react-router-native" work but have a web approach.

Is that true? I didn't have any problem with default BrowserRouter in Electron...

If I use BrowserRouter only, in the Electron view I see the navbar but there is no action when I click on link (Router content doesn't change). And with BrowserRouter in web and HashRouter in Electron, it works..

piranna commented 5 years ago

If I use BrowserRouter only, in the Electron view I see the navbar but there is no action when I click on link (Router content doesn't change).

Does it shows the navbar? It shouldn't... anyway, you should not touch the navbar at all...

alexis-regnaud commented 5 years ago

Yes there is the navbar but whatever the url (ex /first-page, /second-page, /third-page ,...), it's always the first screen define wich is display in the router content. Here there is the same problem with the solution that I used : how-to-use-react-router-with-electron