SPB Git forge

spb/uqo-eval

Public
55commits 2branches 0releases
134.4 MBsize
maindefault branch
yesterdaylast push
TypeScript 90.1% JavaScript 3.2% Python 3.2% CSS 1.8% HTML 1.8%
1.3 KB · 44 lines tsx
Raw Blame History
1// UQO Éval — laboratoire pédagogique d'évaluation immobilière2import type { Metadata } from "next";3import { notFound } from "next/navigation";4import { estimateManual } from "@/lib/estimator";5import ResultView from "@/components/ResultView";67export const dynamic = "force-dynamic";89// Page paramétrique (querystring libre) : exclue de l'index pour éviter10// un espace d'URL infini ; les fiches /estimation/[id] restent indexables.11export const metadata: Metadata = {12  title: "Estimation manuelle",13  robots: { index: false, follow: true },14};1516export default async function ManualEstimationPage({17  searchParams,18}: {19  searchParams: Promise<Record<string, string | string[] | undefined>>;20}) {21  const sp = await searchParams;22  const one = (k: string) => {23    const v = sp[k];24    return Array.isArray(v) ? v[0] : v;25  };26  const municipality = one("municipality");27  const typeProp = one("typeProp");28  if (!municipality || !typeProp) notFound();29  const num = (k: string) => {30    const v = one(k);31    const n = v ? Number(v) : NaN;32    return Number.isFinite(n) ? n : undefined;33  };34  const data = estimateManual({35    municipality,36    typeProp,37    floorArea: num("floorArea"),38    yearBuilt: num("yearBuilt"),39    landArea: num("landArea"),40  });41  if (!data) notFound();42  return <ResultView data={data} />;43}44