import React from "react"; /** * Compact PWA install button for the header. * - Shows πŸ“² icon when install prompt is available (Chrome/Edge on Android & desktop). * - Shows iOS Safari instructions tooltip on click when on iOS. * - Hidden when app is already installed (standalone mode). * - After install: auto-hidden via appinstalled event. */ export const PwaInstallButton = ({ onInstall, isInstalled, isInstallAvailable }) => { const [showTip, setShowTip] = React.useState(false); const tipRef = React.useRef(null); // Detect iOS (no beforeinstallprompt, but can be added to home screen) const isIOS = typeof navigator !== "undefined" && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; const handleInstallClick = async () => { if (isInstallAvailable && onInstall) { await onInstall(); } else { // Show instruction tip for iOS or unsupported browsers setShowTip((prev) => !prev); } }; // Close tip on outside click React.useEffect(() => { if (!showTip) return; const handler = (e) => { if (tipRef.current && !tipRef.current.contains(e.target)) { setShowTip(false); } }; document.addEventListener("click", handler); return () => document.removeEventListener("click", handler); }, [showTip]); // Don't render if already installed as PWA β€” AFTER all hooks if (isInstalled) return null; return (
{showTip && (
{isIOS ? ( <>

Установка Π½Π° iOS

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² Safari
  2. НаТмитС ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ⬆️
  3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «На экран Π”ΠΎΠΌΠΎΠΉΒ»
) : ( <>

Установка

НаТмитС Π·Π½Π°Ρ‡ΠΎΠΊ πŸ“² Π² адрСсной строкС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ мСню Β«Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β».

)}
)}
); };