Announcing Exciting Updates to Shiny-React Ecosystem
We're thrilled to announce a significant update to our ecosystem of R packages designed to bring the power of React libraries to Shiny. These updates span across our core package, shiny.react, and its companions, shiny.fluent and shiny.blueprint.
The update ensures that their users have access to the latest version of React and the newest versions of the corresponding React libraries. Alongside the React upgrade comes the upgrade of all their JavaScript dependencies, bringing bug fixes and patches to security vulnerabilities. Read on for all the exciting details!
Learn how to create stunning, feature-rich dashboards using the shiny.fluent package. Follow our tutorial and unlock the full potential of Shiny.
What is shiny.react?
shiny.react is a package that allows you to get access to any React library and use it in your Shiny app.
To expose a component from a React library just add the HTML dependency and use shiny.react::reactElement. Use the component as-is or wrap it in the InputAdapter or ButtonAdapter to easily bind and send its values to the Shiny server. You can use components as standalone functions or wrap them in a R package to easily reuse them across many apps.
Check out the full tutorial on how to port a React library with shiny.react.
shiny.react 0.4.0: Embracing React 18.3.1
The latest release of shiny.react marks a major milestone with the upgrade to React 18.3.1. It allows libraries built with shiny.react to leverage the latest, optimized React API.
Key Changes:
- Deprecated API replacement: React 18 deprecates the ReactDOM.render and ReactDOM.unmountComponentAtNode APIs. In their place, ReactDOM.createRoot is now used, following the React 19 migration guide, making the future upgrade to React 19 simpler.
- Rendering mechanism update: The rendering mechanism for React components has been revamped. With ReactDOM.createRoot, it's impossible to call it on a container more than once, unlike ReactDOM.render. To address this, we now use a data-react-id attribute to locate and render React roots, instead of iterating over all nodes with the .react-data class. This ensures more efficient rendering.
shiny.blueprint: Upgrading to @blueprintjs/core 5.10.2
We're also excited to announce that shiny.blueprint, which brings Blueprint UI components to Shiny, has been upgraded to use version 5.10.2. This update ensures that you can leverage the latest version of Blueprint components in your Shiny applications. This version no longer supports IE11. It uses a newer version of popper.js library which means better positioning of elements and a simpler DOM.
shiny.fluent: Moving to @fluentui/react 8.118.2
Lastly, shiny.fluent, which implements Microsoft Fluent UI components, has been upgraded to version 8.118.2. This version includes several changes in the styling and accessibility of its components.
shiny.react + rhino
Rhino supports you in creating your own React components seamlessly from within the project.
The new version of shiny.react allows you to leverage all latest React API additions, like the new Transitions API, to build React stunning components with ease.
Check out the full tutorial on how to create React components in rhino.
Summing Up Updates to Appsilon’s Shiny-React Ecosystem
We encourage you to explore the new features and enhancements in shiny.react 0.4.0, shiny.blueprint, and shiny.fluent. As always, your feedback is invaluable to us, and we look forward to hearing about the innovative ways you use these tools in your projects.
Are you interested in staying up to date on the latest in Shiny innovations? Join our community of 4.2k explorers and receive the Shiny Weekly Newsletter straight to your inbox.