Skip to content

Commit 570aef1

Browse files
code-rootclaude
andcommitted
feat: add Firmware page + navigation
- New FirmwareTools page with header - Add /firmware route to App.tsx - Add Firmware nav link to Sidebar - Download icon in sidebar navigation Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
1 parent 66345b2 commit 570aef1

3 files changed

Lines changed: 38 additions & 1 deletion

File tree

frontend/src/App.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Devices from './pages/Devices'
66
import DeviceDetail from './pages/DeviceDetail'
77
import Settings from './pages/Settings'
88
import AppStore from './pages/AppStore'
9+
import FirmwareTools from './pages/FirmwareTools'
910
import Sidebar from './components/Sidebar'
1011
import type { ReactNode } from 'react'
1112

@@ -173,6 +174,16 @@ export default function App() {
173174
</ProtectedRoute>
174175
}
175176
/>
177+
<Route
178+
path="/firmware"
179+
element={
180+
<ProtectedRoute>
181+
<AppLayout>
182+
<FirmwareTools />
183+
</AppLayout>
184+
</ProtectedRoute>
185+
}
186+
/>
176187
<Route path="*" element={<Navigate to="/dashboard" replace />} />
177188
</Routes>
178189
</BrowserRouter>

frontend/src/components/Sidebar.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { useState } from 'react'
22
import { NavLink, useNavigate } from 'react-router-dom'
3-
import { Smartphone, LayoutDashboard, Cpu, Settings, LogOut, ChevronLeft, ChevronRight, Package } from 'lucide-react'
3+
import { Smartphone, LayoutDashboard, Cpu, Settings, LogOut, ChevronLeft, ChevronRight, Package, Download } from 'lucide-react'
44
import { useAuthStore } from '../store/auth'
55
import clsx from 'clsx'
66

77
const NAV_ITEMS = [
88
{ to: '/dashboard', label: 'Dashboard', icon: <LayoutDashboard className="w-5 h-5" /> },
99
{ to: '/devices', label: 'Devices', icon: <Cpu className="w-5 h-5" /> },
10+
{ to: '/firmware', label: 'Firmware', icon: <Download className="w-5 h-5" /> },
1011
{ to: '/store', label: 'App Store', icon: <Package className="w-5 h-5" /> },
1112
{ to: '/settings', label: 'Settings', icon: <Settings className="w-5 h-5" /> },
1213
]
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { ArrowLeft } from 'lucide-react'
2+
import { useNavigate } from 'react-router-dom'
3+
import FirmwareManager from '../components/FirmwareManager'
4+
5+
export default function FirmwareTools() {
6+
const navigate = useNavigate()
7+
8+
return (
9+
<div className="p-6 mx-auto max-w-6xl">
10+
{/* Header */}
11+
<div className="flex items-center gap-3 mb-6">
12+
<button onClick={() => navigate('/devices')} className="btn-secondary btn-sm">
13+
<ArrowLeft className="w-4 h-4" />
14+
</button>
15+
<div>
16+
<h1 className="text-2xl font-bold text-gray-100">Firmware Manager</h1>
17+
<p className="text-gray-400 text-sm mt-1">Download and verify Samsung firmware</p>
18+
</div>
19+
</div>
20+
21+
{/* Manager */}
22+
<FirmwareManager />
23+
</div>
24+
)
25+
}

0 commit comments

Comments
 (0)