@@ -2,9 +2,41 @@ import { StrictMode } from 'react';
22import { createRoot } from 'react-dom/client' ;
33import './index.css' ;
44import App from './App.tsx' ;
5+ import { Identity } from '@clockworklabs/spacetimedb-sdk' ;
6+ import { SpacetimeDBProvider } from '@clockworklabs/spacetimedb-sdk/react' ;
7+ import { DbConnection , ErrorContext } from './module_bindings/index.ts' ;
8+
9+ const onConnect = ( conn : DbConnection , identity : Identity , token : string ) => {
10+ localStorage . setItem ( 'auth_token' , token ) ;
11+ console . log (
12+ 'Connected to SpacetimeDB with identity:' ,
13+ identity . toHexString ( )
14+ ) ;
15+ conn . reducers . onSendMessage ( ( ) => {
16+ console . log ( 'Message sent.' ) ;
17+ } ) ;
18+ } ;
19+
20+ const onDisconnect = ( ) => {
21+ console . log ( 'Disconnected from SpacetimeDB' ) ;
22+ } ;
23+
24+ const onConnectError = ( _ctx : ErrorContext , err : Error ) => {
25+ console . log ( 'Error connecting to SpacetimeDB:' , err ) ;
26+ } ;
27+
28+ const connectionBuilder = DbConnection . builder ( )
29+ . withUri ( 'ws://localhost:3000' )
30+ . withModuleName ( 'quickstart-chat' )
31+ . withToken ( localStorage . getItem ( 'auth_token' ) || '' )
32+ . onConnect ( onConnect )
33+ . onDisconnect ( onDisconnect )
34+ . onConnectError ( onConnectError ) ;
535
636createRoot ( document . getElementById ( 'root' ) ! ) . render (
737 < StrictMode >
8- < App />
38+ < SpacetimeDBProvider connectionBuilder = { connectionBuilder } >
39+ < App />
40+ </ SpacetimeDBProvider >
941 </ StrictMode >
1042) ;
0 commit comments