SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%
1.3 KB · 21 lines tsx
Raw Blame History
1import { adminLogin } from '@/lib/admin/actions';23export default async function AdminLoginPage({ searchParams }: { searchParams: Promise<{ error?: string; next?: string }> }) {4  const sp = await searchParams;5  return (6    <div className="mx-auto mt-16 max-w-sm">7      <div className="card p-6">8        <p className="text-[10px] font-semibold uppercase tracking-wider text-subtle">Admin</p>9        <h1 className="mt-1 text-lg font-semibold">Connector control center</h1>10        <p className="mt-1 text-xs text-muted">Enter the server admin token. The token is exchanged for a signed, httpOnly cookie valid 12 hours.</p>11        <form action={adminLogin} className="mt-4 space-y-3">12          <input type="hidden" name="next" value={sp.next ?? '/admin'} />13          <input name="token" type="password" autoComplete="current-password" required placeholder="ADMIN_TOKEN" className="w-full rounded-md border border-border bg-sunken px-3 py-2 text-sm focus:border-border-strong focus:outline-none" />14          {sp.error ? <p className="rounded-md bg-loss-bg px-3 py-2 text-xs text-loss">{sp.error}</p> : null}15          <button type="submit" className="w-full rounded-md bg-accent px-3 py-2 text-sm font-medium text-accent-fg">Sign in</button>16        </form>17      </div>18    </div>19  );20}21