feat: 6 mejoras simultáneas en prosappweb

- web/index.html: lang=es (evita traductor) + cache busting con timestamp en flutter_bootstrap.js
- profesional.dart: rate → número, location_preferences → string para coincidir con backend DTO
- location_preferences.dart: funciones locationPrefsToString/locationPrefsFromValue
- auth_provider.dart: _navigateAfterAuth redirige a setup-city si user.city vacío, método updateCity y linkEmailWithOtp
- setup_city_view.dart: nueva vista con GPS + Nominatim para detectar ciudad, campo editable, omitir
- email_view.dart: rediseño completo con flujo OTP (paso 1: email+contraseña → paso 2: código recibido en correo)
- router + dashboard_handlers: ruta /dashboard/setup-city

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-06-28 11:34:51 -05:00
co-authored by Claude Sonnet 4.6
parent f433bb2f6e
commit 0711d30f07
8 changed files with 716 additions and 148 deletions
+12
View File
@@ -22,6 +22,7 @@ import 'package:prosapp_web_app/ui/views/services_history_view.dart';
import 'package:prosapp_web_app/ui/views/services_requests_view.dart';
import 'package:prosapp_web_app/ui/views/services_view.dart';
import 'package:prosapp_web_app/ui/views/setup_name_view.dart';
import 'package:prosapp_web_app/ui/views/setup_city_view.dart';
import 'package:prosapp_web_app/ui/views/support_view.dart';
import 'package:provider/provider.dart';
@@ -52,6 +53,17 @@ class DashboardHandlers {
},
);
static Handler setupCity = Handler(
handlerFunc: (context, params) {
final authProvider = Provider.of<AuthProvider>(context!);
if (authProvider.authStatus == AuthStatus.authenticated) {
return const SetupCityView();
} else {
return const LoginView();
}
},
);
static Handler support = Handler(
handlerFunc: (context, params) {
final authProvider = Provider.of<AuthProvider>(context!);
+6
View File
@@ -19,6 +19,7 @@ class Flurorouter {
// Onboarding
static String setupNameRoute = "/dashboard/setup-name";
static String setupCityRoute = "/dashboard/setup-city";
// Users
static String profileRoute = "/dashboard/profile";
@@ -77,6 +78,11 @@ class Flurorouter {
handler: DashboardHandlers.setupName,
transitionType: TransitionType.none,
);
router.define(
setupCityRoute,
handler: DashboardHandlers.setupCity,
transitionType: TransitionType.none,
);
// Dashboard Routes
router.define(