import {StrictMode} from 'react';
import {createRoot} from 'react-dom/client';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import App from './App.tsx';
import './index.css';
import { StatusProvider } from './lib/status-context';

const queryClient = new QueryClient();

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <QueryClientProvider client={queryClient}>
      <StatusProvider>
        <App />
      </StatusProvider>
    </QueryClientProvider>
  </StrictMode>,
);

// Register service worker for offline/background support
if ("serviceWorker" in navigator) {
  window.addEventListener("load", () => {
    navigator.serviceWorker
      .register("/sw.js")
      .then((reg) => {
        console.log("Vortex Service Worker registered successfully:", reg.scope);
        // Request background sync registrations if API is available
        if ("sync" in reg) {
          (reg as any).sync.register("vortex-keepalive").catch((err: any) => {
            console.warn("Background sync register rejected:", err);
          });
        }
      })
      .catch((err) => {
        console.error("Vortex Service Worker registration failed:", err);
      });
  });
}

