From 8aea5bb4001270418d4626551789bddc1cfa1d2a Mon Sep 17 00:00:00 2001 From: elpatron Date: Tue, 7 Oct 2025 13:41:03 +0200 Subject: [PATCH] =?UTF-8?q?Verbesserungen=20f=C3=BCr=20PWA-Installations-P?= =?UTF-8?q?rompt:=20Mobile-Men=C3=BC-=C3=9Cberlappung=20behoben,=20iOS=20s?= =?UTF-8?q?afe-area=20Unterst=C3=BCtzung,=20localStorage-Fehlerbehandlung?= =?UTF-8?q?=20und=20erweiterte=20standalone-Erkennung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/app.tsx | 16 +++- src/client/components/pwa-install-prompt.tsx | 93 ++++++++++++++++++++ 2 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 src/client/components/pwa-install-prompt.tsx diff --git a/src/client/app.tsx b/src/client/app.tsx index f7bf3b2..3f8bec3 100644 --- a/src/client/app.tsx +++ b/src/client/app.tsx @@ -16,6 +16,7 @@ import BookingStatusPage from "@/client/components/booking-status-page"; import ReviewSubmissionPage from "@/client/components/review-submission-page"; import LegalPage from "@/client/components/legal-page"; import { ProfileLanding } from "@/client/components/profile-landing"; +import { PWAInstallPrompt } from "@/client/components/pwa-install-prompt"; function App() { const { user, isLoading, isOwner } = useAuth(); @@ -36,10 +37,15 @@ function App() { // Handle booking status page const path = window.location.pathname; + const PwaPrompt = ; + if (path.startsWith('/booking/')) { const token = path.split('/booking/')[1]; if (token) { - return ; + return <> + {PwaPrompt} + + ; } } @@ -47,7 +53,10 @@ function App() { if (path.startsWith('/review/')) { const token = path.split('/review/')[1]; if (token) { - return ; + return <> + {PwaPrompt} + + ; } } @@ -381,6 +390,9 @@ function App() { )} + {/* PWA Installation Prompt for iOS */} +