22 DbConnectionBuilder ,
33 type DbConnectionImpl ,
44} from '../sdk/db_connection_impl' ;
5- import { createSignal , createEffect , onCleanup , createMemo } from 'solid-js' ;
5+ import { createEffect , onCleanup , createMemo } from 'solid-js' ;
6+ import { createStore } from 'solid-js/store' ;
67import { SpacetimeDBContext } from './useSpacetimeDB' ;
78import type { ConnectionState } from './connection_state' ;
89import { ConnectionId } from '../lib/connection_id' ;
@@ -36,8 +37,7 @@ export function SpacetimeDBProvider<
3637 connectionError : undefined ,
3738 } ;
3839
39- const [ state , setState ] =
40- createSignal < ManagerConnectionState > ( fallbackState ) ;
40+ const [ state , setState ] = createStore < ManagerConnectionState > ( fallbackState ) ;
4141
4242 // Subscription to ConnectionManager
4343 createEffect ( ( ) => {
@@ -60,10 +60,14 @@ export function SpacetimeDBProvider<
6060 const getConnection = ( ) =>
6161 ConnectionManager . getConnection < DbConnection > ( key ( ) ) ;
6262
63- const contextValue = createMemo < ConnectionState > ( ( ) => ( {
64- ...state ( ) ,
63+ const contextValue : ConnectionState = {
64+ get isActive ( ) { return state . isActive ; } ,
65+ get identity ( ) { return state . identity ; } ,
66+ get token ( ) { return state . token ; } ,
67+ get connectionId ( ) { return state . connectionId ; } ,
68+ get connectionError ( ) { return state . connectionError ; } ,
6569 getConnection,
66- } ) ) ;
70+ } ;
6771
6872 // retain / release lifecycle
6973 createEffect ( ( ) => {
@@ -76,7 +80,7 @@ export function SpacetimeDBProvider<
7680
7781
7882 return SpacetimeDBContext . Provider ( {
79- value : contextValue ( ) ,
83+ value : contextValue ,
8084 children : props . children ,
8185 } ) ;
8286}
0 commit comments