"use client"; import { useEffect, useState } from "react"; import { getFirestore, collection, onSnapshot, query, orderBy, limit, } from "firebase/firestore"; import { motion, AnimatePresence } from "framer-motion"; import Image from "next/image"; import firebaseApp from "@/config/firebase"; import { fontCursive, fontSans, fontMono } from "@/config/fonts"; import { HeartFilledIcon } from "@/components/icons"; const db = getFirestore(firebaseApp()); export default function UpdateOverlay() { const [latestUpdate, setLatestUpdate] = useState(null); const [time, setTime] = useState(new Date()); const [hasMounted, setHasMounted] = useState(false); useEffect(() => { setHasMounted(true); const timer = setInterval(() => setTime(new Date()), 1000); const q = query( collection(db, "updates"), orderBy("createdAt", "desc"), limit(1), ); const unsubscribe = onSnapshot(q, (snapshot) => { if (!snapshot.empty) { setLatestUpdate({ id: snapshot.docs[0].id, ...snapshot.docs[0].data(), }); } }); return () => { unsubscribe(); clearInterval(timer); }; }, []); return (
{/* Global CSS for OBS Chroma Keying */} {/* Top Bar: Clock & Brand */}

{hasMounted ? time.toLocaleTimeString("en-IN", { hour: "2-digit", minute: "2-digit", second: "2-digit", }) : "--:--:--"}

Event Time

Follow Live

Scan for Updates

QR Code
{/* Bottom Bar: Latest News */} {latestUpdate && (
{/* Solid outline instead of glow */}
LIVE

Wedding News

{latestUpdate.text}

Titas & Sukanya

Jan 2026

)}
); }