import React from "react";
import { useLeadChannels } from "@/hooks/use-lead-channels";
import { Loading } from "@/components/ui/loading";

export const LeadChannelsExample: React.FC = () => {
  const { data, isLoading, error, isValid, refetch } = useLeadChannels();

  if (isLoading) {
    return (
      <Loading className="p-8" message="Loading lead channels…" />
    );
  }

  if (error) {
    return (
      <div className="p-4 border border-red-200 rounded-lg bg-red-50">
        <div className="text-sm text-red-800">Error: {error}</div>
        <button
          onClick={refetch}
          className="mt-2 px-3 py-1 text-xs bg-red-600 text-white rounded hover:bg-red-700"
        >
          Retry
        </button>
      </div>
    );
  }

  return (
    <div className="p-6">
      <div className="flex items-center justify-between mb-4">
        <h2 className="text-lg font-semibold">Lead Channels</h2>
        <div className="flex items-center gap-2">
          <span
            className={`px-2 py-1 text-xs rounded-full ${
              isValid
                ? "bg-green-100 text-green-800"
                : "bg-yellow-100 text-yellow-800"
            }`}
          >
            {isValid ? "Validated" : "Validation Failed"}
          </span>
          <button
            onClick={refetch}
            className="px-3 py-1 text-sm bg-blue-600 text-white rounded hover:bg-blue-700"
          >
            Refresh
          </button>
        </div>
      </div>

      {data.length === 0 ? (
        <div className="text-center py-8 text-gray-500">
          No lead channels found
        </div>
      ) : (
        <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
          {data.map((channel) => (
            <div
              key={channel.id}
              className="p-4 border border-gray-200 rounded-lg hover:shadow-md transition-shadow"
            >
              <h3 className="font-medium text-gray-900">{channel.name}</h3>
              <div className="mt-2 text-xs text-gray-500">
                <div>ID: {channel.id}</div>
                <div>Created: {channel.createdAt ? new Date(channel.createdAt).toLocaleDateString() : "N/A"}</div>
                <div>Updated: {channel.updatedAt ? new Date(channel.updatedAt).toLocaleDateString() : "N/A"}</div>
                <div
                  className={`font-medium ${
                    channel.isDeleted ? "text-red-600" : "text-green-600"
                  }`}
                >
                  Status: {channel.isDeleted ? "Deleted" : "Active"}
                </div>
              </div>
            </div>
          ))}
        </div>
      )}
    </div>
  );
};
