'use client'

// ── Offline Provider ──────────────────────────────────────────────────────────
// Wraps the app to:
// 1. Ensure all entity configs are registered (imports trigger side effects)
// 2. Start auto-sync on reconnect / background interval / tab focus
// 3. Provide a single mount point for offline infrastructure
//
// Place inside OnlineStatusProvider in the root layout.

import { type ReactNode } from'react'
import { useSyncOnReconnect } from'@/lib/offline/sync-hooks'

// Importing registry.ts triggers all registerOfflineStore() calls at module load.
// The imports below ensure those registrations happen before any component mounts.
import'@/lib/offline/registry'
// Importing repos triggers no side effects but warms the module cache.
import'@/lib/repositories/assessment-repo'
import'@/lib/repositories/planning-repo'
import'@/lib/repositories/project-repo'
import'@/lib/repositories/account-repo'

interface Props {
 children?: ReactNode
}

function AutoSyncTrigger() {
 // This hook attaches the reconnect / interval / visibility listeners
 useSyncOnReconnect()
 return null
}

export default function OfflineProvider({ children }: Props) {
 return (
 <>
 <AutoSyncTrigger />
 {children}
 </>
 )
}
