import 'package:flutter/material.dart'; import '../services/app_preferences.dart'; import '../theme/app_theme.dart'; import 'onboarding/onboarding_screen.dart'; import 'shell/main_shell_screen.dart'; /// Zeigt einmalig das Onboarding, danach die Haupt-App. class AppLoggedInGate extends StatefulWidget { const AppLoggedInGate({super.key, required this.onLoggedOut}); final VoidCallback onLoggedOut; @override State createState() => _AppLoggedInGateState(); } class _AppLoggedInGateState extends State { bool _prefsReady = false; bool _onboardingDone = false; @override void initState() { super.initState(); _loadPrefs(); } Future _loadPrefs() async { final done = await AppPreferences.isOnboardingDone(); if (!mounted) return; setState(() { _onboardingDone = done; _prefsReady = true; }); } @override Widget build(BuildContext context) { if (!_prefsReady) { return const Scaffold( backgroundColor: AppTheme.background, body: Center(child: CircularProgressIndicator()), ); } if (!_onboardingDone) { return OnboardingScreen( onComplete: () async { await AppPreferences.setOnboardingDone(); if (mounted) setState(() => _onboardingDone = true); }, ); } return MainShellScreen(onLoggedOut: widget.onLoggedOut); } }