Skip to content

Conversation

@dirkwa
Copy link
Contributor

@dirkwa dirkwa commented Jan 17, 2026

Summary

  • Configure classic JSX runtime for backward compatibility with React 16/17 servers
  • Replace Reactstrap components with plain Bootstrap 5 CSS classes
  • Fix authentication in embedded plugin context

Changes

  • tsconfig.json: Set jsx to 'react' for classic runtime
  • webpack.config.js: Add { runtime: 'classic' } to babel preset-react
  • package.json: Remove reactstrap dependency, keep Bootstrap 5
  • AppPanel.tsx: Add credentials: 'include' to loginStatus fetch
  • All component files: Replace Reactstrap components with Bootstrap CSS equivalents

Why

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 automatic jsx()/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

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.
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