"use client"; import { LanguageSwitcher } from "@/components/LanguageSwitcher"; import { ModeToggle } from "@/components/ThemeSwitcher"; import { Separator } from "@/components/ui/separator"; import { Skeleton } from "@/components/ui/skeleton"; import getEnv from "@/lib/env-entry"; import { DateTime } from "luxon"; import { useTranslations } from "next-intl"; import { useRouter } from "next/navigation"; import React, { useEffect, useRef, useState } from "react"; function Header() { const t = useTranslations("Header"); const customLogo = getEnv("NEXT_PUBLIC_CustomLogo"); const customTitle = getEnv("NEXT_PUBLIC_CustomTitle"); const customDescription = getEnv("NEXT_PUBLIC_CustomDescription"); const router = useRouter(); return (
{ sessionStorage.removeItem("selectedTag"); router.push(`/`); }} className="flex cursor-pointer items-center text-base font-medium" >
apple-touch-icon apple-touch-icon
{customTitle ? customTitle : "NezhaDash"}

{customDescription ? customDescription : t("p_1079-1199_Simpleandbeautifuldashbo")}

); } type links = { link: string; name: string; }; function Links() { const linksEnv = getEnv("NEXT_PUBLIC_Links"); const links: links[] | null = linksEnv ? JSON.parse(linksEnv) : null; if (!links) return null; return (
{links.map((link, index) => { return ( {link.name} ); })}
); } // https://github.com/streamich/react-use/blob/master/src/useInterval.ts const useInterval = (callback: () => void, delay: number | null) => { const savedCallback = useRef<() => void>(() => {}); useEffect(() => { savedCallback.current = callback; }); useEffect(() => { if (delay !== null) { const interval = setInterval(() => savedCallback.current(), delay || 0); return () => clearInterval(interval); } return undefined; }, [delay]); }; function Overview() { const t = useTranslations("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 (

{t("p_2277-2331_Overview")}

{t("p_2390-2457_wherethetimeis")}

{mouted ? (

{timeString}

) : ( )}
); } export default Header;