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}