mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
fix(web): add safe-area-inset-top padding to prevent statusbar overlap on iOS PWA
This fixes an issue where viewport-fit=cover and black-translucent statusbar configuration allowed content to extend under the iOS statusbar. Added env(safe-area-inset-top) CSS handling to all main layout components: - SessionHeader with pt-[env(safe-area-inset-top)] - SessionsPage, MachinesPage, SpawnPage with safe-area padding - FilesPage and FilePage headers with safe-area padding
This commit is contained in:
@@ -49,7 +49,7 @@ export function SessionHeader(props: {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="bg-[var(--app-bg)]">
|
||||
<div className="bg-[var(--app-bg)] pt-[env(safe-area-inset-top)]">
|
||||
<div className="mx-auto w-full max-w-[720px] flex items-center gap-2 p-3">
|
||||
{/* Back button */}
|
||||
<button
|
||||
|
||||
+3
-3
@@ -34,7 +34,7 @@ function SessionsPage() {
|
||||
}, [refetch])
|
||||
|
||||
return (
|
||||
<div className="flex-1 overflow-y-auto p-4 space-y-4">
|
||||
<div className="flex-1 overflow-y-auto p-4 pt-[calc(1rem+env(safe-area-inset-top))] space-y-4">
|
||||
{error ? <div className="text-sm text-red-600">{error}</div> : null}
|
||||
<SessionList
|
||||
sessions={sessions}
|
||||
@@ -114,7 +114,7 @@ function MachinesPage() {
|
||||
|
||||
return (
|
||||
<div className="flex-1 overflow-y-auto">
|
||||
<div className="flex items-center gap-2 border-b border-[var(--app-border)] bg-[var(--app-bg)] p-3">
|
||||
<div className="flex items-center gap-2 border-b border-[var(--app-border)] bg-[var(--app-bg)] p-3 pt-[calc(0.75rem+env(safe-area-inset-top))]">
|
||||
<div className="flex-1 font-semibold">Machines</div>
|
||||
</div>
|
||||
|
||||
@@ -158,7 +158,7 @@ function SpawnPage() {
|
||||
|
||||
return (
|
||||
<div className="flex-1 overflow-y-auto">
|
||||
<div className="flex items-center gap-2 border-b border-[var(--app-border)] bg-[var(--app-bg)] p-3">
|
||||
<div className="flex items-center gap-2 border-b border-[var(--app-border)] bg-[var(--app-bg)] p-3 pt-[calc(0.75rem+env(safe-area-inset-top))]">
|
||||
<div className="flex-1 font-semibold">Create Session</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ export default function FilePage() {
|
||||
|
||||
return (
|
||||
<div className="flex h-full flex-col">
|
||||
<div className="bg-[var(--app-bg)] border-b border-[var(--app-border)]">
|
||||
<div className="bg-[var(--app-bg)] border-b border-[var(--app-border)] pt-[env(safe-area-inset-top)]">
|
||||
<div className="mx-auto w-full max-w-[720px] flex items-center gap-2 p-3">
|
||||
<button
|
||||
type="button"
|
||||
|
||||
@@ -249,7 +249,7 @@ export default function FilesPage() {
|
||||
|
||||
return (
|
||||
<div className="flex h-full flex-col">
|
||||
<div className="bg-[var(--app-bg)] border-b border-[var(--app-border)]">
|
||||
<div className="bg-[var(--app-bg)] border-b border-[var(--app-border)] pt-[env(safe-area-inset-top)]">
|
||||
<div className="mx-auto w-full max-w-[720px] flex items-center gap-2 p-3">
|
||||
<button
|
||||
type="button"
|
||||
|
||||
Reference in New Issue
Block a user