'use client'; import * as React from 'react'; import { loadRemote, registerRemotes } from './federation'; export interface HostComponentProps
> { name: string; remote?: string; props?: P; fallback?: React.ReactNode; } export function useHostComponent
>( name: string, remote?: string ): React.ComponentType
| null {
const [Component, setComponent] = React.useState }>(
`${remoteName}/${name}`
).then((module) => {
if (!cancelled) setComponent(() => module.default);
});
return () => {
cancelled = true;
};
}, [name, remote]);
return Component;
}
export function HostComponent >({
name,
remote,
props,
fallback = null,
}: HostComponentProps ) {
const Component = useHostComponent (name, remote);
return Component ?