Convert Angular plasmid directives to React components #15
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.
Convert Angular plasmid directives to React components
Summary
This PR converts the entire Angular plasmid visualization component library to modern React functional components with hooks. The conversion maintains 100% visual and functional compatibility while modernizing the codebase to use React 18+ patterns.
Key Changes:
plasmid
→Plasmid
,plasmidtrack
→PlasmidTrack
,trackmarker
→TrackMarker
,trackscale
→TrackScale
,tracklabel
→TrackLabel
,markerlabel
→MarkerLabel
SVGUtil
service to pure JavaScript utility functionsuseEffect
dependency managementVisual Verification:
![React pHS1 Example]()
The React version produces identical circular plasmid visualizations with proper colors, positioning, labels, scales, and interactive markers.
Review & Testing Checklist for Human
🔴 HIGH PRIORITY - This conversion involves complex mathematical calculations and component interactions:
examples/biojs/
to verify pixel-perfect renderingRecommended Test Plan:
npm start
in thereact-plasmid/
directoryDiagram
Notes
Link to Devin run: https://app.devin.ai/sessions/e4bd1896888c4e1a86041f06d2fc9e3a
Requested by: @rchawdry