|
1 | | -import { useState } from 'react' |
2 | | -import { BarChart3, Package, Zap } from 'lucide-react' |
| 1 | +import { BrowserRouter, Routes, Route } from 'react-router-dom' |
3 | 2 | import './App.css' |
4 | | -import RolldownStats from './RolldownStats' |
5 | | -import MinificationBenchmarks from './MinificationBenchmarks' |
| 3 | +import Layout from './components/Layout' |
| 4 | +import RolldownStatsPage from './pages/RolldownStatsPage' |
| 5 | +import MinificationBenchmarksPage from './pages/MinificationBenchmarksPage' |
6 | 6 |
|
7 | 7 | function App() { |
8 | | - const [selectedPage, setSelectedPage] = useState('rolldown') |
9 | | - const [selectedMetric, setSelectedMetric] = useState('bundleSize') |
10 | | - |
11 | 8 | return ( |
12 | | - <div className="dashboard"> |
13 | | - <header className="dashboard-header"> |
14 | | - <div className="header-content"> |
15 | | - <div className="logo"> |
16 | | - <BarChart3 size={28} /> |
17 | | - <h1>{selectedPage === 'rolldown' ? 'Rolldown-Vite Dashboard' : 'Minification Benchmarks'}</h1> |
18 | | - </div> |
19 | | - <p className="header-subtitle"> |
20 | | - {selectedPage === 'rolldown' |
21 | | - ? 'Statistics collected from different Rolldown-Vite versions' |
22 | | - : 'Performance comparison of JavaScript minification tools'} |
23 | | - </p> |
24 | | - </div> |
25 | | - </header> |
26 | | - |
27 | | - {/* Page Navigation */} |
28 | | - <nav className="page-nav"> |
29 | | - <button |
30 | | - className={`page-button ${selectedPage === 'rolldown' ? 'active' : ''}`} |
31 | | - onClick={() => { |
32 | | - setSelectedPage('rolldown') |
33 | | - setSelectedMetric('bundleSize') |
34 | | - }} |
35 | | - > |
36 | | - <Package size={20} /> |
37 | | - Rolldown Stats |
38 | | - </button> |
39 | | - <button |
40 | | - className={`page-button ${selectedPage === 'minification' ? 'active' : ''}`} |
41 | | - onClick={() => { |
42 | | - setSelectedPage('minification') |
43 | | - setSelectedMetric('minTime') |
44 | | - }} |
45 | | - > |
46 | | - <Zap size={20} /> |
47 | | - Minification Benchmarks |
48 | | - </button> |
49 | | - </nav> |
50 | | - |
51 | | - {/* Render the appropriate component based on selected page */} |
52 | | - {selectedPage === 'rolldown' ? ( |
53 | | - <RolldownStats |
54 | | - selectedMetric={selectedMetric} |
55 | | - setSelectedMetric={setSelectedMetric} |
56 | | - /> |
57 | | - ) : ( |
58 | | - <MinificationBenchmarks |
59 | | - selectedMetric={selectedMetric} |
60 | | - setSelectedMetric={setSelectedMetric} |
61 | | - /> |
62 | | - )} |
63 | | - </div> |
| 9 | + <BrowserRouter basename="/vibe-dashboard"> |
| 10 | + <Routes> |
| 11 | + <Route path="/" element={<Layout />}> |
| 12 | + <Route index element={<RolldownStatsPage />} /> |
| 13 | + <Route path="minification" element={<MinificationBenchmarksPage />} /> |
| 14 | + </Route> |
| 15 | + </Routes> |
| 16 | + </BrowserRouter> |
64 | 17 | ) |
65 | 18 | } |
66 | 19 |
|
|
0 commit comments