Skip to content

Add implementation of Radon IDE proxy client for webui #2

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

Open
wants to merge 2 commits into
base: @maciekstosio/Create-abstraction-for-proxy-client
Choose a base branch
from

Conversation

maciekstosio
Copy link
Collaborator

Add implementation of Radon IDE proxy client for webui.

maciekstosio added a commit to software-mansion/radon-ide that referenced this pull request Feb 7, 2025
This PR adds first-party support for redux. I resued the enhancer part
and WebUI from
https://github.com/matt-oakes/redux-devtools-expo-dev-plugin - the code
seems to do everything we need with nicely separated communication,
except that the communication through the `expo/devtools` is hardcode. I
created a fork of it that's included as a submodule in our repo, but I'm
trying to upstream the changes with communication logic abstraction
(matt-oakes/redux-devtools-expo-dev-plugin#19)
so we can easily keep the fork up to date. The rest (communication
through vscode) can be found in
software-mansion-labs/redux-devtools-expo-dev-plugin#2).

To archive zero-config support, we utilize
`window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__`, where we pass compose
from `redux-devtools-expo-dev-plugin` with our communication injected.
Redux dev tools communicate with the extension through the dev tools,
and the extension passes messages through webview events to WebUI.

We need to have `redux-devtools-expo-dev-plugin` built to import through
a wrapper in app runtime. Similarly, the webui needs to be bundled, thus
I added `packages/vscode-extension/scripts/install-dev-plugins.sh`,
currently the product of it is committed, and it needs to be run
manually, but this is subjected to change.

### How Has This Been Tested: 

- Open `expo-52-prebuild-with-plugins`
- Comment out configuration related to expo dev plugins
```
const store = configureStore({
  reducer: rootReducer,
  // devTools: false,
  // enhancers: (getDefaultEnhancers) =>
  //   getDefaultEnhancers().concat(devToolsEnhancer()),
});
```
- Reload the app
- Confirm redux dev tools work
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.

1 participant