15 lines
566 B
JavaScript
15 lines
566 B
JavaScript
import { createComponent } from 'solid-js/web';
|
|
|
|
export default (element) => (Component, props) => {
|
|
// Solid `createComponent` just returns a DOM node with all reactivity
|
|
// already attached. There's no VDOM, so there's no real need to "mount".
|
|
// Likewise, `children` can just reuse the nearest `astro-fragment` node.
|
|
const component = createComponent(Component, {
|
|
...props,
|
|
children: element.querySelector('astro-fragment'),
|
|
});
|
|
|
|
const children = Array.isArray(component) ? component : [component];
|
|
|
|
element.replaceChildren(...children);
|
|
};
|