/* eslint-disable @typescript-eslint/no-explicit-any */
"use client"

import styles from "./admin-row.module.scss"
import { formatDate } from "@/lib/utils/format-date"
import { truncateEmail } from "@/lib/utils/truncate-email"

interface AdminRowProps {
  admin: {
    id: string | number
    name: string
    email: string
    role?: string
    created_at?: string
  }
  onEdit: (admin: any) => void
  onDelete: (admin: any) => void
}

const AdminTableRow: React.FC<AdminRowProps> = ({ admin, onEdit, onDelete }) => {
  const { name, email, role = "admin", created_at } = admin

  return (
    <div className={styles["admin__row"]}>
      <div>{name}</div>
      <div>{truncateEmail(email)}</div>
      <div>{role.toUpperCase()}</div>
      <div>{created_at ? formatDate(created_at) : "N/A"}</div>
      <div className={ styles["admin__row--active"]}>{"Active"}</div>
      <div className={styles["admin__row--actions"]}>
        <button
          className={styles["admin__row--edit"]}
          onClick={() => onEdit(admin)}
        >
          Edit
        </button>
        <button
          className={styles["admin__row--delete"]}
          onClick={() => onDelete(admin)}
        >
          Delete
        </button>
      </div>
    </div>
  )
}

export default AdminTableRow
