From ba7bba35d15fff93583a3333950a5f04cc12f55d Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 1 May 2026 14:46:07 +0000 Subject: [PATCH] Autosave: 20260501-144609 --- .../components/Chinchorreo/PublicShell.tsx | 14 ++--- .../components/Chinchorreo/RoutePreview.tsx | 6 +-- frontend/src/hooks/useChinchorreoStorage.ts | 4 +- frontend/src/pages/eventos/index.tsx | 26 ++++----- frontend/src/pages/index.tsx | 29 +++++----- frontend/src/pages/lugares/index.tsx | 33 ++++++------ frontend/src/pages/mapa.tsx | 36 ++++++------- frontend/src/pages/mis-favoritos.tsx | 53 +++++++++---------- frontend/src/pages/restaurantes/index.tsx | 47 ++++++++-------- frontend/src/pages/rutas/[slug].tsx | 36 ++++++------- frontend/src/pages/rutas/index.tsx | 51 +++++++++--------- frontend/src/pages/tips/index.tsx | 12 ++--- 12 files changed, 171 insertions(+), 176 deletions(-) diff --git a/frontend/src/components/Chinchorreo/PublicShell.tsx b/frontend/src/components/Chinchorreo/PublicShell.tsx index a6d7669..aaafaad 100644 --- a/frontend/src/components/Chinchorreo/PublicShell.tsx +++ b/frontend/src/components/Chinchorreo/PublicShell.tsx @@ -90,18 +90,18 @@ export default function PublicShell({ activeSection, children, floatingAction }:
Chinchorreo PR
-

Guía boricua para salir a chinchorrear

+

La guía boricua para cuadrar un buen chinchorreo

- Rutas, chinchorros, lugares y favoritos para montar la próxima ruta con sazón. + Rutas, paradas y listas para que el próximo plan salga con sabor desde el arranque.

{guideStats.routes}
-
rutas listas
+
rutas para salir
{guideStats.chinchorros}
-
paradas
+
chinchorros recomendados
@@ -135,7 +135,7 @@ export default function PublicShell({ activeSection, children, floatingAction }: {item.emoji} {item.label} -
Dale una vuelta
+
Échale un ojo
); @@ -149,7 +149,7 @@ export default function PublicShell({ activeSection, children, floatingAction }: className="flex flex-1 items-center justify-center gap-2 rounded-2xl border border-white/10 bg-white/5 px-3 py-3 text-sm font-semibold text-white transition hover:border-white/20 hover:bg-white/10" > - Área privada + Iniciar sesión
@@ -241,9 +241,9 @@ export default function EventsPage() { {!filteredEvents.length ? (
-

No salió ningún evento con esa búsqueda

+

No encontramos ningún evento con esa búsqueda

- Prueba con otro pueblo o lugar, o limpia la búsqueda para ver qué viene por ahí. + Prueba con otro pueblo o limpia la búsqueda para ver los que vienen por ahí.

) : null} diff --git a/frontend/src/pages/index.tsx b/frontend/src/pages/index.tsx index 411e3fc..34aa2ca 100644 --- a/frontend/src/pages/index.tsx +++ b/frontend/src/pages/index.tsx @@ -56,7 +56,7 @@ const SectionHeader = ({ href={href} className="inline-flex items-center gap-2 self-start rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm font-semibold text-white transition hover:border-white/20 hover:bg-white/10" > - Ver todo + Ver más ) : null} @@ -93,7 +93,7 @@ export default function HomePage() {

- Tu guía interactiva para janguear Puerto Rico con sabor, ruta y corillo. + Tu próxima salida por Puerto Rico empieza aquí.

- Explora rutas auténticas, guarda tus paradas favoritas y descubre eventos, vistas y - chinchorros con una estética boricua vibrante y elegante. + Encuentra rutas, guarda paradas, mira eventos y descubre chinchorros para cuadrar el plan sin tanta vuelta.

@@ -130,7 +129,7 @@ export default function HomePage() { setSearchValue(event.target.value)} - placeholder="Buscar restaurante, ruta, pueblo o festival" + placeholder="Ruta, chinchorro, pueblo o festival..." className="w-full border-0 bg-transparent text-base text-white placeholder:text-slate-400 focus:ring-0" />
{[ - { label: 'Rutas curadas', value: guideStats.routes, accent: '#FDE68A' }, - { label: 'Chinchorros destacados', value: guideStats.chinchorros, accent: '#A7F3D0' }, - { label: 'Eventos cercanos', value: guideStats.events, accent: '#BFDBFE' }, + { label: 'Rutas bien armadas', value: guideStats.routes, accent: '#FDE68A' }, + { label: 'Chinchorros recomendados', value: guideStats.chinchorros, accent: '#A7F3D0' }, + { label: 'Eventos por venir', value: guideStats.events, accent: '#BFDBFE' }, ].map((stat) => (
{stat.value}
-
Listas para descubrir hoy mismo.
+
Buenas para arrancar hoy mismo.
))} @@ -285,7 +284,7 @@ export default function HomePage() { href={`/restaurantes?search=${encodeURIComponent(stop.name)}`} className="inline-flex items-center gap-2 text-sm font-semibold text-[#FDE68A]" > - Ver en la guía + Abrir en la guía @@ -322,7 +321,7 @@ export default function HomePage() {
- Ideal para ruta mixta de costa y montaña + Buen día para mezclar costa y montaña
@@ -340,7 +339,7 @@ export default function HomePage() { href="/tips" className="mt-4 inline-flex items-center gap-2 text-sm font-semibold text-[#A7F3D0]" > - Ver guía completa + Ver tips diff --git a/frontend/src/pages/lugares/index.tsx b/frontend/src/pages/lugares/index.tsx index af0d30b..1710a13 100644 --- a/frontend/src/pages/lugares/index.tsx +++ b/frontend/src/pages/lugares/index.tsx @@ -53,45 +53,44 @@ export default function PlacesPage() { setFeedback( result.added - ? `Lugar guardado en “${activeList?.name || 'Mi chinchorreo'}”.` - : 'Ese lugar ya estaba en la lista activa.', + ? `Ese lugar se guardó en “${activeList?.name || 'Mi chinchorreo'}”.` + : 'Ese lugar ya lo tenías en la lista activa.', ); }; return ( <> - Chinchorreo PR | Lugares de Interés + Chinchorreo PR | Lugares
-
Lugares de interés
+
Lugares

- Playas, miradores, pueblos y cultura para completar la ruta + Playas, miradores y pueblos que le suman al plan

- Usa estos lugares como pausas estratégicas entre paradas gastronómicas: fotos, vistas, - artesanías o una caminata corta para seguir con el plan. + Aquí encuentras paradas buenas para sacar fotos, coger aire o meterle una vista brutal antes de seguir.

-
Categorías
+
Qué quieres ver
-
Vista
+
Cómo verlo
{(['mapa', 'lista'] as MapViewMode[]).map((viewMode) => (
) : ( @@ -263,7 +263,7 @@ export default function MapPage() { : 'border-white/10 bg-white/5 text-white hover:border-white/20 hover:bg-white/10', ].join(' ')} > - {inRoute ? 'Quitar de la ruta' : 'Agregar a la ruta'} + {inRoute ? 'Sacar de la ruta' : 'Sumar a la ruta'} ); @@ -297,7 +297,7 @@ export default function MapPage() { href={selectedItem.href} className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]" > - Ver en la guía + Abrir en la guía - Google Maps + Abrir en Maps @@ -350,14 +350,14 @@ export default function MapPage() { className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2 text-xs font-semibold text-slate-200" > - Quitar + Sacar ))} ) : (
- Marca varias paradas para armar una mini ruta. Con dos o más ya puedes abrirla. + Suma varias paradas y aquí se te arma la mini ruta. Con dos o más ya la puedes abrir.
)} @@ -369,7 +369,7 @@ export default function MapPage() { className="mt-5 inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f]" > - Abrir ruta + Abrir en Maps ) : null} @@ -378,9 +378,9 @@ export default function MapPage() { {!visibleItems.length ? (
-

Con esos filtros no se ve ninguna parada en el mapa

+

No encontramos paradas con esos filtros

- Vuelve a activar chinchorros o lugares, o limpia la búsqueda para verlo completo otra vez. + Activa otra vez chinchorros o lugares, o limpia la búsqueda para verlo completo.

) : null} diff --git a/frontend/src/pages/mis-favoritos.tsx b/frontend/src/pages/mis-favoritos.tsx index c31359f..019b984 100644 --- a/frontend/src/pages/mis-favoritos.tsx +++ b/frontend/src/pages/mis-favoritos.tsx @@ -21,7 +21,7 @@ import LayoutGuest from '../layouts/Guest'; const categoryLabels: Record = { route: 'Rutas', - chinchorro: 'Restaurantes', + chinchorro: 'Chinchorros', place: 'Lugares', event: 'Eventos', }; @@ -73,7 +73,7 @@ export default function FavoritesPage() { const shareList = () => { if (!activeFavorites.length) { - setFeedback('Agrega al menos una ruta o chinchorro antes de compartir la lista.'); + setFeedback('Guarda aunque sea una parada antes de compartir esta lista.'); return; } @@ -91,52 +91,51 @@ export default function FavoritesPage() { const handleRemoveFavorite = (category: FavoriteCategory, itemSlug: string) => { removeFavorite(category, itemSlug, activeListId); - setFeedback('Se quitó de la lista activa.'); + setFeedback('Lo saqué de esta lista.'); }; const handleRemoveList = () => { const removed = removeList(activeListId); setFeedback( removed - ? 'La lista personalizada fue eliminada.' - : 'La lista principal “Mi chinchorreo” no se puede eliminar.', + ? 'Lista borrada.' + : '“Mi chinchorreo” es la lista principal y no se puede borrar.', ); }; const handleClearList = () => { clearListFavorites(activeListId); - setFeedback('Se vació la lista activa, pero la lista sigue creada.'); + setFeedback('La lista quedó vacía, pero sigue ahí.'); }; return ( <> - Chinchorreo PR | Mis Favoritos + Chinchorreo PR | Favoritos
-
Mis Favoritos
+
Favoritos

- Crea listas y guarda tus próximos jangueos + Guarda ideas para el próximo chinchorreo

- Tus favoritos se guardan en este dispositivo: puedes crear listas, - elegir una lista activa y compartirla por WhatsApp. + Arma listas por plan, deja una activa y comparte por WhatsApp lo que ya vas cuadrando.

-
Listas
+
Tus listas
{lists.length}
-
Activa
+
Lista activa
{activeList?.name}
-
Guardados
+
En esta lista
{activeFavorites.length}
@@ -185,7 +184,7 @@ export default function FavoritesPage() { type="submit" className="inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f]" > - Crear lista + Crear esta lista
@@ -205,14 +204,14 @@ export default function FavoritesPage() { className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm font-semibold text-white transition hover:border-white/20 hover:bg-white/10" > - Compartir lista + Compartir por WhatsApp {activeListId !== DEFAULT_PUBLIC_LIST_ID ? ( ) : null} @@ -242,12 +241,12 @@ export default function FavoritesPage() { ].join(' ')} >
- {isActive ? 'Lista activa' : 'Usar esta lista'} + {isActive ? 'La que estás usando' : 'Usar esta'}

{list.name}

{list.description}

- {(favoritesByList[list.id] || []).length} guardados + {(favoritesByList[list.id] || []).length} guardados aquí
); @@ -268,7 +267,7 @@ export default function FavoritesPage() {
{categoryLabels[category]}
-

{items.length} guardados

+

{items.length} en esta categoría

{categoryLabels[category]} @@ -296,7 +295,7 @@ export default function FavoritesPage() { href={item.itemHref} className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]" > - Ver en la guía + Abrir en la guía
@@ -313,7 +312,7 @@ export default function FavoritesPage() { ) : (
- Aquí todavía no has guardado {categoryLabels[category].toLowerCase()} en esta lista. + Todavía no has guardado {categoryLabels[category].toLowerCase()} en esta lista.
)} @@ -324,7 +323,7 @@ export default function FavoritesPage() { {!activeFavorites.length ? (
-

Esta lista está vacía por ahora

+

Todavía no hay nada en esta lista

Guarda una ruta, un chinchorro o un lugar desde la guía y aquí se te irá armando el plan.

@@ -333,13 +332,13 @@ export default function FavoritesPage() { href="/rutas" className="rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f]" > - Explorar rutas + Ir a rutas - Ver chinchorros + Ir a chinchorros
diff --git a/frontend/src/pages/restaurantes/index.tsx b/frontend/src/pages/restaurantes/index.tsx index beac31b..1a7ad77 100644 --- a/frontend/src/pages/restaurantes/index.tsx +++ b/frontend/src/pages/restaurantes/index.tsx @@ -90,15 +90,15 @@ export default function RestaurantsPage() { setFeedback( result.added - ? `Chinchorro guardado en “${activeList?.name || 'Mi chinchorreo'}”.` - : 'Ese chinchorro ya estaba en la lista activa.', + ? `Ese chinchorro se guardó en “${activeList?.name || 'Mi chinchorreo'}”.` + : 'Ese chinchorro ya lo tenías en la lista activa.', ); }; return ( <> - Chinchorreo PR | Restaurantes & Chinchorros + Chinchorreo PR | Chinchorros @@ -106,14 +106,13 @@ export default function RestaurantsPage() {
- Restaurantes & Chinchorros + Chinchorros

- Filtra por región, ambiente y antojo + Encuentra un chinchorro según el antojo y el ambiente

- Desde Piñones hasta La Parguera, aquí tienes una lista buscable con especialidades, - redes, mapas y favoritos guardados localmente. + Desde Piñones hasta La Parguera, aquí buscas por zona, ambiente o antojo y guardas los chinchorros que quieres repetir.

- {filteredChinchorros.length} chinchorros encontrados + {filteredChinchorros.length} chinchorros para este plan
{feedback ? (
@@ -261,26 +260,26 @@ export default function RestaurantsPage() { : 'border-white/10 bg-white/5 text-slate-300', ].join(' ')} > - {chinchorro.openNow ? 'Abierto ahora' : 'Abre luego'} + {chinchorro.openNow ? 'Abierto ahora' : 'Cerrado ahora'}
-
Dirección
+
Dónde queda
{chinchorro.address}
-
Horario
+
Cuándo ir
{chinchorro.hours}
-
Especialidades
+
Qué pedir
{chinchorro.specialties.map((specialty) => (
-
Galería de platos
+
Se antoja pedir
{chinchorro.dishGallery.map((dish) => (
- Google Maps + Abrir en Maps {chinchorro.routeSlug ? ( - Ver ruta + Abrir ruta ) : null} @@ -393,9 +392,9 @@ export default function RestaurantsPage() { {!filteredChinchorros.length ? (
-

Con esos filtros no salió ningún chinchorro

+

No encontramos ningún chinchorro con esos filtros

- Prueba otro pueblo, quita “Abierto ahora” o cambia la región para ver más opciones. + Prueba otra zona, cambia el presupuesto o quita “Solo abiertos ahora”.

) : null} diff --git a/frontend/src/pages/rutas/[slug].tsx b/frontend/src/pages/rutas/[slug].tsx index 3b1a997..5a3feb9 100644 --- a/frontend/src/pages/rutas/[slug].tsx +++ b/frontend/src/pages/rutas/[slug].tsx @@ -61,7 +61,7 @@ export default function RouteDetailPage() { href="/rutas" className="mt-5 inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f]" > - Volver a rutas + Regresar a rutas
@@ -85,14 +85,14 @@ export default function RouteDetailPage() { setFeedback( result.added - ? `Ruta guardada en “${activeList?.name || 'Mi chinchorreo'}”.` - : 'Esta ruta ya está guardada en tu lista activa.', + ? `Esa ruta se guardó en “${activeList?.name || 'Mi chinchorreo'}”.` + : 'Esa ruta ya estaba en tu lista activa.', ); }; const handleToggleStop = (stopId: string) => { const result = toggleRouteStop(route.slug, stopId); - setFeedback(result.completed ? 'Parada marcada como completada ✅' : 'Parada marcada como pendiente.'); + setFeedback(result.completed ? 'Parada marcada como hecha ✅' : 'La parada volvió a quedar pendiente.'); }; return ( @@ -114,7 +114,7 @@ export default function RouteDetailPage() {
- ← Volver a rutas + ← Regresar a rutas
{route.emoji} {route.region} @@ -143,7 +143,7 @@ export default function RouteDetailPage() { className="inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f] transition hover:bg-slate-100" > - Abrir navegación + Abrir en Maps
@@ -186,9 +186,9 @@ export default function RouteDetailPage() {

-
{progress}% completado
+
Llevas {progress}%
- {completedStops.length} de {route.stops.length} paradas hechas + {completedStops.length} de {route.stops.length} ya hechas
@@ -229,21 +229,21 @@ export default function RouteDetailPage() {
- {completed ? 'Completada' : 'Marcar parada'} + {completed ? 'Ya está hecha' : 'Marcar parada'}
-
Especialidad
+
Prueba esto
{stop.specialty}
-
Horario aprox.
+
Mejor momento
{stop.hours}
-
Quédate
+
Quédate un rato
{stop.recommendedStay}
@@ -256,23 +256,23 @@ export default function RouteDetailPage() {
- Tu ritmo ideal + Hazla con calma
-
{route.estimatedMinutes} minutos estimados
+
Más o menos {route.estimatedMinutes} min
Planifica entre 3 y 5 horas para disfrutarla completa.
- {feedback || `Tu lista activa ahora mismo es “${activeList?.name || 'Mi chinchorreo'}”.`} + {feedback || `Ahora mismo estás guardando en “${activeList?.name || 'Mi chinchorreo'}”.`}
- Abrir favoritos + Ir a favoritos
diff --git a/frontend/src/pages/rutas/index.tsx b/frontend/src/pages/rutas/index.tsx index a03802c..605fdad 100644 --- a/frontend/src/pages/rutas/index.tsx +++ b/frontend/src/pages/rutas/index.tsx @@ -86,8 +86,8 @@ export default function RoutesPage() { setFeedback( result.added - ? `Ruta guardada en “${activeList?.name || 'Mi chinchorreo'}”.` - : 'Esta ruta ya estaba guardada en tu lista activa.', + ? `Esa ruta se guardó en “${activeList?.name || 'Mi chinchorreo'}”.` + : 'Esa ruta ya estaba en tu lista activa.', ); }; @@ -100,7 +100,7 @@ export default function RoutesPage() {
Rutas

- Explora la isla parada por parada + Rutas para irte de parada en parada

- Aquí puedes descubrir rutas populares, ver sus paradas en orden, - iniciar navegación y guardarlas en una lista personalizada. + Descubre recorridos ya armados, mira cada parada en orden y guarda los que mejor van con tu plan.

-
Lista activa
+
Tu lista activa
{activeList?.name || 'Mi chinchorreo'}
- Abrir favoritos + Ir a favoritos
@@ -130,30 +129,30 @@ export default function RoutesPage() {
{[{ - title: 'Región', + title: 'Zona', value: selectedRegion, options: regionFilters, onChange: setSelectedRegion, }, { - title: 'Dificultad', + title: 'Ritmo', value: selectedDifficulty, options: difficultyFilters, onChange: setSelectedDifficulty, }, { - title: 'Etiqueta', + title: 'Plan', value: selectedTag, options: tagFilters, onChange: setSelectedTag, @@ -180,7 +179,7 @@ export default function RoutesPage() {
- {filteredRoutes.length} rutas que van con tu plan + {filteredRoutes.length} rutas para este plan
{feedback ? (
@@ -215,7 +214,7 @@ export default function RoutesPage() {
{route.bestFor}
- {route.estimatedMinutes} min estimados + Aprox. {route.estimatedMinutes} min
@@ -233,15 +232,15 @@ export default function RoutesPage() {
-
Paradas
+
Paradas clave
{route.stops.length}
-
Dificultad
+
Ritmo
{route.difficulty}
-
Ideal para
+
Buen plan para
{route.bestFor}
@@ -251,7 +250,7 @@ export default function RoutesPage() { href={`/rutas/${route.slug}`} className="inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f] transition hover:bg-slate-100" > - Ver ruta + Abrir ruta - Navegar + Abrir en Maps
@@ -294,9 +293,9 @@ export default function RoutesPage() { {!filteredRoutes.length ? (
-

Con esos filtros no salió ninguna ruta

+

No encontramos ninguna ruta con esos filtros

- Quita una etiqueta, cambia la dificultad o dale a “Sorpréndeme” para que aparezca otra opción. + Prueba otra zona o ritmo, o dale a “Dame otra ruta” para ver una distinta.

diff --git a/frontend/src/pages/tips/index.tsx b/frontend/src/pages/tips/index.tsx index 5df8676..01e01eb 100644 --- a/frontend/src/pages/tips/index.tsx +++ b/frontend/src/pages/tips/index.tsx @@ -28,20 +28,20 @@ export default function TipsPage() { return ( <> - Chinchorreo PR | Tips & Guía del Viajero + Chinchorreo PR | Tips
- Tips & Guía del viajero + Tips

- Consejos prácticos para chinchorrear con calma y responsabilidad + Consejos para salir a chinchorrear con calma y buen juicio

- Una guía educativa para salir mejor preparado, comer mejor y respetar cada lugar que visitas. + Una guía sencilla para comer mejor, moverte con tiempo y cuidar cada parada que visites.

@@ -58,7 +58,7 @@ export default function TipsPage() { onClick={() => setTipIndex((current) => current + 1)} className="mt-5 inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f]" > - Dame otro tip + Quiero otro tip
@@ -81,7 +81,7 @@ export default function TipsPage() { href="/rutas" className="mt-6 inline-flex items-center gap-2 text-sm font-semibold text-[#FDE68A]" > - Ver rutas y poner estos tips en práctica + Ir a rutas y ponerlos en práctica