import React, { useEffect, useState } from 'react'; import api from '../lib/api'; export default function TimeclockPage() { const [logs, setLogs] = useState([]); const [status, setStatus] = useState<'CLOCKED_OUT' | 'CLOCKED_IN'>('CLOCKED_OUT'); useEffect(() => { fetchLogs(); }, []); const fetchLogs = async () => { try { const { data } = await api.get('/timeclock/logs'); setLogs(data); // Determine status const active = data.find((l: any) => !l.endTime); setStatus(active ? 'CLOCKED_IN' : 'CLOCKED_OUT'); } catch (e) { console.error(e); } }; const handleClock = async (action: 'in' | 'out') => { try { if (action === 'in') { await api.post('/timeclock/clock-in', { activityType: 'General' }); } else { await api.post('/timeclock/clock-out', {}); } await fetchLogs(); } catch (e: any) { alert(e.response?.data?.message || 'Error clocking'); } }; return (

Time Clock

{new Date().toLocaleDateString()} {new Date().toLocaleTimeString()}

Current Status
{status.replace('_', ' ')}

Recent Logs

{logs.map(log => ( ))}
Date Start End Activity
{new Date(log.startTime).toLocaleDateString()} {new Date(log.startTime).toLocaleTimeString()} {log.endTime ? new Date(log.endTime).toLocaleTimeString() : '-'} {log.activityType}
); }