react-chemdoodle
Version:
The React Chemdoodle Web Components (`react-chemdoodle`) is a UI library add-on for the [ChemDoodle Web Components](https://web.chemdoodle.com/) (CWC) library. CWC provides 18 unique component canvases from a simple 2D "ViewerCanvas" to 3D "EditorCanvas3D
34 lines (28 loc) • 719 B
JSX
/* eslint-disable no-undef */
import { useEffect } from 'react'
export function ViewerCanvas({
id,
data,
style,
width = 100,
height = 100,
canvasStyle,
moleculeStyle
}) {
useEffect(() => {
// Setup canvas
const viewerCanvas = new ChemDoodle.ViewerCanvas(id)
viewerCanvas.styles = {
...viewerCanvas.styles,
...canvasStyle
}
// Setup molecule
const molecule = ChemDoodle.readMOL(data.mol)
for (const key in moleculeStyle) {
molecule[key](moleculeStyle[key])
}
// Load molecule in canvas
viewerCanvas.loadMolecule(molecule)
}, [id, data, canvasStyle, moleculeStyle])
return <canvas id={id} style={style} width={width} height={height} />
}