import { AdminAutoTextarea } from "@/admin/components/AdminAutoTextarea";
import { AdminFormField, AdminFormSection } from "@/admin/components/AdminFormField";
import { changeAdminPasswordAction, saveAdminProfileAction } from "@/lib/actions";

type AdminProfileFormsProps = {
  bio: string | null;
  email: string;
  name: string;
};

export function AdminProfileForm({ bio, email, name }: AdminProfileFormsProps) {
  return (
    <form action={saveAdminProfileAction} className="admin-form glass-panel">
      <AdminFormSection title="Personal information" />

      <AdminFormField label="Full name">
        <input
          className="admin-form-control"
          defaultValue={name}
          name="name"
          placeholder="Your full name"
          required
        />
      </AdminFormField>

      <AdminFormField label="Email address">
        <input
          className="admin-form-control"
          defaultValue={email}
          name="email"
          placeholder="admin@justchillnepal.com"
          required
          type="email"
        />
      </AdminFormField>

      <AdminFormField
        hint="Optional. Shown where your admin profile is visible on the site."
        label="About you"
        span="full"
      >
        <AdminAutoTextarea
          defaultValue={bio ?? ""}
          name="bio"
          placeholder="Write a short bio about yourself…"
          variant="compact"
        />
      </AdminFormField>

      <button className="admin-btn admin-btn-modify admin-form__submit" type="submit">
        Save profile
      </button>
    </form>
  );
}

export function AdminPasswordForm() {
  return (
    <form action={changeAdminPasswordAction} className="admin-form glass-panel">
      <AdminFormSection title="Change password" />

      <AdminFormField label="Current password">
        <input
          className="admin-form-control"
          name="currentPassword"
          placeholder="Enter current password"
          required
          type="password"
        />
      </AdminFormField>

      <AdminFormField hint="At least 8 characters." label="New password">
        <input
          className="admin-form-control"
          minLength={8}
          name="newPassword"
          placeholder="Create a new password"
          required
          type="password"
        />
      </AdminFormField>

      <AdminFormField label="Confirm new password" span="full">
        <input
          className="admin-form-control"
          minLength={8}
          name="confirmPassword"
          placeholder="Repeat new password"
          required
          type="password"
        />
      </AdminFormField>

      <button className="admin-btn admin-btn-modify admin-form__submit" type="submit">
        Update password
      </button>
    </form>
  );
}
