import React from 'react'; import { createRoot } from 'react-dom/client'; import { RenderResult } from './inject.js'; import { ComponentType } from './types.js'; export default async ( Component: ComponentType

, props: P, mountInto: HTMLDivElement ): Promise> => { let propsSaved = { ...props }; return new Promise((resolve) => { const root = createRoot(mountInto); // @ts-ignore root.render(); const result: RenderResult

= { updateProps: (newProps) => { return new Promise((resolve) => { propsSaved = { ...propsSaved, ...newProps }; // @ts-ignore root.render(); resolve(); }); }, unmount: () => { return new Promise((resolve) => { root.unmount(); resolve(); }); }, }; resolve(result); }); };