import React, { useEffect } from 'react'; import { Box } from 'ink'; import { AuthProvider, useAuth } from './state/auth-context.js'; import { NavigationProvider, useNavigation } from './state/navigation-context.js'; import { LoginScreen } from './components/auth/LoginScreen.js'; import { MainMenu } from './components/MainMenu.js'; import { MainLayout } from './components/layout/MainLayout.js'; import { LoadingSpinner } from './components/shared/LoadingSpinner.js'; import { UserListScreen } from './components/users/UserListScreen.js'; import { UserCreateScreen } from './components/users/UserCreateScreen.js'; import { UserDetailScreen } from './components/users/UserDetailScreen.js'; import { ChangePasswordScreen } from './components/users/ChangePasswordScreen.js'; import { RoleListScreen } from './components/roles/RoleListScreen.js'; import { RoleDetailScreen } from './components/roles/RoleDetailScreen.js'; // Stammdaten import { MasterdataMenu } from './components/masterdata/MasterdataMenu.js'; import { CategoryListScreen } from './components/masterdata/categories/CategoryListScreen.js'; import { CategoryDetailScreen } from './components/masterdata/categories/CategoryDetailScreen.js'; import { CategoryCreateScreen } from './components/masterdata/categories/CategoryCreateScreen.js'; import { SupplierListScreen } from './components/masterdata/suppliers/SupplierListScreen.js'; import { SupplierDetailScreen } from './components/masterdata/suppliers/SupplierDetailScreen.js'; import { SupplierCreateScreen } from './components/masterdata/suppliers/SupplierCreateScreen.js'; import { RateSupplierScreen } from './components/masterdata/suppliers/RateSupplierScreen.js'; import { AddCertificateScreen } from './components/masterdata/suppliers/AddCertificateScreen.js'; import { ArticleListScreen } from './components/masterdata/articles/ArticleListScreen.js'; import { ArticleDetailScreen } from './components/masterdata/articles/ArticleDetailScreen.js'; import { ArticleCreateScreen } from './components/masterdata/articles/ArticleCreateScreen.js'; import { AddSalesUnitScreen } from './components/masterdata/articles/AddSalesUnitScreen.js'; import { CustomerListScreen } from './components/masterdata/customers/CustomerListScreen.js'; import { CustomerDetailScreen } from './components/masterdata/customers/CustomerDetailScreen.js'; import { CustomerCreateScreen } from './components/masterdata/customers/CustomerCreateScreen.js'; import { AddDeliveryAddressScreen } from './components/masterdata/customers/AddDeliveryAddressScreen.js'; import { SetPreferencesScreen } from './components/masterdata/customers/SetPreferencesScreen.js'; // Lagerverwaltung import { InventoryMenu } from './components/inventory/InventoryMenu.js'; import { StorageLocationListScreen } from './components/inventory/StorageLocationListScreen.js'; import { StorageLocationCreateScreen } from './components/inventory/StorageLocationCreateScreen.js'; import { StorageLocationDetailScreen } from './components/inventory/StorageLocationDetailScreen.js'; // Produktion import { ProductionMenu } from './components/production/ProductionMenu.js'; import { RecipeListScreen } from './components/production/RecipeListScreen.js'; import { RecipeCreateScreen } from './components/production/RecipeCreateScreen.js'; import { RecipeDetailScreen } from './components/production/RecipeDetailScreen.js'; import { AddProductionStepScreen } from './components/production/AddProductionStepScreen.js'; function ScreenRouter() { const { isAuthenticated, loading } = useAuth(); const { current, navigate } = useNavigation(); // Redirect zu main-menu nach erfolgreichem Login useEffect(() => { if (isAuthenticated && current === 'login') { navigate('main-menu'); } }, [isAuthenticated, current, navigate]); if (loading) { return ( ); } if (!isAuthenticated) { return ( ); } return ( {current === 'main-menu' && } {current === 'user-list' && } {current === 'user-create' && } {current === 'user-detail' && } {current === 'change-password' && } {current === 'role-list' && } {current === 'role-detail' && } {/* Stammdaten */} {current === 'masterdata-menu' && } {current === 'category-list' && } {current === 'category-detail' && } {current === 'category-create' && } {current === 'supplier-list' && } {current === 'supplier-detail' && } {current === 'supplier-create' && } {current === 'supplier-rate' && } {current === 'supplier-add-certificate' && } {current === 'article-list' && } {current === 'article-detail' && } {current === 'article-create' && } {current === 'article-add-sales-unit' && } {current === 'customer-list' && } {current === 'customer-detail' && } {current === 'customer-create' && } {current === 'customer-add-delivery-address' && } {current === 'customer-set-preferences' && } {/* Lagerverwaltung */} {current === 'inventory-menu' && } {current === 'storage-location-list' && } {current === 'storage-location-create' && } {current === 'storage-location-detail' && } {/* Produktion */} {current === 'production-menu' && } {current === 'recipe-list' && } {current === 'recipe-create' && } {current === 'recipe-detail' && } {current === 'recipe-add-production-step' && } ); } export function App() { return ( ); }