import { useEffect, useState } from "react"; import { redirect } from "react-router"; import type { LoaderFunction } from "react-router"; import { cx } from "cva"; import api from "@/api"; import { DEVICE_API } from "@/ui.config"; 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 { m } from "@localizations/messages.js"; 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); }, []); return ( <>
{imageLoaded && (
{m.jetkvm_logo()} JetKVM Logo

Welcome to JetKVM

Control any computer remotely

JetKVM Device

JetKVM combines powerful hardware with intuitive software to provide a seamless remote control experience.

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