'use client';

import { useActionState } from 'react';
import { login } from './actions';
import packageJson from '@/package.json';

export default function LoginPage() {
  const [state, loginAction, isPending] = useActionState(login, undefined);

  const version = packageJson.version;
  const buildDate = process.env.NEXT_PUBLIC_BUILD_DATE || new Date().toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' });

  return (
    <div className="min-h-screen bg-white py-4 px-4">
      <main className="max-w-6xl mx-auto border-2 border-black rounded-lg p-6 bg-[#FFFFDD]">
        <div className="flex justify-between items-center mb-6">
          <h1 className="text-3xl font-bold">Ausgaben - Log</h1>
        </div>

        <div className="flex justify-center py-10">
          <div className="w-full max-w-sm bg-white border border-gray-300 rounded-xl shadow-md p-8">
            <h2 className="text-xl font-semibold text-gray-900 mb-6 text-center">Anmeldung</h2>

            <form action={loginAction} className="space-y-5">
              <div>
                <label
                  htmlFor="username"
                  className="block text-sm font-medium text-gray-700 mb-1"
                >
                  Benutzername
                </label>
                <input
                  id="username"
                  name="username"
                  type="text"
                  required
                  autoComplete="off"
                  className="w-full px-3 py-2 border-2 border-gray-400 rounded-lg bg-white text-gray-900 focus:border-blue-500 focus:outline-none text-sm"
                  placeholder="Benutzername"
                  disabled={isPending}
                />
              </div>

              <div>
                <label
                  htmlFor="password"
                  className="block text-sm font-medium text-gray-700 mb-1"
                >
                  Passwort
                </label>
                <input
                  id="password"
                  name="password"
                  type="password"
                  required
                  autoComplete="new-password"
                  className="w-full px-3 py-2 border-2 border-gray-400 rounded-lg bg-white text-gray-900 focus:border-blue-500 focus:outline-none text-sm"
                  placeholder="Passwort"
                  disabled={isPending}
                />
              </div>

              {state?.error && (
                <div className="bg-red-50 border border-red-300 text-red-700 px-3 py-2 rounded-lg text-sm">
                  {state.error}
                </div>
              )}

              <button
                type="submit"
                disabled={isPending}
                className="w-full py-2 px-4 bg-[#85B7D7] hover:bg-[#6a9fc5] text-black font-medium rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed text-sm"
              >
                {isPending ? 'Anmeldung läuft...' : 'Anmelden'}
              </button>
            </form>
          </div>
        </div>

        {/* Footer */}
        <footer className="mt-8 flex justify-between items-center text-sm text-gray-600 px-4 ">
          <div>
            <a href="mailto:rxf@gmx.de" className="text-blue-600 hover:underline">
              mailto:rxf@gmx.de
            </a>
          </div>
          <div className="text-right">
            Version {version} - {buildDate}
          </div>
        </footer>
      </main>
    </div>
  );
}

