From efda1acdc1f035fa82688c94be399a4dc46b71af Mon Sep 17 00:00:00 2001 From: trafficlunar Date: Fri, 18 Apr 2025 23:03:25 +0100 Subject: [PATCH] fix: account for header height in dialogs --- src/app/provider.tsx | 22 +++++++++++++++++++ src/components/delete-mii.tsx | 2 +- src/components/header.tsx | 4 ++-- src/components/image-viewer.tsx | 2 +- .../profile-settings/delete-account.tsx | 2 +- .../profile-settings/submit-dialog-button.tsx | 2 +- src/components/submit-form/qr-scanner.tsx | 2 +- 7 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/app/provider.tsx b/src/app/provider.tsx index cf81a09..51255d8 100644 --- a/src/app/provider.tsx +++ b/src/app/provider.tsx @@ -1,8 +1,30 @@ "use client"; +import { useEffect } from "react"; import { ProgressProvider } from "@bprogress/next/app"; export default function Providers({ children }: { children: React.ReactNode }) { + // Calculate header height + useEffect(() => { + const header = document.querySelector("header"); + if (!header) return; + + const updateHeaderHeight = () => { + document.documentElement.style.setProperty("--header-height", `${header.offsetHeight}px`); + }; + + const resizeObserver = new ResizeObserver(updateHeaderHeight); + resizeObserver.observe(header); + window.addEventListener("resize", updateHeaderHeight); + + updateHeaderHeight(); + + return () => { + resizeObserver.disconnect(); + window.removeEventListener("resize", updateHeaderHeight); + }; + }, []); + return ( {children} diff --git a/src/components/delete-mii.tsx b/src/components/delete-mii.tsx index bd2f49e..b673802 100644 --- a/src/components/delete-mii.tsx +++ b/src/components/delete-mii.tsx @@ -54,7 +54,7 @@ export default function DeleteMiiButton({ miiId, miiName, likes }: Props) { {isOpen && createPortal( -
+
+
TomodachiShare @@ -44,6 +44,6 @@ export default async function Header() { )} -
+ ); } diff --git a/src/components/image-viewer.tsx b/src/components/image-viewer.tsx index 5b32184..09cfa08 100644 --- a/src/components/image-viewer.tsx +++ b/src/components/image-viewer.tsx @@ -85,7 +85,7 @@ export default function ImageViewer({ src, alt, width, height, className, images {isOpen && createPortal( -
+
+
+
+