import React, { useState } from 'react'; import { createPortal } from 'react-dom'; import { ArrowDownTrayIcon, XMarkIcon, CheckIcon } from '@heroicons/react/24/outline'; import { usePwaInstall } from '../../hooks/usePwaInstall'; function detectIOS(): boolean { return /iphone|ipad|ipod/i.test(navigator.userAgent); } export default function PwaLoginCard() { const { promptEvent, isInstalled, isDismissed, install, dismiss } = usePwaInstall(); const [showSteps, setShowSteps] = useState(false); if (isInstalled || isDismissed) return null; const isIOS = detectIOS(); const handleInstallClick = async () => { if (promptEvent) { const accepted = await install(); if (accepted) return; } // native prompt not available or dismissed → show manual steps setShowSteps(true); }; const steps = isIOS ? [ 'Safari را باز کنید (فقط Safari از نصب پشتیبانی می‌کند)', 'دکمه Share (مربع با فلش رو به بالا) را در پایین صفحه بزنید', 'گزینه «Add to Home Screen» را انتخاب کنید', '«Add» را بزنید — تمام!', ] : [ 'در Chrome منوی سه‌نقطه (⋮) را در گوشه بالا باز کنید', 'گزینه «Install ClinicPro» یا «Install app» را انتخاب کنید', 'در پنجره‌ای که باز می‌شود «Install» را بزنید', ]; return createPortal(
e.stopPropagation()} style={{ width: '100%', maxWidth: 380, background: 'var(--surface)', borderRadius: 'var(--r)', boxShadow: '0 20px 60px rgba(0,0,0,0.2)', overflow: 'hidden', }} > {/* Header */}
نصب ClinicPro
{/* Body */}
{!showSteps ? ( <> {/* App icon + name */}

ClinicPro

پنل مدیریت کلینیک

اپلیکیشن را روی دستگاه خود نصب کنید و بدون باز کردن مرورگر وارد شوید.

) : ( <>

مراحل نصب:

{steps.map((step, i) => (
{i + 1}

{step}

))}
)}
, document.body ); }