Files
geo_front/lib/main.dart
T
2026-07-05 12:42:04 +03:00

57 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'config/api.dart';
import 'providers/auth_provider.dart';
import 'providers/map_provider.dart';
import 'providers/share_provider.dart';
import 'screens/login_screen.dart';
import 'screens/map_screen.dart';
import 'services/background_geo_service.dart';
import 'services/settings_service.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final settings = SettingsService();
await settings.initialize();
ApiConfig.setBaseUrl(settings.baseUrl);
final bgGeo = BackgroundGeoService();
await bgGeo.init();
runApp(MyApp(settingsService: settings, bgGeo: bgGeo));
}
class MyApp extends StatelessWidget {
final SettingsService settingsService;
final BackgroundGeoService bgGeo;
const MyApp({
super.key,
required this.settingsService,
required this.bgGeo,
});
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
Provider.value(value: settingsService),
ChangeNotifierProvider(create: (_) => AuthProvider()),
ChangeNotifierProvider(create: (_) => MapProvider()),
ChangeNotifierProvider(create: (_) => ShareProvider()),
Provider.value(value: bgGeo),
],
child: MaterialApp(
title: 'Family Safety',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
supportedLocales: const [Locale('en', '')],
initialRoute: '/',
routes: {
'/': (_) => LoginScreen(),
'/map': (_) => const MapScreen(),
},
),
);
}
}