From 4d7b472c6cbd6cf53defd67f00ad26d4ff9f5e69 Mon Sep 17 00:00:00 2001 From: Hanzo_dev <2002samudiojohan@gmail.com> Date: Sun, 1 Mar 2026 12:15:08 -0500 Subject: [PATCH] Implement Smart Location: auto-detect user location if preference is enabled, hide location button, and handle permission denial by resetting preference --- frontend/src/components/AppHeader.vue | 30 +-- frontend/src/components/ReportModal.vue | 17 +- frontend/src/components/auth/LoginForm.vue | 27 +- frontend/src/components/auth/RegisterForm.vue | 87 +++++-- frontend/src/i18n/locales/en.json | 233 ++++++++++++++++-- frontend/src/i18n/locales/es.json | 222 ++++++++++++++++- frontend/src/stores/auth.ts | 23 +- frontend/src/views/AuthView.vue | 16 +- frontend/src/views/BusinessDetailsView.vue | 34 +-- frontend/src/views/CouponsView.vue | 25 +- frontend/src/views/DiscoverView.vue | 148 +++++------ frontend/src/views/FavoritesView.vue | 86 ++++--- frontend/src/views/MapView.vue | 42 +++- frontend/src/views/ProfileView.vue | 67 ++--- frontend/src/views/RoutesView.vue | 32 +-- frontend/src/views/SchedulesView.vue | 46 ++-- frontend/src/views/SplashScreen.vue | 12 +- frontend/src/views/TransporteLayout.vue | 4 +- .../src/views/transporte/ShuttleDetalle.vue | 43 ++-- .../src/views/transporte/TaxisLocales.vue | 2 +- 20 files changed, 852 insertions(+), 344 deletions(-) diff --git a/frontend/src/components/AppHeader.vue b/frontend/src/components/AppHeader.vue index 56916cf..e3f6273 100644 --- a/frontend/src/components/AppHeader.vue +++ b/frontend/src/components/AppHeader.vue @@ -10,8 +10,8 @@ -
ADMIN
-
CONDUCTOR
+
{{ t('menu.admin') }}
+
{{ t('menu.driver') }}
@@ -29,57 +29,57 @@
- HOLA, - {{ authStore.isAuthenticated ? authStore.userName : 'INVITADO' }} + {{ t('menu.welcome') }} + {{ authStore.isAuthenticated ? authStore.userName : t('menu.guest') }}
diff --git a/frontend/src/components/ReportModal.vue b/frontend/src/components/ReportModal.vue index 3711083..34dd659 100644 --- a/frontend/src/components/ReportModal.vue +++ b/frontend/src/components/ReportModal.vue @@ -5,7 +5,7 @@
- ¡Reporte enviado con éxito! Gracias por tu colaboración. + {{ t('report.success') }}
@@ -50,6 +50,9 @@ @@ -29,13 +32,13 @@ onMounted(() => {

SIBU

-

Sistema de Transporte Público

+

{{ t('auth.brandingSubtitle') }}

@@ -47,14 +50,14 @@ onMounted(() => { :class="{ 'auth-tab--active': isLogin }" @click="isLogin = true" > - Iniciar Sesión + {{ t('auth.loginTab') }} @@ -72,7 +75,7 @@ onMounted(() => { - + @@ -215,6 +218,7 @@ onMounted(() => { align-items: center; gap: 8px; background: var(--bg-secondary); + border: 10px 16px; border: 1px solid var(--border-color); color: var(--text-secondary); font-size: 0.85rem; diff --git a/frontend/src/views/BusinessDetailsView.vue b/frontend/src/views/BusinessDetailsView.vue index 76bbced..7253df8 100644 --- a/frontend/src/views/BusinessDetailsView.vue +++ b/frontend/src/views/BusinessDetailsView.vue @@ -1,6 +1,7 @@  diff --git a/frontend/src/views/TransporteLayout.vue b/frontend/src/views/TransporteLayout.vue index 58ea4b2..4e33f03 100644 --- a/frontend/src/views/TransporteLayout.vue +++ b/frontend/src/views/TransporteLayout.vue @@ -48,10 +48,10 @@ onMounted(async () => {
error_outline -

Error al cargar la sección de transporte

+

{{ t('taxi.errorLoading') }}

diff --git a/frontend/src/views/transporte/ShuttleDetalle.vue b/frontend/src/views/transporte/ShuttleDetalle.vue index 8e601f4..08dd856 100644 --- a/frontend/src/views/transporte/ShuttleDetalle.vue +++ b/frontend/src/views/transporte/ShuttleDetalle.vue @@ -5,9 +5,11 @@ import { supabase } from '@/supabase' import type { Shuttle } from '@/types' import { getImageUrl } from '@/utils/imageUrl' import { analyticsService } from '@/services/analyticsService' +import { useI18n } from 'vue-i18n' const route = useRoute() const router = useRouter() +const { t } = useI18n() const shuttle = ref(null) const cargando = ref(true) const error = ref(null) @@ -27,7 +29,7 @@ onMounted(async () => { if (sbError) throw sbError shuttle.value = data } catch (e: any) { - error.value = 'No se pudo cargar la información del viaje' + error.value = t('shuttle.errorLoading') console.error('SIBU | Error cargando shuttle:', e) } finally { cargando.value = false @@ -51,6 +53,13 @@ const volver = () => { router.push('/transporte/viajes-turisticos') } } + +const getTripTypeLabel = (type: string) => { + if (type === 'one_way') return t('shuttle.oneWay') + if (type === 'round_trip') return t('shuttle.roundTrip') + if (type === 'both') return t('shuttle.both') + return type +}