diff --git a/src/main.jsx b/src/main.jsx index 7fd2e5e..7d005d3 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -21,6 +21,37 @@ import { AuthProvider } from "./auth/AuthContext.jsx"; // Import pour PWA install import { promptInstall } from './pwaInstall'; +function installGlobalErrorOverlay() { + if (typeof window === "undefined") return; + const show = (msg) => { + try { + let el = document.getElementById("sw-fatal"); + if (!el) { + el = document.createElement("div"); + el.id = "sw-fatal"; + el.style.position = "fixed"; + el.style.inset = "0"; + el.style.background = "#0b0f1a"; + el.style.color = "#e2e8f0"; + el.style.zIndex = "999999"; + el.style.padding = "24px"; + el.style.fontFamily = "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"; + el.style.whiteSpace = "pre-wrap"; + document.body.appendChild(el); + } + el.textContent = `SocioWire error:\\n${msg}`; + } catch {} + }; + window.addEventListener("error", (e) => { + show(e?.message || String(e)); + }); + window.addEventListener("unhandledrejection", (e) => { + show(e?.reason?.message || String(e?.reason || e)); + }); +} + +installGlobalErrorOverlay(); + ReactDOM.createRoot(document.getElementById("root")).render(