import React from "react";
import ReactDOM from "react-dom/client";
import "./index.scss";
import App from "./App";
import { store } from "./app/store";
import { HashRouter } from "react-router-dom";
import { Provider } from "react-redux";
import { GoogleSignin } from "@react-native-google-signin/google-signin";

const env: any =
  (typeof import.meta !== "undefined" && (import.meta as any)?.env) ||
  (typeof globalThis !== "undefined" && (globalThis as any).process?.env) ||
  {};

const webClientId =
  env.EXPO_PUBLIC_WEB_CLIENT_ID ||
  env.VITE_WEB_CLIENT_ID ||
  "191836294513-ni87tia8288l10asfaitg0b023n5ncm1.apps.googleusercontent.com";

try {
  GoogleSignin.configure({
    webClientId,
  });
} catch (e) {
  console.warn("GoogleSignin.configure warning:", e);
}

ReactDOM.createRoot(document.getElementById("root")!).render(
  <React.StrictMode>
    <Provider store={store}>
      <HashRouter>
        <App />
      </HashRouter>
    </Provider>
  </React.StrictMode>
);

if (
  "serviceWorker" in navigator &&
  typeof window !== "undefined" &&
  window.location.protocol.startsWith("http")
) {
  window.addEventListener("load", () => {
    navigator.serviceWorker.register("/sw.js").catch((error) => {
      console.error("Service worker registration failed:", error);
    });
  });
}