lib/main.dartDart
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
müssen VOR allen Deklarationen stehen)
import 'shop_page.dart';
import 'login_page.dart';
import 'constants.dart';
import 'custom_bottom_nav.dart';
import 'splash_screen.dart'; // Den neuen Splash Screen importieren
RouteObserver global (für Auto-Refresh per didPopNext etc.)
final RouteObserver<PageRoute<dynamic>> routeObserver = RouteObserver<PageRoute<dynamic>>();
void main() async {
WidgetsFlutterBinding.ensureInitialized();
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
title: AppConstants.appName,
theme: ThemeData(
primaryColor: AppConstants.mainColor,
colorScheme: ColorScheme.fromSeed(
seedColor: AppConstants.mainColor,
primary: AppConstants.mainColor,
),
scaffoldBackgroundColor: AppConstants.baseWhite,
useMaterial3: true,
),
RouteObserver aktivieren
navigatorObservers: [routeObserver],
// Wir starten jetzt direkt mit dem Splash Screen
home: const SplashScreen(),
));
}
// --- HELPER ---
String formatPrice(String? price) {
if (price == null || price.isEmpty) return "0,00";
double? val = double.tryParse(price);
return (val ?? 0).toStringAsFixed(2).replaceAll('.', ',');
}
// --- MAIN NAVIGATION ---
class MainNavigation extends StatefulWidget {
const MainNavigation({super.key});
@override
State<MainNavigation> createState() => _MainNavigationState();
}
class _MainNavigationState extends State<MainNavigation> {
int _currentIndex = 0;
final List<Widget> _pages = [const ShopPage()];
@override
Widget build(BuildContext context) {
return Scaffold(
body: _pages[0],
bottomNavigationBar: CustomBottomNav(
currentIndex: _currentIndex,
onTap: (index) {
setState(() => _currentIndex = index);
},
),
);
}
}