import { useState, useEffect } from 'react'; import { X, Bug } from 'lucide-react'; import { ResourcesTab } from './ResourcesTab'; import { TimeCompletionTab } from './TimeCompletionTab'; import { StateInspectionTab } from './StateInspectionTab'; import { EventTriggersTab } from './EventTriggersTab'; type Tab = 'resources' | 'time' | 'inspect' | 'events'; const TABS: { id: Tab; label: string }[] = [ { id: 'resources', label: 'Resources' }, { id: 'time', label: 'Time' }, { id: 'inspect', label: 'Inspect' }, { id: 'events', label: 'Events' }, ]; export function DevMenu() { const [isOpen, setIsOpen] = useState(false); const [activeTab, setActiveTab] = useState('resources'); const isEnabled = import.meta.env.DEV || localStorage.getItem('token-empire-dev-menu') === 'true'; useEffect(() => { if (!isEnabled) return; const handler = () => setIsOpen((o) => !o); window.addEventListener('toggle-dev-menu', handler); return () => window.removeEventListener('toggle-dev-menu', handler); }, [isEnabled]); if (!isEnabled || !isOpen) return null; return (
Dev Menu Ctrl+D
{TABS.map(({ id, label }) => ( ))}
{activeTab === 'resources' && } {activeTab === 'time' && } {activeTab === 'inspect' && } {activeTab === 'events' && }
); }