FarmerHelp / frontend /src /main.jsx
Gankit12's picture
All
4995d62
Raw
History Blame Contribute Delete
1.96 kB
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { BrowserRouter } from "react-router-dom";
import { Toaster } from "react-hot-toast";
import App from "./App.jsx";
import "./index.css";
// ---------------------------------------------------------------------------
// Toast Configuration
// ---------------------------------------------------------------------------
const TOAST_OPTIONS = {
position: "top-right",
duration: 4000,
style: {
borderRadius: "8px",
background: "#1e293b",
color: "#f8fafc",
fontSize: "14px",
},
success: {
iconTheme: {
primary: "#22c55e",
secondary: "#f0fdf4",
},
},
error: {
iconTheme: {
primary: "#ef4444",
secondary: "#fef2f2",
},
},
};
// ---------------------------------------------------------------------------
// Service Worker Registration
// ---------------------------------------------------------------------------
function registerServiceWorker() {
if ("serviceWorker" in navigator && import.meta.env.PROD) {
window.addEventListener("load", () => {
navigator.serviceWorker
.register("/sw.js")
.then((registration) => {
console.info("[SW] Registered:", registration.scope);
})
.catch((error) => {
console.warn("[SW] Registration failed:", error);
});
});
}
}
// ---------------------------------------------------------------------------
// Mount Application
// ---------------------------------------------------------------------------
const rootElement = document.getElementById("root");
if (!rootElement) {
throw new Error(
"Root element not found. Ensure index.html contains a <div id='root'></div>.",
);
}
createRoot(rootElement).render(
<StrictMode>
<BrowserRouter>
<App />
<Toaster toastOptions={TOAST_OPTIONS} />
</BrowserRouter>
</StrictMode>,
);
registerServiceWorker();