widget.jsx
382 B · jsx · 10 lines
1import { createRoot } from 'react-dom/client';23export function embed(name, views) {4 if (typeof document === 'undefined') return;5 for (const figure of document.querySelectorAll(`figure.widget[data-demo="${name}"]`)) {6 const View = views[figure.dataset.view];7 const mount = figure.querySelector('.mount');8 if (View && mount) createRoot(mount).render(<View />);9 }10}