Autosave: 20260501-141129
This commit is contained in:
parent
f9af0ce921
commit
e46cec7f80
@ -92,7 +92,7 @@ export default function PublicShell({ activeSection, children, floatingAction }:
|
|||||||
</div>
|
</div>
|
||||||
<h1 className="text-3xl font-black tracking-tight text-white">Guía boricua para salir a chinchorrear</h1>
|
<h1 className="text-3xl font-black tracking-tight text-white">Guía boricua para salir a chinchorrear</h1>
|
||||||
<p className="mt-3 text-sm leading-6 text-slate-300">
|
<p className="mt-3 text-sm leading-6 text-slate-300">
|
||||||
Rutas, chinchorros, lugares y favoritos para montar el próximo road trip con sazón.
|
Rutas, chinchorros, lugares y favoritos para montar la próxima ruta con sazón.
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-5 grid grid-cols-2 gap-3 text-sm">
|
<div className="mt-5 grid grid-cols-2 gap-3 text-sm">
|
||||||
<div className="rounded-2xl border border-white/10 bg-white/5 p-3">
|
<div className="rounded-2xl border border-white/10 bg-white/5 p-3">
|
||||||
@ -135,7 +135,7 @@ export default function PublicShell({ activeSection, children, floatingAction }:
|
|||||||
<span className="mr-2">{item.emoji}</span>
|
<span className="mr-2">{item.emoji}</span>
|
||||||
{item.label}
|
{item.label}
|
||||||
</div>
|
</div>
|
||||||
<div className="text-xs text-slate-400">Explora esta sección</div>
|
<div className="text-xs text-slate-400">Dale una vuelta</div>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
);
|
);
|
||||||
@ -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"
|
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"
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiLogin} size={18} />
|
<BaseIcon path={mdiLogin} size={18} />
|
||||||
Entrar al admin
|
Área privada
|
||||||
</Link>
|
</Link>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@ -177,7 +177,7 @@ export default function PublicShell({ activeSection, children, floatingAction }:
|
|||||||
className="hidden 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 sm:inline-flex"
|
className="hidden 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 sm:inline-flex"
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiLogin} size={16} />
|
<BaseIcon path={mdiLogin} size={16} />
|
||||||
Admin
|
Área privada
|
||||||
</Link>
|
</Link>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
|||||||
@ -24,7 +24,7 @@ export default function RoutePreview({ route, compact = false }: Props) {
|
|||||||
<div className="flex items-start justify-between gap-3">
|
<div className="flex items-start justify-between gap-3">
|
||||||
<div>
|
<div>
|
||||||
<div className="text-xs font-semibold uppercase tracking-[0.25em] text-white/80">
|
<div className="text-xs font-semibold uppercase tracking-[0.25em] text-white/80">
|
||||||
Preview de ruta
|
Vista rápida
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-1 text-lg font-black tracking-tight">{route.region}</div>
|
<div className="mt-1 text-lg font-black tracking-tight">{route.region}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -117,7 +117,7 @@ export default function EventsPage() {
|
|||||||
<input
|
<input
|
||||||
value={searchValue}
|
value={searchValue}
|
||||||
onChange={(event) => setSearchValue(event.target.value)}
|
onChange={(event) => setSearchValue(event.target.value)}
|
||||||
placeholder="Buscar por festival, pueblo o venue"
|
placeholder="Buscar por festival, pueblo o lugar"
|
||||||
className="w-full rounded-2xl border border-white/10 bg-[#04111f]/50 px-4 py-3 text-white placeholder:text-slate-400 focus:border-[#DAA520] focus:outline-none focus:ring-0"
|
className="w-full rounded-2xl border border-white/10 bg-[#04111f]/50 px-4 py-3 text-white placeholder:text-slate-400 focus:border-[#DAA520] focus:outline-none focus:ring-0"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -201,7 +201,7 @@ export default function EventsPage() {
|
|||||||
<div className="mt-2 font-semibold text-white">{formatEventDate(event.nextDateIso)}</div>
|
<div className="mt-2 font-semibold text-white">{formatEventDate(event.nextDateIso)}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="rounded-[1.4rem] border border-white/10 bg-[#04111f]/60 p-4 text-sm text-slate-300">
|
<div className="rounded-[1.4rem] border border-white/10 bg-[#04111f]/60 p-4 text-sm text-slate-300">
|
||||||
<div className="text-xs uppercase tracking-[0.2em] text-slate-500">Venue</div>
|
<div className="text-xs uppercase tracking-[0.2em] text-slate-500">Lugar</div>
|
||||||
<div className="mt-2 font-semibold text-white">{event.venue}</div>
|
<div className="mt-2 font-semibold text-white">{event.venue}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="rounded-[1.4rem] border border-white/10 bg-[#04111f]/60 p-4 text-sm text-slate-300">
|
<div className="rounded-[1.4rem] border border-white/10 bg-[#04111f]/60 p-4 text-sm text-slate-300">
|
||||||
@ -225,7 +225,7 @@ export default function EventsPage() {
|
|||||||
].join(' ')}
|
].join(' ')}
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiStarOutline} size={16} />
|
<BaseIcon path={mdiStarOutline} size={16} />
|
||||||
{saved ? 'Guardado' : 'Guardar evento'}
|
{saved ? 'Evento guardado' : 'Guardar evento'}
|
||||||
</button>
|
</button>
|
||||||
<div className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm text-slate-200">
|
<div className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-4 py-2 text-sm text-slate-200">
|
||||||
<BaseIcon path={mdiCalendarStar} size={16} />
|
<BaseIcon path={mdiCalendarStar} size={16} />
|
||||||
@ -241,9 +241,9 @@ export default function EventsPage() {
|
|||||||
|
|
||||||
{!filteredEvents.length ? (
|
{!filteredEvents.length ? (
|
||||||
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
||||||
<h2 className="text-2xl font-black text-white">No encontramos eventos con ese término</h2>
|
<h2 className="text-2xl font-black text-white">No salió ningún evento con esa búsqueda</h2>
|
||||||
<p className="mt-3 text-sm leading-6 text-slate-300">
|
<p className="mt-3 text-sm leading-6 text-slate-300">
|
||||||
Intenta con otro pueblo, venue o limpia la búsqueda para ver el calendario completo.
|
Prueba con otro pueblo o lugar, o limpia la búsqueda para ver qué viene por ahí.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
@ -93,7 +93,7 @@ export default function HomePage() {
|
|||||||
<PublicShell
|
<PublicShell
|
||||||
activeSection="inicio"
|
activeSection="inicio"
|
||||||
floatingAction={{
|
floatingAction={{
|
||||||
label: 'Iniciar Ruta Aleatoria 🎲',
|
label: 'Sorpréndeme con una ruta 🎲',
|
||||||
icon: mdiDice5Outline,
|
icon: mdiDice5Outline,
|
||||||
onClick: handleRandomRoute,
|
onClick: handleRandomRoute,
|
||||||
}}
|
}}
|
||||||
@ -178,7 +178,7 @@ export default function HomePage() {
|
|||||||
className="inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/10 px-5 py-3 text-sm font-bold text-white transition hover:border-white/25 hover:bg-white/15"
|
className="inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/10 px-5 py-3 text-sm font-bold text-white transition hover:border-white/25 hover:bg-white/15"
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiLogin} size={18} />
|
<BaseIcon path={mdiLogin} size={18} />
|
||||||
Entrar al admin
|
Área privada
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -210,7 +210,7 @@ export default function HomePage() {
|
|||||||
<SectionHeader
|
<SectionHeader
|
||||||
eyebrow="Rutas populares"
|
eyebrow="Rutas populares"
|
||||||
title="Desliza y arma tu próximo chinchorreo"
|
title="Desliza y arma tu próximo chinchorreo"
|
||||||
description="Las rutas más queridas combinan paisaje, comida y paradas pensadas para un road trip sabroso."
|
description="Las rutas más queridas combinan paisaje, comida y paradas pensadas para un chinchorreo sabroso."
|
||||||
href="/rutas"
|
href="/rutas"
|
||||||
/>
|
/>
|
||||||
<div className="flex snap-x gap-5 overflow-x-auto pb-2">
|
<div className="flex snap-x gap-5 overflow-x-auto pb-2">
|
||||||
|
|||||||
@ -122,9 +122,9 @@ export default function PlacesPage() {
|
|||||||
|
|
||||||
{!filteredPlaces.length ? (
|
{!filteredPlaces.length ? (
|
||||||
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
||||||
<h2 className="text-2xl font-black text-white">No encontramos lugares con esos filtros</h2>
|
<h2 className="text-2xl font-black text-white">Con esos filtros no salió ningún lugar</h2>
|
||||||
<p className="mt-3 text-sm leading-6 text-slate-300">
|
<p className="mt-3 text-sm leading-6 text-slate-300">
|
||||||
Prueba buscando por pueblo, cambia la categoría o limpia el término de búsqueda.
|
Prueba otro pueblo, cambia la categoría o borra la búsqueda para seguir explorando.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
) : null}
|
) : null}
|
||||||
@ -180,7 +180,7 @@ export default function PlacesPage() {
|
|||||||
].join(' ')}
|
].join(' ')}
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiStarOutline} size={16} />
|
<BaseIcon path={mdiStarOutline} size={16} />
|
||||||
{saved ? 'Guardado' : 'Guardar en Favoritos'}
|
{saved ? 'Lugar guardado' : 'Guardar lugar'}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div className="inline-flex items-center gap-2 text-sm text-slate-300">
|
<div className="inline-flex items-center gap-2 text-sm text-slate-300">
|
||||||
|
|||||||
@ -297,7 +297,7 @@ export default function MapPage() {
|
|||||||
href={selectedItem.href}
|
href={selectedItem.href}
|
||||||
className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]"
|
className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]"
|
||||||
>
|
>
|
||||||
Ver detalle
|
Ver en la guía
|
||||||
<BaseIcon path={mdiChevronRight} size={16} />
|
<BaseIcon path={mdiChevronRight} size={16} />
|
||||||
</Link>
|
</Link>
|
||||||
<a
|
<a
|
||||||
@ -330,7 +330,7 @@ export default function MapPage() {
|
|||||||
|
|
||||||
<div className="rounded-[2rem] border border-white/10 bg-white/5 p-6 shadow-xl shadow-black/20">
|
<div className="rounded-[2rem] border border-white/10 bg-white/5 p-6 shadow-xl shadow-black/20">
|
||||||
<div className="text-xs font-bold uppercase tracking-[0.35em] text-[#FDE68A]">Ruta desde el mapa</div>
|
<div className="text-xs font-bold uppercase tracking-[0.35em] text-[#FDE68A]">Ruta desde el mapa</div>
|
||||||
<h2 className="mt-2 text-2xl font-black text-white">Pins seleccionados</h2>
|
<h2 className="mt-2 text-2xl font-black text-white">Paradas seleccionadas</h2>
|
||||||
{selectedRouteItems.length ? (
|
{selectedRouteItems.length ? (
|
||||||
<div className="mt-5 space-y-3">
|
<div className="mt-5 space-y-3">
|
||||||
{selectedRouteItems.map((item, index) => (
|
{selectedRouteItems.map((item, index) => (
|
||||||
@ -357,7 +357,7 @@ export default function MapPage() {
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div className="mt-5 rounded-[1.6rem] border border-dashed border-white/10 bg-[#04111f]/40 p-5 text-sm leading-6 text-slate-300">
|
<div className="mt-5 rounded-[1.6rem] border border-dashed border-white/10 bg-[#04111f]/40 p-5 text-sm leading-6 text-slate-300">
|
||||||
Toca varios pins para armar una mini ruta. Necesitas al menos dos para trazarla.
|
Marca varias paradas para armar una mini ruta. Con dos o más ya puedes abrirla.
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@ -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]"
|
className="mt-5 inline-flex items-center gap-2 rounded-full bg-white px-5 py-3 text-sm font-bold text-[#04111f]"
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiMapSearchOutline} size={16} />
|
<BaseIcon path={mdiMapSearchOutline} size={16} />
|
||||||
Trazar Ruta
|
Abrir ruta
|
||||||
</a>
|
</a>
|
||||||
) : null}
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
@ -378,9 +378,9 @@ export default function MapPage() {
|
|||||||
|
|
||||||
{!visibleItems.length ? (
|
{!visibleItems.length ? (
|
||||||
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
||||||
<h2 className="text-2xl font-black text-white">No hay pins visibles con esos filtros</h2>
|
<h2 className="text-2xl font-black text-white">Con esos filtros no se ve ninguna parada en el mapa</h2>
|
||||||
<p className="mt-3 text-sm leading-6 text-slate-300">
|
<p className="mt-3 text-sm leading-6 text-slate-300">
|
||||||
Activa chinchorros o lugares nuevamente, o limpia la búsqueda para reconstruir el mapa.
|
Vuelve a activar chinchorros o lugares, o limpia la búsqueda para verlo completo otra vez.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
@ -91,7 +91,7 @@ export default function FavoritesPage() {
|
|||||||
|
|
||||||
const handleRemoveFavorite = (category: FavoriteCategory, itemSlug: string) => {
|
const handleRemoveFavorite = (category: FavoriteCategory, itemSlug: string) => {
|
||||||
removeFavorite(category, itemSlug, activeListId);
|
removeFavorite(category, itemSlug, activeListId);
|
||||||
setFeedback('Favorito removido de la lista activa.');
|
setFeedback('Se quitó de la lista activa.');
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleRemoveList = () => {
|
const handleRemoveList = () => {
|
||||||
@ -122,7 +122,7 @@ export default function FavoritesPage() {
|
|||||||
Crea listas y guarda tus próximos jangueos
|
Crea listas y guarda tus próximos jangueos
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mt-3 text-base leading-7 text-slate-300">
|
<p className="mt-3 text-base leading-7 text-slate-300">
|
||||||
En esta primera iteración, tus favoritos viven en el navegador: puedes crear listas,
|
Tus favoritos se guardan en este dispositivo: puedes crear listas,
|
||||||
elegir una lista activa y compartirla por WhatsApp.
|
elegir una lista activa y compartirla por WhatsApp.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -212,7 +212,7 @@ export default function FavoritesPage() {
|
|||||||
onClick={handleClearList}
|
onClick={handleClearList}
|
||||||
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-transparent px-4 py-2 text-sm font-semibold text-slate-200 transition hover:border-white/20 hover:bg-white/5"
|
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-transparent px-4 py-2 text-sm font-semibold text-slate-200 transition hover:border-white/20 hover:bg-white/5"
|
||||||
>
|
>
|
||||||
Vaciar lista activa
|
Vaciar esta lista
|
||||||
</button>
|
</button>
|
||||||
{activeListId !== DEFAULT_PUBLIC_LIST_ID ? (
|
{activeListId !== DEFAULT_PUBLIC_LIST_ID ? (
|
||||||
<button
|
<button
|
||||||
@ -242,7 +242,7 @@ export default function FavoritesPage() {
|
|||||||
].join(' ')}
|
].join(' ')}
|
||||||
>
|
>
|
||||||
<div className="text-xs uppercase tracking-[0.25em] text-slate-400">
|
<div className="text-xs uppercase tracking-[0.25em] text-slate-400">
|
||||||
{isActive ? 'Lista activa' : 'Toca para activar'}
|
{isActive ? 'Lista activa' : 'Usar esta lista'}
|
||||||
</div>
|
</div>
|
||||||
<h3 className="mt-2 text-2xl font-black text-white">{list.name}</h3>
|
<h3 className="mt-2 text-2xl font-black text-white">{list.name}</h3>
|
||||||
<p className="mt-2 text-sm leading-6 text-slate-300">{list.description}</p>
|
<p className="mt-2 text-sm leading-6 text-slate-300">{list.description}</p>
|
||||||
@ -296,7 +296,7 @@ export default function FavoritesPage() {
|
|||||||
href={item.itemHref}
|
href={item.itemHref}
|
||||||
className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]"
|
className="inline-flex items-center gap-2 rounded-full bg-white px-4 py-2 text-sm font-semibold text-[#04111f]"
|
||||||
>
|
>
|
||||||
Ver detalle
|
Ver en la guía
|
||||||
<BaseIcon path={mdiChevronRight} size={16} />
|
<BaseIcon path={mdiChevronRight} size={16} />
|
||||||
</Link>
|
</Link>
|
||||||
<button
|
<button
|
||||||
@ -313,7 +313,7 @@ export default function FavoritesPage() {
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div className="mt-5 rounded-[1.6rem] border border-dashed border-white/10 bg-[#04111f]/40 p-6 text-sm leading-6 text-slate-300">
|
<div className="mt-5 rounded-[1.6rem] border border-dashed border-white/10 bg-[#04111f]/40 p-6 text-sm leading-6 text-slate-300">
|
||||||
Todavía no tienes {categoryLabels[category].toLowerCase()} guardados en esta lista.
|
Aquí todavía no has guardado {categoryLabels[category].toLowerCase()} en esta lista.
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</article>
|
</article>
|
||||||
@ -324,9 +324,9 @@ export default function FavoritesPage() {
|
|||||||
{!activeFavorites.length ? (
|
{!activeFavorites.length ? (
|
||||||
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
||||||
<BaseIcon path={mdiStarOutline} size={42} className="mx-auto text-[#FDE68A]" />
|
<BaseIcon path={mdiStarOutline} size={42} className="mx-auto text-[#FDE68A]" />
|
||||||
<h2 className="mt-4 text-3xl font-black text-white">Tu lista activa todavía está vacía</h2>
|
<h2 className="mt-4 text-3xl font-black text-white">Esta lista está vacía por ahora</h2>
|
||||||
<p className="mt-3 text-sm leading-6 text-slate-300">
|
<p className="mt-3 text-sm leading-6 text-slate-300">
|
||||||
Empieza guardando una ruta, un chinchorro o un lugar desde el resto de la guía pública.
|
Guarda una ruta, un chinchorro o un lugar desde la guía y aquí se te irá armando el plan.
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-5 flex flex-wrap items-center justify-center gap-3">
|
<div className="mt-5 flex flex-wrap items-center justify-center gap-3">
|
||||||
<Link
|
<Link
|
||||||
|
|||||||
@ -127,7 +127,7 @@ export default function RestaurantsPage() {
|
|||||||
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-5 py-3 text-sm font-bold text-white transition hover:border-white/20 hover:bg-white/10"
|
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-5 py-3 text-sm font-bold text-white transition hover:border-white/20 hover:bg-white/10"
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiShareVariantOutline} size={16} />
|
<BaseIcon path={mdiShareVariantOutline} size={16} />
|
||||||
Compartir esta página
|
Compartir selección
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -373,7 +373,7 @@ export default function RestaurantsPage() {
|
|||||||
].join(' ')}
|
].join(' ')}
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiStarOutline} size={16} />
|
<BaseIcon path={mdiStarOutline} size={16} />
|
||||||
{saved ? 'Guardado' : 'Guardar en Favoritos'}
|
{saved ? 'Chinchorro guardado' : 'Guardar chinchorro'}
|
||||||
</button>
|
</button>
|
||||||
{chinchorro.routeSlug ? (
|
{chinchorro.routeSlug ? (
|
||||||
<Link
|
<Link
|
||||||
@ -393,9 +393,9 @@ export default function RestaurantsPage() {
|
|||||||
|
|
||||||
{!filteredChinchorros.length ? (
|
{!filteredChinchorros.length ? (
|
||||||
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
||||||
<h2 className="text-2xl font-black text-white">No encontramos chinchorros con esos filtros</h2>
|
<h2 className="text-2xl font-black text-white">Con esos filtros no salió ningún chinchorro</h2>
|
||||||
<p className="mt-3 text-sm leading-6 text-slate-300">
|
<p className="mt-3 text-sm leading-6 text-slate-300">
|
||||||
Cambia la región, quita el filtro de abierto ahora o busca por pueblo para ver más opciones.
|
Prueba otro pueblo, quita “Abierto ahora” o cambia la región para ver más opciones.
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
@ -49,13 +49,13 @@ export default function RouteDetailPage() {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Head>
|
<Head>
|
||||||
<title>Chinchorreo PR | Ruta no encontrada</title>
|
<title>Chinchorreo PR | Esa ruta no aparece por aquí</title>
|
||||||
</Head>
|
</Head>
|
||||||
<PublicShell activeSection="rutas">
|
<PublicShell activeSection="rutas">
|
||||||
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
||||||
<h1 className="text-3xl font-black text-white">Ruta no encontrada</h1>
|
<h1 className="text-3xl font-black text-white">Esa ruta no aparece por aquí</h1>
|
||||||
<p className="mt-3 text-sm leading-6 text-slate-300">
|
<p className="mt-3 text-sm leading-6 text-slate-300">
|
||||||
Parece que esta ruta todavía no está publicada en la primera iteración de la guía.
|
Puede que el enlace haya cambiado o que todavía no la tengamos publicada en la guía.
|
||||||
</p>
|
</p>
|
||||||
<Link
|
<Link
|
||||||
href="/rutas"
|
href="/rutas"
|
||||||
@ -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"
|
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"
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiCompassOutline} size={16} />
|
<BaseIcon path={mdiCompassOutline} size={16} />
|
||||||
Iniciar Navegación
|
Abrir navegación
|
||||||
</a>
|
</a>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@ -156,7 +156,7 @@ export default function RouteDetailPage() {
|
|||||||
].join(' ')}
|
].join(' ')}
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiStarOutline} size={16} />
|
<BaseIcon path={mdiStarOutline} size={16} />
|
||||||
{saved ? 'Ruta guardada' : 'Agregar a Favoritos ⭐'}
|
{saved ? 'Ruta guardada' : 'Guardar ruta'}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@ -164,7 +164,7 @@ export default function RouteDetailPage() {
|
|||||||
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/10 px-5 py-3 text-sm font-bold text-white transition hover:border-white/20 hover:bg-white/15"
|
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/10 px-5 py-3 text-sm font-bold text-white transition hover:border-white/20 hover:bg-white/15"
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiShareVariantOutline} size={16} />
|
<BaseIcon path={mdiShareVariantOutline} size={16} />
|
||||||
Compartir por WhatsApp
|
Compartir ruta
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -272,7 +272,7 @@ export default function RouteDetailPage() {
|
|||||||
href="/mis-favoritos"
|
href="/mis-favoritos"
|
||||||
className="mt-5 inline-flex items-center gap-2 text-sm font-semibold text-[#FDE68A]"
|
className="mt-5 inline-flex items-center gap-2 text-sm font-semibold text-[#FDE68A]"
|
||||||
>
|
>
|
||||||
Ver mis favoritos
|
Abrir favoritos
|
||||||
<BaseIcon path={mdiChevronRight} size={16} />
|
<BaseIcon path={mdiChevronRight} size={16} />
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -113,7 +113,7 @@ export default function RoutesPage() {
|
|||||||
Explora la isla parada por parada
|
Explora la isla parada por parada
|
||||||
</h1>
|
</h1>
|
||||||
<p className="mt-3 text-base leading-7 text-slate-300">
|
<p className="mt-3 text-base leading-7 text-slate-300">
|
||||||
Esta primera iteración te deja descubrir rutas populares, ver sus paradas en orden,
|
Aquí puedes descubrir rutas populares, ver sus paradas en orden,
|
||||||
iniciar navegación y guardarlas en una lista personalizada.
|
iniciar navegación y guardarlas en una lista personalizada.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@ -121,7 +121,7 @@ export default function RoutesPage() {
|
|||||||
<div className="font-semibold text-white">Lista activa</div>
|
<div className="font-semibold text-white">Lista activa</div>
|
||||||
<div className="mt-1 text-[#FDE68A]">{activeList?.name || 'Mi chinchorreo'}</div>
|
<div className="mt-1 text-[#FDE68A]">{activeList?.name || 'Mi chinchorreo'}</div>
|
||||||
<Link href="/mis-favoritos" className="mt-3 inline-flex items-center gap-2 text-sm font-semibold text-[#A7F3D0]">
|
<Link href="/mis-favoritos" className="mt-3 inline-flex items-center gap-2 text-sm font-semibold text-[#A7F3D0]">
|
||||||
Ver favoritos
|
Abrir favoritos
|
||||||
<BaseIcon path={mdiChevronRight} size={16} />
|
<BaseIcon path={mdiChevronRight} size={16} />
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
@ -180,7 +180,7 @@ export default function RoutesPage() {
|
|||||||
<div className="mt-4 flex flex-wrap items-center gap-3 text-sm text-slate-300">
|
<div className="mt-4 flex flex-wrap items-center gap-3 text-sm text-slate-300">
|
||||||
<div className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2">
|
<div className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2">
|
||||||
<BaseIcon path={mdiFilterVariant} size={16} />
|
<BaseIcon path={mdiFilterVariant} size={16} />
|
||||||
{filteredRoutes.length} rutas que matchean tu vibe
|
{filteredRoutes.length} rutas que van con tu plan
|
||||||
</div>
|
</div>
|
||||||
{feedback ? (
|
{feedback ? (
|
||||||
<div className="inline-flex items-center gap-2 rounded-full border border-[#228B22]/30 bg-[#228B22]/10 px-3 py-2 text-[#A7F3D0]">
|
<div className="inline-flex items-center gap-2 rounded-full border border-[#228B22]/30 bg-[#228B22]/10 px-3 py-2 text-[#A7F3D0]">
|
||||||
@ -251,7 +251,7 @@ export default function RoutesPage() {
|
|||||||
href={`/rutas/${route.slug}`}
|
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"
|
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 detalle
|
Ver ruta
|
||||||
<BaseIcon path={mdiChevronRight} size={16} />
|
<BaseIcon path={mdiChevronRight} size={16} />
|
||||||
</Link>
|
</Link>
|
||||||
<a
|
<a
|
||||||
@ -274,7 +274,7 @@ export default function RoutesPage() {
|
|||||||
].join(' ')}
|
].join(' ')}
|
||||||
>
|
>
|
||||||
<BaseIcon path={mdiStarOutline} size={16} />
|
<BaseIcon path={mdiStarOutline} size={16} />
|
||||||
{saved ? 'Guardada' : 'Agregar a Favoritos'}
|
{saved ? 'Ruta guardada' : 'Guardar ruta'}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
@ -283,7 +283,7 @@ export default function RoutesPage() {
|
|||||||
}
|
}
|
||||||
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-transparent px-5 py-3 text-sm font-bold text-slate-200 transition hover:border-white/20 hover:bg-white/5"
|
className="inline-flex items-center gap-2 rounded-full border border-white/10 bg-transparent px-5 py-3 text-sm font-bold text-slate-200 transition hover:border-white/20 hover:bg-white/5"
|
||||||
>
|
>
|
||||||
Compartir por WhatsApp
|
Compartir ruta
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -294,10 +294,9 @@ export default function RoutesPage() {
|
|||||||
|
|
||||||
{!filteredRoutes.length ? (
|
{!filteredRoutes.length ? (
|
||||||
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
<section className="rounded-[2rem] border border-dashed border-white/15 bg-white/5 p-10 text-center shadow-xl shadow-black/20">
|
||||||
<h2 className="text-2xl font-black text-white">No encontramos una ruta con esos filtros</h2>
|
<h2 className="text-2xl font-black text-white">Con esos filtros no salió ninguna ruta</h2>
|
||||||
<p className="mt-3 text-sm leading-6 text-slate-300">
|
<p className="mt-3 text-sm leading-6 text-slate-300">
|
||||||
Prueba quitando una etiqueta, cambia la dificultad o usa el botón “Sorpréndeme” para
|
Quita una etiqueta, cambia la dificultad o dale a “Sorpréndeme” para que aparezca otra opción.
|
||||||
descubrir una ruta nueva.
|
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-5 flex flex-wrap items-center justify-center gap-3">
|
<div className="mt-5 flex flex-wrap items-center justify-center gap-3">
|
||||||
<button
|
<button
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user