@@ -11,6 +11,7 @@ import { useCharmManager } from "@/contexts/CharmManagerContext.tsx";
11
11
interface SyncStatusContextType {
12
12
isSyncing : boolean ;
13
13
lastSyncTime : Date | null ;
14
+ hasConnected : boolean ;
14
15
}
15
16
16
17
const SyncStatusContext = createContext < SyncStatusContextType | undefined > (
@@ -27,7 +28,8 @@ export function SyncStatusProvider({
27
28
intervalMs = 50 ,
28
29
} : SyncStatusProviderProps ) {
29
30
const [ isSyncing , setIsSyncing ] = useState ( true ) ;
30
- const [ lastSyncTime , setLastSyncTime ] = useState < Date | null > ( null ) ;
31
+ const lastSyncTimeRef = useRef < Date | null > ( null ) ;
32
+ const [ hasConnected , setHasConnected ] = useState ( false ) ;
31
33
const { charmManager } = useCharmManager ( ) ;
32
34
const isCheckingSyncRef = useRef ( false ) ;
33
35
@@ -44,7 +46,10 @@ export function SyncStatusProvider({
44
46
await charmManager . synced ( ) ;
45
47
46
48
if ( isMounted ) {
47
- setLastSyncTime ( new Date ( ) ) ;
49
+ lastSyncTimeRef . current = new Date ( ) ;
50
+ if ( ! hasConnected ) {
51
+ setHasConnected ( true ) ;
52
+ }
48
53
}
49
54
} catch ( error ) {
50
55
console . error ( "Sync error:" , error ) ;
@@ -68,7 +73,7 @@ export function SyncStatusProvider({
68
73
} ;
69
74
} , [ charmManager , intervalMs ] ) ;
70
75
71
- const value = { isSyncing, lastSyncTime } ;
76
+ const value = { isSyncing, lastSyncTime : lastSyncTimeRef . current , hasConnected } ;
72
77
73
78
return (
74
79
< SyncStatusContext . Provider value = { value } >
0 commit comments