|
|
|
@ -3,8 +3,10 @@ |
|
|
|
import type { ReactNode } from "react"; |
|
|
|
import { useViewPaddings } from "@/hooks/use-view-paddings"; |
|
|
|
|
|
|
|
// پدینگ بالای طراحی هدر (معادل pt-7 = 28px). فضای امن دستگاه به این اضافه میشود.
|
|
|
|
// پدینگ بالای طراحی هدر (معادل pt-7 = 28px). روی دستگاه، safe-area + 4px جایگزین
|
|
|
|
// میشود (مثل صفحات بومی najm)، و طراحی اصلی بهعنوان کف برای مرورگر حفظ میشود.
|
|
|
|
const DESIGN_TOP_PADDING = 28; |
|
|
|
const SAFE_AREA_GAP = 4; |
|
|
|
|
|
|
|
type StickyHeaderProps = { |
|
|
|
children: ReactNode; |
|
|
|
@ -16,10 +18,11 @@ export default function StickyHeader({ |
|
|
|
className, |
|
|
|
}: StickyHeaderProps) { |
|
|
|
const { top } = useViewPaddings(); |
|
|
|
const paddingTop = Math.max(DESIGN_TOP_PADDING, top + SAFE_AREA_GAP); |
|
|
|
|
|
|
|
return ( |
|
|
|
<header |
|
|
|
style={{ top: `-${top}px`, paddingTop: `${DESIGN_TOP_PADDING + top}px` }} |
|
|
|
style={{ top: `-${top}px`, paddingTop: `${paddingTop}px` }} |
|
|
|
className={[ |
|
|
|
"sticky z-30 rounded-b-[15px] bg-[linear-gradient(135deg,#E03950_0%,#FE6F82_100%)] px-[17px] pb-5", |
|
|
|
className, |
|
|
|
|