← back to Homesonspec

apps/web/src/app/search/page.tsx

22 lines

import SearchClient from "./SearchClient";

export const dynamic = "force-dynamic";

// Pass the FULL query string through so the grid's drill atoms are URL-addressable:
// /search?city=Austin&status=MOVE_IN_READY&st=TX deep-links straight into a
// pre-filtered grid (href-drill rule: URL-addressable filters).
export default async function SearchPage({
  searchParams,
}: {
  searchParams: Promise<Record<string, string | string[] | undefined>>;
}) {
  const sp = await searchParams;
  const params = new URLSearchParams();
  for (const [k, v] of Object.entries(sp)) {
    if (Array.isArray(v)) v.forEach((x) => params.append(k, x));
    else if (v !== undefined) params.set(k, v);
  }
  const q = typeof sp.q === "string" ? sp.q : "";
  return <SearchClient initialQuery={q} initialParams={params.toString()} />;
}