"use client"; import Link from "next/link"; import { useState } from "react"; import { useLogin } from "@/hooks/use-auth"; import { useConfig } from "@/hooks/use-channels"; export default function LoginPage() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [rememberMe, setRememberMe] = useState(false); const { mutate: login, isPending, error } = useLogin(); const { data: config } = useConfig(); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); login({ email, password, rememberMe }); }; return (

Sign in

to manage your channels

setEmail(e.target.value)} placeholder="you@example.com" className="w-full rounded-md border border-zinc-700 bg-zinc-900 px-3 py-2 text-sm text-zinc-100 placeholder:text-zinc-600 focus:border-zinc-500 focus:outline-none" />
setPassword(e.target.value)} placeholder="••••••••" className="w-full rounded-md border border-zinc-700 bg-zinc-900 px-3 py-2 text-sm text-zinc-100 placeholder:text-zinc-600 focus:border-zinc-500 focus:outline-none" />
{rememberMe && (

A refresh token will be stored locally — don't share it.

)}
{error &&

{error.message}

}
{config?.allow_registration !== false && (

No account?{" "} Create one

)}
); }