"use client"; import React, { useEffect, useRef, useState } from "react"; import Image from "next/image"; import { Separator } from "@/components/ui/separator"; import { DateTime } from "luxon"; function Header() { return (
apple-touch-icon
HomeDash

Simple and beautiful dashboard

{/* */}
); } // https://github.com/streamich/react-use/blob/master/src/useInterval.ts const useInterval = (callback: Function, delay?: number | null) => { const savedCallback = useRef(() => {}); useEffect(() => { savedCallback.current = callback; }); useEffect(() => { if (delay !== null) { const interval = setInterval(() => savedCallback.current(), delay || 0); return () => clearInterval(interval); } return undefined; }, [delay]); }; function Overview() { const [mouted, setMounted] = useState(false); useEffect(() => { setMounted(true); }, []); const timeOption = DateTime.TIME_SIMPLE; timeOption.hour12 = true; const [timeString, setTimeString] = useState( DateTime.now().setLocale("en-US").toLocaleString(timeOption), ); useInterval(() => { setTimeString(DateTime.now().setLocale("en-US").toLocaleString(timeOption)); }, 1000); return (

👋 Overview

where the time is

{mouted && (

{timeString}

)}
); } export default Header;