import type { Metadata } from "next"; import { getTranslations } from "next-intl/server"; import { Navbar } from "@/components/layout/navbar"; import { Footer } from "@/components/layout/footer"; import { AiSearchBar } from "@/components/search/ai-search-bar"; import { CafeCard } from "@/components/cafe/cafe-card"; import { discoverCafes } from "@/lib/api"; import type { DiscoverFilters } from "@/lib/types"; import { SlidersHorizontal } from "lucide-react"; const BASE = process.env.NEXT_PUBLIC_SITE_URL ?? "https://find.meezi.ir"; export async function generateMetadata({ params, searchParams, }: { params: Promise<{ locale: string }>; searchParams: Promise>; }): Promise { const { locale } = await params; const t = await getTranslations({ locale, namespace: "meta" }); const q = (await searchParams)?.q; const title = q ? `${q} — ${t("searchTitle")}` : t("searchTitle"); return { title, robots: { index: false }, }; } const SORT_OPTIONS_FA = [ { value: "", label: "مرتبط‌ترین" }, { value: "rating", label: "بالاترین امتیاز" }, ]; const SORT_OPTIONS_EN = [ { value: "", label: "Most relevant" }, { value: "rating", label: "Highest rated" }, ]; export default async function SearchPage({ params, searchParams, }: { params: Promise<{ locale: string }>; searchParams: Promise>; }) { const { locale } = await params; const t = await getTranslations({ locale, namespace: "search" }); const isFa = locale === "fa"; const sp = (await searchParams) ?? {}; const filters: DiscoverFilters = { q: sp.q, city: sp.city, sort: sp.sort, openNow: sp.openNow === "true", minRating: sp.minRating ? Number(sp.minRating) : undefined, themes: sp.themes ? sp.themes.split(",") : undefined, vibes: sp.vibes ? sp.vibes.split(",") : undefined, priceTier: sp.priceTier, }; const results = await discoverCafes(filters); const sortOpts = isFa ? SORT_OPTIONS_FA : SORT_OPTIONS_EN; return ( <>
{/* Search bar */}
{/* Sidebar filters */} {/* Results */}

{t("resultsCount", { count: results.length })}

{results.length === 0 ? (

{isFa ? "نتیجه‌ای یافت نشد — جستجوی دیگری امتحان کنید" : "No results — try a different search"}

) : (
{results.map((cafe) => ( ))}
)}