import Link from "next/link"; import { Suspense } from "react"; import { tripService } from "@/server/services/trip.service"; import { TripCard } from "@/features/trip/components/trip-card"; import { TripFilter } from "@/features/trip/components/trip-filter"; interface TripsPageProps { searchParams: Promise<{ q?: string; from?: string; to?: string }>; } export default async function TripsPage({ searchParams }: TripsPageProps) { const params = await searchParams; const hasFilters = params.q || params.from || params.to; const filters = { q: params.q, from: params.from, to: params.to, }; const [trips, allTrips] = await Promise.all([ tripService.getOpenTrips(filters), hasFilters ? tripService.getOpenTrips() : null, ]); const totalCount = hasFilters ? allTrips!.length : trips.length; return (

Open Trip Pendakian

{hasFilters ? `${trips.length} dari ${totalCount} trip ditemukan` : `${trips.length} trip tersedia — pilih dan langsung join`}

+ Buat Trip
{/* Filter */}
{trips.length === 0 ? (
{hasFilters ? "🔍" : "🏕️"}

{hasFilters ? "Tidak ada trip yang cocok" : "Belum ada trip tersedia"}

{hasFilters ? "Coba ubah kata kunci atau rentang tanggal pencarian" : "Jadilah yang pertama membuat open trip pendakian!"}

{!hasFilters && ( Buat Trip Baru )}
) : (
{trips.map((trip) => ( ))}
)}
); }