feat: Add React 16/17 and React 19 hybrid compatibility#125
Merged
sbender9 merged 1 commit intocanboat:mainfrom Jan 23, 2026
Merged
feat: Add React 16/17 and React 19 hybrid compatibility#125sbender9 merged 1 commit intocanboat:mainfrom
sbender9 merged 1 commit intocanboat:mainfrom
Conversation
Configure classic JSX runtime for backward compatibility with React 16/17
while maintaining support for React 19 servers.
Changes:
- tsconfig.json: Set jsx to 'react' for classic runtime
- webpack.config.js: Add { runtime: 'classic' } to babel preset-react
- AppPanel.tsx: Add credentials: 'include' to loginStatus fetch for
proper authentication in embedded plugin context
The classic JSX runtime uses React.createElement() instead of the
automatic jsx()/jsxs() functions, ensuring compatibility across all
supported React versions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes
jsxto'react'for classic runtime{ runtime: 'classic' }to babel preset-reactcredentials: 'include'to loginStatus fetchWhy
This PR prepares the visual-analyzer plugin for SignalK servers running React 19, while maintaining full compatibility with existing React 16/17 servers.
The classic JSX runtime uses
React.createElement()instead of the automaticjsx()/jsxs()functions, ensuring the plugin works across all supported React versions.Dependencies
This change is needed when SignalK/signalk-server#2267 is merged, which upgrades the server to React 19.
Testing