diff --git a/components/site-entry-prompt.tsx b/components/site-entry-prompt.tsx index e606259..777f429 100644 --- a/components/site-entry-prompt.tsx +++ b/components/site-entry-prompt.tsx @@ -21,7 +21,6 @@ export function SiteEntryPrompt() { const [open, setOpen] = useState(false); const [installed, setInstalled] = useState(false); const [installEvent, setInstallEvent] = useState(null); - const [instructions, setInstructions] = useState(false); const [permission, setPermission] = useState(null); const [busy, setBusy] = useState(false); const [error, setError] = useState(""); @@ -36,7 +35,6 @@ export function SiteEntryPrompt() { const installedNow = isInstalled(); const ios = /iPad|iPhone|iPod/.test(navigator.userAgent) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1); - const mobile = ios || /Android|Mobile/.test(navigator.userAgent); const canNotify = window.isSecureContext && "Notification" in window && "PushManager" in window && "serviceWorker" in navigator; @@ -44,7 +42,7 @@ export function SiteEntryPrompt() { setInstalled(installedNow); setPermission(canNotify ? Notification.permission : null); if (!sessionStorage.getItem(dismissedKey) && - ((mobile && !installedNow) || (canNotify && Notification.permission === "default"))) { + ((ios && !installedNow) || (canNotify && Notification.permission === "default"))) { setOpen(true); } }); @@ -57,7 +55,6 @@ export function SiteEntryPrompt() { const onInstalled = () => { setInstalled(true); setInstallEvent(null); - setInstructions(false); if (!canNotify || Notification.permission !== "default") setOpen(false); }; window.addEventListener("beforeinstallprompt", beforeInstall); @@ -75,10 +72,7 @@ export function SiteEntryPrompt() { } async function install() { - if (!installEvent) { - setInstructions(true); - return; - } + if (!installEvent) return; await installEvent.prompt(); await installEvent.userChoice; setInstallEvent(null); @@ -113,9 +107,7 @@ export function SiteEntryPrompt() { const ios = typeof navigator !== "undefined" && (/iPad|iPhone|iPod/.test(navigator.userAgent) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1)); - const mobile = typeof navigator !== "undefined" && - (ios || /Android|Mobile/.test(navigator.userAgent)); - const showInstall = !installed && (mobile || installEvent !== null); + const showInstall = !installed && (ios || installEvent !== null); const canAskNotification = permission === "default" && (!ios || installed); return { if (!next) dismiss(); }}> @@ -128,9 +120,8 @@ export function SiteEntryPrompt() { "รับการแจ้งเตือนเมื่อมีข้อความใหม่ใน Commission หลังเข้าสู่ระบบ"} - {!installed && (ios || instructions) &&

- {ios ? "บน iPhone/iPad แตะปุ่มแชร์ใน Safari แล้วเลือก ‘เพิ่มไปยังหน้าจอโฮม’ จากนั้นเปิดแอปที่ติดตั้ง" : - "เปิดเมนูของเบราว์เซอร์ แล้วเลือก ‘ติดตั้งแอป’ หรือ ‘เพิ่มไปยังหน้าจอหลัก’"} + {!installed && ios &&

+ บน iPhone/iPad แตะปุ่มแชร์ใน Safari แล้วเลือก ‘เพิ่มไปยังหน้าจอโฮม’ จากนั้นเปิดแอปที่ติดตั้ง

} {ios && !installed &&

ติดตั้งและเปิดจากหน้าจอโฮมก่อน จึงจะเปิดการแจ้งเตือนได้บน iPhone/iPad @@ -138,7 +129,7 @@ export function SiteEntryPrompt() { {error &&

{error}

} - {showInstall && !ios && } + {installEvent && !installed && } {canAskNotification && }