```javascript
"use client"
import React, { useEffect, useState } from 'react';
const DownloadPWA = () => {
const [deferredPrompt, setDeferredPrompt] = useState(null);
useEffect(() => {
const handleBeforeInstallPrompt = (e) => {
e.preventDefault(); // Prevent the default mini-infobar
setDeferredPrompt(e);
};
window.addEventListener('beforeinstallprompt', handleBeforeInstallPrompt);
return () => {
window.removeEventListener('beforeinstallprompt', handleBeforeInstallPrompt);
};
}, []);
const handleInstallClick = async () => {
if (deferredPrompt !== null) {
deferredPrompt.prompt();
const { outcome } = await deferredPrompt.userChoice;
if (outcome === 'accepted') {
setDeferredPrompt(null);
}
}
};
return (
<button onClick={handleInstallClick}>Install</button>
);
};
export default DownloadPWA;
Comments
Post a Comment