checkpoint

This commit is contained in:
2025-11-26 17:41:37 -05:00
parent ef5c0c1a95
commit 2ecd1c5b4e
15 changed files with 794 additions and 152 deletions
+20 -12
View File
@@ -1,6 +1,7 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../l10n/app_localizations.dart';
import 'package:image_picker/image_picker.dart';
import 'package:http/http.dart' as http;
import '../models/delivery.dart';
@@ -86,7 +87,8 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
final token = await authService.ensureValidToken();
if (token == null) {
if (mounted) {
ToastHelper.showError(context, 'Authentication required');
final l10n = AppLocalizations.of(context)!;
ToastHelper.showError(context, l10n.authenticationRequired);
}
return;
}
@@ -173,7 +175,8 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
}
if (mounted) {
ToastHelper.showSuccess(context, 'Delivery marked as completed');
final l10n = AppLocalizations.of(context)!;
ToastHelper.showSuccess(context, l10n.deliverySuccessful);
}
}
},
@@ -185,7 +188,8 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
debugPrint('Complete delivery failed - Type: ${error.type}, Message: ${error.message}');
debugPrint('Error details: ${error.details}');
if (mounted) {
String errorMessage = 'Error: ${error.message}';
final l10n = AppLocalizations.of(context)!;
String errorMessage = l10n.error(error.message);
if (error.statusCode == 500) {
errorMessage = 'Server error - Please contact support';
}
@@ -251,6 +255,7 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
}
if (mounted) {
final l10n = AppLocalizations.of(context)!;
ToastHelper.showSuccess(context, 'Delivery marked as uncompleted');
}
}
@@ -261,7 +266,8 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
}
if (mounted) {
ToastHelper.showError(context, 'Error: ${error.message}');
final l10n = AppLocalizations.of(context)!;
ToastHelper.showError(context, l10n.error(error.message));
}
},
);
@@ -286,7 +292,8 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
final token = await authService.ensureValidToken();
if (token == null) {
if (mounted) {
ToastHelper.showError(context, 'Authentication required');
final l10n = AppLocalizations.of(context)!;
ToastHelper.showError(context, l10n.authenticationRequired);
}
return;
}
@@ -507,10 +514,11 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
final routesData = ref.watch(deliveryRoutesProvider);
final allDeliveriesData = ref.watch(allDeliveriesProvider);
final userProfile = ref.watch(userProfileProvider);
final l10n = AppLocalizations.of(context)!;
return Scaffold(
appBar: AppBar(
title: const Text('Delivery Routes'),
title: Text(l10n.deliveryRoutes),
elevation: 0,
actions: [
IconButton(
@@ -580,8 +588,8 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
body: routesData.when(
data: (routes) {
if (routes.isEmpty) {
return const Center(
child: Text('No routes available'),
return Center(
child: Text(l10n.noRoutes),
);
}
return allDeliveriesData.when(
@@ -642,11 +650,11 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Error loading deliveries: $error'),
Text(l10n.error(error.toString())),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () => ref.refresh(allDeliveriesProvider),
child: const Text('Retry'),
child: Text(l10n.retry),
),
],
),
@@ -660,11 +668,11 @@ class _RoutesPageState extends ConsumerState<RoutesPage> {
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Error: $error'),
Text(l10n.error(error.toString())),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () => ref.refresh(deliveryRoutesProvider),
child: const Text('Retry'),
child: Text(l10n.retry),
),
],
),