"use client";

import { useParams } from "next/navigation";
import useSWR from "swr";
import UserForm from "@/components/admin/UserForm";
import AdminUsersService from "@/services/admin.users.service";
import type { User } from "@/types/auth.type";
import { Skeleton } from "@/components/ui/skeleton";

export default function EditUserPage() {
  const params = useParams();
  const userId = params.id as string;

  const { data: users, isLoading } = useSWR<User[]>(
    "/admin/users",
    async () => {
      const response = await AdminUsersService.getAll();
      return response.data || [];
    }
  );

  const user = users?.find((u) => u.id === userId);

  if (isLoading) {
    return (
      <div className="space-y-6">
        <div className="flex items-center justify-between">
          <div>
            <Skeleton className="h-8 w-48" />
            <Skeleton className="h-4 w-64 mt-2" />
          </div>
          <Skeleton className="h-10 w-24" />
        </div>
        <Skeleton className="h-96" />
      </div>
    );
  }

  if (!user) {
    return (
      <div className="text-center py-12">
        <h1 className="text-2xl font-bold text-slate-900">User tidak ditemukan</h1>
        <p className="text-slate-500 mt-2">User dengan ID tersebut tidak ada.</p>
      </div>
    );
  }

  return <UserForm user={user} mode="edit" />;
}
