PWA(prograssive web application) install button

```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