From bccbcc12c72f5edde605601a311646d1ca96d7e1 Mon Sep 17 00:00:00 2001 From: James Barnett Date: Thu, 31 Jul 2025 16:04:04 +0100 Subject: Add CPU performance benchmarking --- src/ui/index.ts | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/ui/index.ts (limited to 'src/ui/index.ts') diff --git a/src/ui/index.ts b/src/ui/index.ts new file mode 100644 index 0000000..683d114 --- /dev/null +++ b/src/ui/index.ts @@ -0,0 +1,51 @@ +import * as DemoView from "./demoView"; +import * as BenchmarkView from "./benchmarkView"; + +let chartInitialised = false; + +function registerEventListeners() { + document.getElementById('demo-tab')!.addEventListener('click', (ev) => { + ev.preventDefault(); + setActiveTab('demo'); + }); + + document.getElementById('benchmark-tab')!.addEventListener('click', (ev) => { + ev.preventDefault(); + setActiveTab('benchmark'); + }); + + DemoView.registerEventListeners(); + BenchmarkView.registerEventListeners(); +} + +function setActiveTab(tab: string) { + if (tab==='demo') { + document.getElementById('demo-mode')!.classList.remove('d-hide'); + document.getElementById('benchmark-mode')!.classList.add('d-hide'); + + document.getElementById('demo-tab')!.classList.add('active'); + document.getElementById('benchmark-tab')!.classList.remove('active'); + } else { + // benchmark + document.getElementById('demo-mode')!.classList.add('d-hide'); + document.getElementById('benchmark-mode')!.classList.remove('d-hide'); + + document.getElementById('demo-tab')!.classList.remove('active'); + document.getElementById('benchmark-tab')!.classList.add('active'); + + if (!chartInitialised) { + // Init on tab click rather than window load so DOM element has correct size and animations play + BenchmarkView.initChart(); + chartInitialised = true; + } + } +} + +document.addEventListener('DOMContentLoaded', () => { + registerEventListeners(); + if (window.location.hash === '#benchmark') { + setActiveTab('benchmark'); + } else { + DemoView.render(); + } +}); -- cgit v1.2.3