File tree Expand file tree Collapse file tree
host/src/server-component-root Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11'use client' ;
22
3+ import { callServer } from '@modern-js/runtime/rsc/client' ;
34import { useState } from 'react' ;
45import RemoteClientBadge from 'rscRemote/RemoteClientBadge' ;
6+ import { RemoteClientCounter as RemoteClientCounterBridge } from 'rscRemote/RemoteClientCounter' ;
57import { remoteActionEcho } from 'rscRemote/actions' ;
68import defaultRemoteAction from 'rscRemote/defaultAction' ;
9+ import { registerRemoteServerCallback } from 'rscRemote/registerServerCallback' ;
710
811export default function HostRemoteActionRunner ( ) {
12+ // Keep this import in the client graph so federated RSC bridge IDs
13+ // can map back to a concrete remote module factory at runtime.
14+ void RemoteClientCounterBridge ;
15+ registerRemoteServerCallback ( callServer as any ) ;
916 const [ defaultResult , setDefaultResult ] = useState ( '' ) ;
1017 const [ echoResult , setEchoResult ] = useState ( '' ) ;
1118 const [ isPending , setIsPending ] = useState ( false ) ;
Original file line number Diff line number Diff line change @@ -155,6 +155,10 @@ export default createModuleFederationConfig({
155155 import : './src/components/defaultAction.ts' ,
156156 layer : LAYERS . rsc ,
157157 } as any ,
158+ './registerServerCallback' : {
159+ import : './src/components/registerServerCallback.ts' ,
160+ layer : LAYERS . rsc ,
161+ } as any ,
158162 } ,
159163 shared : sharedByScope as any ,
160164 dts : false ,
Original file line number Diff line number Diff line change 1+ import { setServerCallback } from 'react-server-dom-rspack/client.browser' ;
2+
3+ type CallServer = ( id : string , args : unknown [ ] ) => Promise < unknown > ;
4+
5+ let hasRegisteredRemoteServerCallback = false ;
6+
7+ export function registerRemoteServerCallback ( callServer : CallServer ) {
8+ if ( hasRegisteredRemoteServerCallback ) {
9+ return ;
10+ }
11+ setServerCallback ( callServer as any ) ;
12+ hasRegisteredRemoteServerCallback = true ;
13+ }
You can’t perform that action at this time.
0 commit comments