import React, { useState } from 'react'; import { IOPoint } from '../types'; interface IOMonitorPageProps { ioPoints: IOPoint[]; onToggle: (id: number, type: 'input' | 'output') => void; activeIOTab: 'in' | 'out'; onIOTabChange: (tab: 'in' | 'out') => void; } export const IOMonitorPage: React.FC = ({ ioPoints, onToggle, activeIOTab, onIOTabChange }) => { const points = ioPoints.filter(p => p.type === (activeIOTab === 'in' ? 'input' : 'output')); return (
{/* Local Header / Controls */}

SYSTEM I/O MONITOR

TOTAL POINTS: {ioPoints.length}
{/* Grid Layout - More columns for full screen */} {/* Grid Layout - 2 Columns for list view */}
{points.map(p => (
onToggle(p.id, p.type)} className={` flex items-center gap-4 px-4 py-3 cursor-pointer transition-all border clip-tech-sm group hover:translate-x-1 ${p.state ? (p.type === 'output' ? 'bg-neon-green/10 border-neon-green text-neon-green shadow-[0_0_15px_rgba(10,255,0,0.2)]' : 'bg-neon-yellow/10 border-neon-yellow text-neon-yellow shadow-[0_0_15px_rgba(255,230,0,0.2)]') : 'bg-slate-900/40 border-slate-800 text-slate-500 hover:border-slate-600 hover:bg-slate-800/40'} `} > {/* LED Indicator */}
{/* ID Badge */}
{p.type === 'input' ? 'I' : 'Q'}{p.id.toString().padStart(2, '0')}
{/* Name */}
{p.name}
))}
); };