UNPKG

nice-ui

Version:

React design system, components, and utilities

44 lines (43 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const nano_theme_1 = require("nano-theme"); const { useRef, useEffect } = React; const css = { ff: 'Arial, Helvetica, Linux Libertine, Times, Times New Roman, sans-serif', fz: '24px', ta: 'center', canvas: { verticalAlign: 'bottom', }, }; const bigClass = (0, nano_theme_1.rule)(css); const smallClass = (0, nano_theme_1.rule)({ ...css, fz: '18px', }); const CharChemStructuralFormula = ({ source }) => { const ref = useRef(null); useEffect(() => { const div = ref.current; if (!ref.current) return; const ChemSys = window.ChemSys; if (!ChemSys) { // tslint:disable-next-line console.error('ChemSys not loaded.'); return; } ChemSys.draw(div, ChemSys.compile(source)); const canvas = div.querySelectorAll('canvas'); if (!canvas.length) div.innerHTML = source; return () => { while (div.firstChild) div.removeChild(div.firstChild); }; }, [ref.current, source]); const isBig = source.length > 130; return React.createElement("div", { ref: ref, className: isBig ? smallClass : bigClass }); }; exports.default = CharChemStructuralFormula;