import React, { useState } from 'react';

const s = {
    wrapper:  { marginTop: '24px' },
    title:    { color: '#b5b5c0', fontSize: '16px', fontWeight: 700, marginBottom: '10px' },
    table:    { width: '100%', borderCollapse: 'collapse', fontSize: '13px', background: '#111217', borderRadius: '6px', overflow: 'hidden', border: '1px solid #222' },
    th:       { background: '#000000', color: '#f8f9fa', padding: '8px 10px', textAlign: 'left', fontSize: '12px', fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.5px' },
    td:       { padding: '8px 10px', borderBottom: '1px solid #1c1d29', color: '#f8f9fa', verticalAlign: 'middle' },
    trEven:   { background: '#111217' },
    trOdd:    { background: '#151622' },
    pts:      { fontWeight: 700, color: '#667eea' },
    toggle:   { background: 'none', border: 'none', color: '#667eea', cursor: 'pointer', fontSize: '13px', padding: 0, textDecoration: 'underline' },
    empty:    { color: '#77798a', fontStyle: 'italic', fontSize: '13px', marginTop: '8px' },
};

function formatDate(d) {
    if (!d) return '–';
    const dt = new Date(d + 'T12:00:00');
    return dt.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric', timeZone: 'America/Chicago' });
}

export default function ViolationHistory({ history, loading }) {
    const [expanded, setExpanded] = useState(false);
    const visible = expanded ? history : history.slice(0, 5);

    if (loading) return <p style={s.empty}>Loading history...</p>;
    if (!history.length) return <p style={s.empty}>No violations on record for this employee.</p>;

    return (
        <div style={s.wrapper}>
            <div style={s.title}>Recent Violations ({history.length} total)</div>
            <table style={s.table}>
                <thead>
                    <tr>
                        <th style={s.th}>Date</th>
                        <th style={s.th}>Violation</th>
                        <th style={s.th}>Category</th>
                        <th style={s.th}>Points</th>
                        <th style={s.th}>Details</th>
                    </tr>
                </thead>
                <tbody>
                    {visible.map((v, i) => (
                        <tr key={v.id} style={i % 2 === 0 ? s.trEven : s.trOdd}>
                            <td style={s.td}>{formatDate(v.incident_date)}</td>
                            <td style={s.td}>{v.violation_name}</td>
                            <td style={{ ...s.td, color: '#c0c2d6' }}>{v.category}</td>
                            <td style={{ ...s.td, ...s.pts }}>{v.points}</td>
                            <td style={{ ...s.td, color: '#c0c2d6' }}>{v.details || '–'}</td>
                        </tr>
                    ))}
                </tbody>
            </table>
            {history.length > 5 && (
                <div style={{ marginTop: '8px' }}>
                    <button style={s.toggle} onClick={() => setExpanded(e => !e)}>
                        {expanded ? '▲ Show less' : `▼ Show all ${history.length} violations`}
                    </button>
                </div>
            )}
        </div>
    );
}
