'use client';

import { X, History } from 'lucide-react';
import { cn } from '@/lib/utils'; // Assuming this exists or I'll use the local cn

interface LogsOverlayProps {
  show: boolean;
  onClose: () => void;
  logs: any[];
  inventory: any[];
}

export default function LogsOverlay({ show, onClose, logs, inventory }: LogsOverlayProps) {
  if (!show) return null;

  return (
    <div className="fixed inset-0 z-50 flex flex-col bg-background p-6 lg:p-8 xl:p-10 animate-in slide-in-from-bottom-20 duration-500">
      <div className="flex justify-between items-center mb-8">
        <div>
          <h2 className="text-2xl lg:text-3xl xl:text-4xl font-black tracking-tight">Audit History</h2>
          <p className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl text-muted">Live transaction log from cloud</p>
        </div>
        <button 
          onClick={onClose}
          className="p-3 lg:p-4 xl:p-5 lg:p-6 xl:p-8 bg-surface rounded-full text-secondary"
        >
          <X size={24} />
        </button>
      </div>

      <div className="flex-1 overflow-y-auto space-y-4 pr-2 custom-scrollbar">
        {logs.length === 0 ? (
          <div className="h-full flex flex-col items-center justify-center text-secondary gap-4">
             <History size={48} className="opacity-20" />
             <p>No transactions found</p>
          </div>
        ) : (
          logs.map((log) => (
            <div key={log.id} className="bg-surface/70 border border-slate-800 p-4 lg:p-5 xl:p-6 lg:p-8 xl:p-10 rounded-2xl flex items-center justify-between gap-4">
              <div className="flex-1 min-w-0">
                <div className="flex items-center gap-2 mb-1">
                  <p className={`text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-black ${
                    log.action.includes('CHECK_IN') ? "text-green-500" : (log.action.includes('TRASH') ? "text-rose-500" : "text-amber-500")
                  }`}>
                    {log.action}
                  </p>
                  <span className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-bold text-muted">by</span>
                  <span className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl font-black text-secondary">{log.username || 'System'}</span>
                </div>
                <div className="flex items-center gap-2">
                  <span className="text-sm lg:text-base xl:text-lg lg:text-xl xl:text-2xl lg:text-3xl xl:text-4xl font-bold text-secondary">
                     {inventory.find(i => i.id === log.target_item_id)?.name || `Item #${log.target_item_id}`}
                  </span>
                </div>
                {(log.details || log.timestamp) && (
                  <div className="flex items-center gap-3 mt-2">
                     <p className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl text-secondary font-mono">
                      {new Date(log.timestamp).toLocaleString()}
                    </p>
                    {log.details && (
                      <span className="text-xs lg:text-sm xl:text-base lg:text-lg xl:text-xl lg:text-2xl xl:text-3xl lg:text-4xl xl:text-5xl bg-slate-800 text-muted px-2 py-0.5 rounded border border-slate-700 font-mono">
                        {log.details}
                      </span>
                    )}
                  </div>
                )}
              </div>
              <div className="text-right">
                <p className={`text-lg lg:text-xl xl:text-2xl lg:text-3xl xl:text-4xl font-black ${
                  log.quantity_change > 0 ? "text-green-400" : "text-rose-400"
                }`}>
                  {log.quantity_change > 0 ? '+' : ''}{log.quantity_change}
                </p>
              </div>
            </div>
          ))
        )}
      </div>
    </div>
  );
}
