import React, { useState } from 'react'; import { Box, Text, useInput } from 'ink'; import { useNavigation } from '../../state/navigation-context.js'; import type { Screen } from '../../state/navigation-context.js'; interface MenuItem { label: string; screen: Screen; description: string; } const MENU_ITEMS: MenuItem[] = [ { label: 'Rezepte', screen: 'recipe-list', description: 'Rezepte anlegen und verwalten' }, { label: 'Chargen', screen: 'batch-list', description: 'Produktionschargen planen, starten und abschließen' }, ]; export function ProductionMenu() { const { navigate, back } = useNavigation(); const [selectedIndex, setSelectedIndex] = useState(0); useInput((_input, key) => { if (key.upArrow) setSelectedIndex((i) => Math.max(0, i - 1)); if (key.downArrow) setSelectedIndex((i) => Math.min(MENU_ITEMS.length - 1, i + 1)); if (key.return) { const item = MENU_ITEMS[selectedIndex]; if (item) navigate(item.screen); } if (key.backspace || key.escape) back(); }); return ( Produktion {MENU_ITEMS.map((item, index) => ( {index === selectedIndex ? '▶ ' : ' '} {item.label} {index === selectedIndex && ( {item.description} )} ))} ↑↓ navigieren · Enter auswählen · Backspace Zurück ); }