import { useEffect, useState } from 'react' import { Box, Paper, Group, Text, ActionIcon } from '@mantine/core' import { DownloadIcon, XIcon } from '@phosphor-icons/react' export function IOSInstallPrompt() { const [show, setShow] = useState(false) const [platform, setPlatform] = useState<'ios' | 'android' | null>(null) useEffect(() => { const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) const isAndroid = /Android/.test(navigator.userAgent) const isInStandaloneMode = window.matchMedia('(display-mode: standalone)').matches || ('standalone' in window.navigator && (window.navigator as any).standalone) const hasBeenDismissed = localStorage.getItem('pwa-install-prompt-dismissed') === 'true' if ((isIOS || isAndroid) && !isInStandaloneMode && !hasBeenDismissed) { setPlatform(isIOS ? 'ios' : 'android') const timer = setTimeout(() => setShow(true), 3000) return () => clearTimeout(timer) } }, []) const handleDismiss = () => { localStorage.setItem('pwa-install-prompt-dismissed', 'true') setShow(false) } if (!show || !platform) return null const instructions = platform === 'ios' ? 'Tap Share → Add to Home Screen' : 'Tap Menu (⋮) → Add to Home screen' return ( Please install FLXN • This will save me Twilio credits as you won't be signed out! {instructions} ) }