import {type RemoteReceiverNode} from '@remote-dom/core/receivers';
import {RemoteTextRenderer} from './RemoteTextRenderer.tsx';
import type {RemoteNodeRenderOptions} from './types.ts';
/**
* Renders a remote node to the host using React.
*
* @param node The remote node to render using React
*/
export function renderRemoteNode(
node: RemoteReceiverNode,
{receiver, components}: RemoteNodeRenderOptions,
) {
switch (node.type) {
case 1: {
const Component = components.get(node.element);
if (Component == null) {
throw new Error(
`No component found for remote element: ${node.element}`,
);
}
return (
);
}
case 3: {
return (
);
}
case 8: {
return null;
}
default: {
throw new Error(`Unknown remote node type: ${String(node)}`);
}
}
}