diff --git a/src/app/App.tsx b/src/app/App.tsx index 5219242..d181729 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1,5 +1,5 @@ import { useState } from 'react'; -import { Cpu, Settings, Wifi, Network, HardDrive, Activity, MoreHorizontal, Search, Wrench, User, LogOut, Bell, FileText, AppWindow } from 'lucide-react'; +import { Cpu, Settings, Wifi, Network, HardDrive, Activity, MoreHorizontal, Search, Wrench, User, LogOut, Bell, FileText, AppWindow, Folder, Edit, Eye, Database, Upload, Download, Code2, LayoutList, Image, ChevronLeft, Loader2 } from 'lucide-react'; import { Toaster } from 'sonner'; import StatusPage from './components/StatusPage'; import DevicesPage from './components/DevicesPage'; @@ -12,7 +12,23 @@ import SearchOverlay from './components/SearchOverlay'; import logoSvg from '../imports/logo.svg'; import configData from '../imports/config.json'; -type Page = 'status' | 'devices' | 'iec' | 'network' | 'other' | 'general' | 'tools' | 'apps'; +type Page = 'status' | 'devices' | 'iec' | 'network' | 'other' | 'general' | 'tools' | 'apps' | AppId; + +type AppId = + | 'directory-editor' + | 'sector-editor' + | 'bam-editor' + | 'disk-visualizer' + | 'ramrom-explorer' + | 'dump-disk-image' + | 'write-disk-image' + | 'basic-editor' + | 'assembler' + | 'sprite-editor' + | 'charset-editor' + | 'petscii-editor' + | 'idle-animation' + | 'loading-animation'; export default function App() { const [currentPage, setCurrentPage] = useState('status'); @@ -28,9 +44,93 @@ export default function App() { other: , general: , tools: , - apps:
Apps page coming soon...
+ apps: ( +
+

Apps

+
+ {/* Disk Group */} +
+

Disk

+
+ } label="Directory Editor" onClick={() => setCurrentPage('directory-editor')} /> + } label="Sector Editor" onClick={() => setCurrentPage('sector-editor')} /> + } label="BAM Editor" onClick={() => setCurrentPage('bam-editor')} /> + } label="Disk Visualizer" onClick={() => setCurrentPage('disk-visualizer')} /> + } label="RAM/ROM Explorer" onClick={() => setCurrentPage('ramrom-explorer')} /> + } label="Dump Disk Image" onClick={() => setCurrentPage('dump-disk-image')} /> + } label="Write Disk Image" onClick={() => setCurrentPage('write-disk-image')} /> +
+
+ {/* Development Group */} +
+

Development

+
+ } label="Basic Editor" onClick={() => setCurrentPage('basic-editor')} /> + } label="Assembler" onClick={() => setCurrentPage('assembler')} /> + } label="Sprite Editor" onClick={() => setCurrentPage('sprite-editor')} /> + } label="Character Set Editor" onClick={() => setCurrentPage('charset-editor')} /> + } label="Petscii Editor" onClick={() => setCurrentPage('petscii-editor')} /> +
+
+ {/* Display Group */} +
+

Display

+
+ } label="Idle Animation" onClick={() => setCurrentPage('idle-animation')} /> + } label="Loading Animation" onClick={() => setCurrentPage('loading-animation')} /> +
+
+
+
+ ), + // Individual app pages + 'directory-editor': setCurrentPage('apps')} />, + 'sector-editor': setCurrentPage('apps')} />, + 'bam-editor': setCurrentPage('apps')} />, + 'disk-visualizer': setCurrentPage('apps')} />, + 'ramrom-explorer': setCurrentPage('apps')} />, + 'dump-disk-image': setCurrentPage('apps')} />, + 'write-disk-image': setCurrentPage('apps')} />, + 'basic-editor': setCurrentPage('apps')} />, + 'assembler': setCurrentPage('apps')} />, + 'sprite-editor': setCurrentPage('apps')} />, + 'charset-editor': setCurrentPage('apps')} />, + 'petscii-editor': setCurrentPage('apps')} />, + 'idle-animation': setCurrentPage('apps')} />, + 'loading-animation': setCurrentPage('apps')} /> }; +// AppCard component for app grid +function AppCard({ icon, label, onClick }: { icon: React.ReactNode; label: string; onClick: () => void }) { + return ( + + ); +} + +// AppPage component for individual app pages +function AppPage({ title, onBack }: { title: string; onBack: () => void }) { + return ( +
+ +

{title}

+
+ {title} coming soon... +
+
+ ); +} + return (