update frontend
This commit is contained in:
parent
4d2f81f434
commit
80d75a7a57
|
|
@ -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.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
13
src/main.jsx
13
src/main.jsx
|
|
@ -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);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue