"use client" import type React from "react" import { useRouter } from "next/navigation" import { useState, useEffect } from "react" import { GITHUB_URL, getRandomUserId, useAppDispatch, getRandomChannel, } from "@/common" import { setOptions } from "@/store/reducers/global" import packageData from "../../../package.json" import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import NextLink from "next/link" import { GitHubIcon } from "@/components/Icon" import { toast } from "sonner" import { LoadingButton } from "@/components/Button/LoadingButton" const { version } = packageData export default function LoginCard() { const dispatch = useAppDispatch() const router = useRouter() const [userName, setUserName] = useState("") const [isLoadingSuccess, setIsLoadingSuccess] = useState(false) const onUserNameChange = (e: React.ChangeEvent) => { let value = e.target.value value = value.replace(/\s/g, "") setUserName(value) } useEffect(() => { const onPageLoad = () => { setIsLoadingSuccess(true) } if (document.readyState === "complete") { onPageLoad() } else { window.addEventListener("load", onPageLoad, false) return () => window.removeEventListener("load", onPageLoad) } }, []) const onClickJoin = () => { if (!userName) { toast.error("please enter a user name") return } const userId = getRandomUserId() dispatch( setOptions({ userName, channel: getRandomChannel(), userId, }), ) router.push("/home") } return ( <>
TEN Agent A Realtime Conversational AI Agent powered by TEN
{ e.preventDefault() onClickJoin() }} className="flex flex-col gap-6" > {isLoadingSuccess ? "Join" : "Loading"}

Version {version}

) }