import { useEffect, useState } from "react"; import { cx } from "cva"; import { redirect } from "react-router"; import type { LoaderFunction } from "react-router"; import GridBackground from "@components/GridBackground"; import Container from "@components/Container"; import { LinkButton } from "@components/Button"; import LogoBlueIcon from "@/assets/logo-blue.png"; import LogoWhiteIcon from "@/assets/logo-white.svg"; import DeviceImage from "@/assets/jetkvm-device-still.png"; import LogoMark from "@/assets/logo-mark.png"; import { DEVICE_API } from "@/ui.config"; import api from "../api"; import {useTranslation} from "react-i18next"; export interface DeviceStatus { isSetup: boolean; } const loader: LoaderFunction = async () => { const res = await api .GET(`${DEVICE_API}/device/status`) .then(res => res.json() as Promise); if (res.isSetup) return redirect("/login-local"); return null; }; export default function WelcomeRoute() { const [imageLoaded, setImageLoaded] = useState(false); useEffect(() => { const img = new Image(); img.src = DeviceImage; img.onload = () => setImageLoaded(true); }, []); const { t } = useTranslation(); return ( <>
{imageLoaded && (
JetKVM Logo JetKVM Logo

{t('Welcome_to_JetKVM')}

{t('Control_any_computer_remotely')}

{t('JetKVM_Device')}

{t('JetKVM_combines_powerful_hardware_with_intuitive_software_to_provide_a_seamless_remote_control_experience')}

( )} textAlign="center" to="/welcome/mode" />
)}
); } WelcomeRoute.loader = loader;