import { loginAction } from "@/lib/actions";
import { getSession } from "@/lib/auth";
import { isSetupComplete } from "@/lib/setup";
import { redirect } from "next/navigation";

type LoginPageProps = {
  searchParams: Promise<{ error?: string }>;
};

export default async function LoginPage({ searchParams }: LoginPageProps) {
  if (!(await isSetupComplete())) {
    redirect("/setup");
  }

  const session = await getSession();

  if (session) {
    redirect("/admin");
  }

  const params = await searchParams;

  return (
    <main className="admin-login">
      <form action={loginAction} className="admin-login-card form-grid">
        <span className="pill">Admin login</span>
        <div className="admin-brand">
          <span className="admin-brand-icon">J</span>
          <h1 className="admin-brand-title" style={{ margin: 0 }}>Just Chill Nepal</h1>
        </div>
        {params.error ? <p style={{ color: "#fb7185" }}>Invalid email or password.</p> : null}
        <label className="field">
          Email
          <input name="email" required type="email" />
        </label>
        <label className="field">
          Password
          <input name="password" required type="password" />
        </label>
        <button className="btn" type="submit">
          Login
        </button>
      </form>
    </main>
  );
}
