fix: initialize fr_FR/fr_TN locale data before runApp (DateFormat crash)
This commit is contained in:
parent
d091b4412d
commit
ff8b228898
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:intl/date_symbol_data_local.dart';
|
||||
|
||||
import 'providers/auth_provider.dart';
|
||||
import 'providers/dashboard_provider.dart';
|
||||
|
|
@ -17,7 +18,10 @@ import 'screens/achats_screen.dart';
|
|||
import 'screens/production_screen.dart';
|
||||
import 'screens/stock_screen.dart';
|
||||
|
||||
void main() {
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
await initializeDateFormatting('fr_FR');
|
||||
await initializeDateFormatting('fr_TN');
|
||||
runApp(
|
||||
MultiProvider(
|
||||
providers: [
|
||||
|
|
@ -42,22 +46,18 @@ class RayhanApp extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _RayhanAppState extends State<RayhanApp> {
|
||||
late final GoRouter _router;
|
||||
GoRouter? _router;
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
super.didChangeDependencies();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
final authProvider = context.read<AuthProvider>();
|
||||
if (_router == null) {
|
||||
final auth = Provider.of<AuthProvider>(context, listen: false);
|
||||
_router = GoRouter(
|
||||
initialLocation: '/login',
|
||||
refreshListenable: authProvider,
|
||||
redirect: (context, state) {
|
||||
final loggedIn = authProvider.isAuthenticated;
|
||||
refreshListenable: auth,
|
||||
redirect: (_, state) {
|
||||
final loggedIn = auth.isAuthenticated;
|
||||
final onLogin = state.matchedLocation == '/login';
|
||||
if (!loggedIn && !onLogin) return '/login';
|
||||
if (loggedIn && onLogin) return '/dashboard';
|
||||
|
|
@ -74,15 +74,17 @@ class _RayhanAppState extends State<RayhanApp> {
|
|||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_router.dispose();
|
||||
_router?.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (_router == null) return const SizedBox.shrink();
|
||||
return MaterialApp.router(
|
||||
title: 'Rayhan ERP',
|
||||
debugShowCheckedModeBanner: false,
|
||||
|
|
@ -94,7 +96,7 @@ class _RayhanAppState extends State<RayhanApp> {
|
|||
useMaterial3: true,
|
||||
fontFamily: 'Roboto',
|
||||
),
|
||||
routerConfig: _router,
|
||||
routerConfig: _router!,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue