import type { RenderResponse } from '../worker/renderWorker'; export default function DiagnosticsPanel({ result }: { result: RenderResponse }) { const d = result.diag; return (
Partials {d.partialsHz.map((f) => f.toFixed(0)).join(', ')} Hz
Ratios {d.ratios.map((r) => r.toFixed(2)).join(', ')}
Helmholtz {d.helmholtzHz.toFixed(0)} Hz
Contact {d.contactMs.toFixed(3)} ms, peak {d.peakForceN.toFixed(0)} N
Listener {(d.listenerDistM * 100).toFixed(0)} cm from block centre
Peak pressure {d.peakPa.toFixed(3)} Pa ({d.peakSplDb.toFixed(1)} dB SPL)
Quality {result.quality} · oversample {d.oversample} · {d.elements} elements
solve: {d.solveCached ? 'cached' : `${(d.solveMs / 1000).toFixed(2)} s`} · radiation:{' '} {d.radiateCached ? 'cached' : `${(d.radiateMs / 1000).toFixed(2)} s`}
{d.warnings.map((w, i) => (
⚠ {w}
))}
); }