@@ -28,14 +28,14 @@ import React from 'react';
28
28
import { LOGIN_ROUTE , SCHEMA_ROUTE , SQL_CONSOLE_ROUTE , SYNC_DIAGNOSTICS_ROUTE } from '@/app/router' ;
29
29
import { useNavigationPanel } from '@/components/navigation/NavigationPanelContext' ;
30
30
import { signOut , sync , syncErrorTracker } from '@/library/powersync/ConnectionManager' ;
31
- import { usePowerSync , useStatus } from '@powersync/react' ;
31
+ import { usePowerSync } from '@powersync/react' ;
32
32
import { useNavigate } from 'react-router-dom' ;
33
33
34
34
export default function ViewsLayout ( { children } : { children : React . ReactNode } ) {
35
35
const powerSync = usePowerSync ( ) ;
36
36
const navigate = useNavigate ( ) ;
37
37
38
- const syncStatus = useStatus ( ) ;
38
+ const [ syncStatus , setSyncStatus ] = React . useState ( sync . syncStatus ) ;
39
39
const [ syncError , setSyncError ] = React . useState < Error | null > ( null ) ;
40
40
const { title } = useNavigationPanel ( ) ;
41
41
@@ -86,6 +86,16 @@ export default function ViewsLayout({ children }: { children: React.ReactNode })
86
86
[ powerSync ]
87
87
) ;
88
88
89
+ // Cannot use `useStatus()`, since we're not using the default sync implementation.
90
+ React . useEffect ( ( ) => {
91
+ const l = sync . registerListener ( {
92
+ statusChanged : ( status ) => {
93
+ setSyncStatus ( status ) ;
94
+ }
95
+ } ) ;
96
+ return ( ) => l ( ) ;
97
+ } , [ ] ) ;
98
+
89
99
React . useEffect ( ( ) => {
90
100
const l = syncErrorTracker . registerListener ( {
91
101
lastErrorUpdated ( error ) {
0 commit comments