update frontend

This commit is contained in:
Your Name 2025-12-21 20:26:17 -05:00
parent 4d2f81f434
commit 80d75a7a57
2 changed files with 13 additions and 16 deletions

View File

@ -1,26 +1,24 @@
// src/pwaInstall.js // src/pwaInstall.js
let deferredPrompt = null; let deferredPrompt = null;
let promptShown = false;
// Stocke l'événement natif (se déclenche après interactions) // Stocke l'événement natif quand Chrome le déclenche
window.addEventListener('beforeinstallprompt', (e) => { window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault(); e.preventDefault();
deferredPrompt = e; deferredPrompt = e;
console.log('PWA: Install prompt ready - button can trigger it now'); console.log('PWA: Install prompt ready - button can trigger it');
}); });
// Fonction appelée par le bouton "Install" // Fonction appelée par le bouton "Install"
export function promptInstall() { export function promptInstall() {
if (deferredPrompt && !promptShown) { if (deferredPrompt) {
console.log('PWA: Triggering native prompt'); console.log('PWA: Triggering native install prompt');
deferredPrompt.prompt(); deferredPrompt.prompt();
promptShown = true; deferredPrompt.userChoice.then((choice) => {
deferredPrompt.userChoice.then((choiceResult) => { console.log('PWA Install outcome:', choice.outcome);
console.log('PWA Install outcome:', choiceResult.outcome);
deferredPrompt = null; deferredPrompt = null;
}); });
} else { } else {
console.log('PWA: No prompt ready - scroll/click more on the site'); console.log('PWA: No prompt ready yet - scroll/click more');
alert('PWA not ready yet. Try scrolling the map, clicking filters or markers, then click Install again.'); alert('PWA not ready yet. Try scrolling the map, clicking filters or markers, then click Install again.');
} }
} }

View File

@ -18,6 +18,9 @@ import "./styles/maps.css"; // ✅ pour la barre de recherche (taille + couleurs
import { AuthProvider } from "./auth/AuthContext.jsx"; import { AuthProvider } from "./auth/AuthContext.jsx";
// Import pour PWA install
import { promptInstall } from './pwaInstall';
ReactDOM.createRoot(document.getElementById("root")).render( ReactDOM.createRoot(document.getElementById("root")).render(
<React.StrictMode> <React.StrictMode>
<AuthProvider> <AuthProvider>
@ -26,15 +29,11 @@ ReactDOM.createRoot(document.getElementById("root")).render(
</React.StrictMode> </React.StrictMode>
); );
// Enregistre le service worker pour PWA (offline + install) - sans crash // Enregistre le service worker pour PWA
if ('serviceWorker' in navigator) { if ('serviceWorker' in navigator) {
window.addEventListener('load', () => { window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js') navigator.serviceWorker.register('/service-worker.js')
.then(reg => { .then(reg => console.log('Service Worker registered'))
console.log('Service Worker registered:', reg); .catch(err => console.error('Service Worker failed:', err));
})
.catch(err => {
console.error('Service Worker failed:', err);
});
}); });
} }