Upgrade Flutter packages and fix breaking changes for Riverpod 3.0
Major package upgrades: - Riverpod 2.x → 3.0.3 (breaking changes) - flutter_appauth 7.0.0 → 11.0.0 - go_router 14.0.0 → 17.0.0 - permission_handler 11.3.0 → 12.0.1 - flutter_lints 5.0.0 → 6.0.0 - animate_do 3.1.2 → 4.2.0 - Plus 41 transitive dependency updates Breaking changes fixed: Riverpod 3.0 migration: - Replace StateProvider with NotifierProvider pattern - Update .valueOrNull to proper async value handling with .future - Create LanguageNotifier and ThemeModeNotifier classes - Fix all provider async value access patterns Google Maps Navigation API updates: - Rename GoogleMapsNavigationViewController to GoogleNavigationViewController - Update Waypoint to NavigationWaypoint.withLatLngTarget - Migrate controller methods to static GoogleMapsNavigator methods - Update event listener types and callbacks Localization system fixes: - Update l10n.yaml synthetic-package configuration - Fix import paths from flutter_gen to package imports - Add errorTitle translation key for both en/fr - Remove unnecessary null-aware operators (AppLocalizations is non-nullable) - Regenerate localization files iOS/macOS configuration: - Update CocoaPods dependencies (AppAuth 1.7.5 → 2.0.0) - Create missing Profile.xcconfig files for both platforms - Sync Podfile.lock files with updated dependencies Code quality: - Fix all analyzer errors (0 errors remaining) - Resolve deprecated API usage warnings - Update async/await patterns for better error handling 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -37,7 +37,7 @@ final authTokenProvider = FutureProvider<String?>((ref) async {
|
||||
});
|
||||
|
||||
final deliveryRoutesProvider = FutureProvider<List<DeliveryRoute>>((ref) async {
|
||||
final token = ref.watch(authTokenProvider).valueOrNull;
|
||||
final token = await ref.read(authTokenProvider.future);
|
||||
|
||||
if (token == null) {
|
||||
throw Exception('User not authenticated');
|
||||
@@ -70,7 +70,7 @@ final deliveryRoutesProvider = FutureProvider<List<DeliveryRoute>>((ref) async {
|
||||
});
|
||||
|
||||
final deliveriesProvider = FutureProvider.family<List<Delivery>, int>((ref, routeFragmentId) async {
|
||||
final token = ref.watch(authTokenProvider).valueOrNull;
|
||||
final token = await ref.read(authTokenProvider.future);
|
||||
|
||||
if (token == null) {
|
||||
throw Exception('User not authenticated');
|
||||
@@ -103,7 +103,7 @@ final deliveriesProvider = FutureProvider.family<List<Delivery>, int>((ref, rout
|
||||
|
||||
/// Provider to get all deliveries from all routes
|
||||
final allDeliveriesProvider = FutureProvider<List<Delivery>>((ref) async {
|
||||
final routes = ref.watch(deliveryRoutesProvider).valueOrNull ?? [];
|
||||
final routes = await ref.read(deliveryRoutesProvider.future);
|
||||
|
||||
if (routes.isEmpty) {
|
||||
return [];
|
||||
@@ -127,14 +127,28 @@ final allDeliveriesProvider = FutureProvider<List<Delivery>>((ref) async {
|
||||
return allDeliveries;
|
||||
});
|
||||
|
||||
final languageProvider = StateProvider<String>((ref) {
|
||||
return 'fr';
|
||||
// Language notifier for state management
|
||||
class LanguageNotifier extends Notifier<String> {
|
||||
@override
|
||||
String build() => 'fr';
|
||||
|
||||
void setLanguage(String lang) => state = lang;
|
||||
}
|
||||
|
||||
final languageProvider = NotifierProvider<LanguageNotifier, String>(() {
|
||||
return LanguageNotifier();
|
||||
});
|
||||
|
||||
/// Theme mode provider for manual theme switching
|
||||
/// Default is ThemeMode.dark for testing
|
||||
final themeModeProvider = StateProvider<ThemeMode>((ref) {
|
||||
return ThemeMode.dark;
|
||||
// Theme mode notifier for manual theme switching
|
||||
class ThemeModeNotifier extends Notifier<ThemeMode> {
|
||||
@override
|
||||
ThemeMode build() => ThemeMode.dark;
|
||||
|
||||
void setThemeMode(ThemeMode mode) => state = mode;
|
||||
}
|
||||
|
||||
final themeModeProvider = NotifierProvider<ThemeModeNotifier, ThemeMode>(() {
|
||||
return ThemeModeNotifier();
|
||||
});
|
||||
|
||||
class _EmptyQuery implements Serializable {
|
||||
|
||||
Reference in New Issue
Block a user