07
Camera
remote shutter — capture over WiFi
{photos.length} frame(s)
{photos.length === 0
?
No frames yet — hit the shutter. The board captures on its next ~1 s poll, then uploads.
:
{photos.map(p => (
p.ok && setFull(p.id)}
style={{ flex: 'none', cursor: p.ok ? 'pointer' : 'default', textAlign: 'center' }}>
{p.ok
?

:
capture failed
}
{p.res || '—'}
))}
}
{full != null && (
setFull(null)}
style={{ position: 'fixed', inset: 0, background: 'rgba(0,0,0,0.85)', zIndex: 80, display: 'flex',
alignItems: 'center', justifyContent: 'center', cursor: 'zoom-out' }}>
)}
);
}
window.CameraTab = CameraTab;