41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
"use client"
|
|
|
|
import { useRef } from "react"
|
|
|
|
import { StickyElementNameEnum } from "@/stores/sticky-position"
|
|
|
|
import Alert from "@/components/TempDesignSystem/Alert"
|
|
import useStickyPosition from "@/hooks/useStickyPosition"
|
|
|
|
import styles from "./sitewideAlert.module.css"
|
|
|
|
import { AlertTypeEnum } from "@/types/enums/alert"
|
|
import type { SitewideAlertProps } from "./sitewideAlert"
|
|
|
|
export default function SiteWideAlertClient({ alert }: SitewideAlertProps) {
|
|
const alertRef = useRef(null)
|
|
useStickyPosition({
|
|
ref: alertRef,
|
|
name: StickyElementNameEnum.SITEWIDE_ALERT,
|
|
})
|
|
const isAlarm = alert.type === AlertTypeEnum.Alarm
|
|
|
|
return (
|
|
<div
|
|
ref={isAlarm ? alertRef : null}
|
|
className={`${styles.sitewideAlert} ${isAlarm ? styles.alarm : ""}`}
|
|
>
|
|
<Alert
|
|
variant="banner"
|
|
type={alert.type}
|
|
link={alert.link}
|
|
phoneContact={alert.phoneContact}
|
|
sidepeekCtaText={alert.sidepeekButton?.cta_text}
|
|
sidepeekContent={alert.sidepeekContent}
|
|
heading={alert.heading}
|
|
text={alert.text}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|