TypeScript 90.1%
JavaScript 3.2%
Python 3.2%
CSS 1.8%
HTML 1.8%
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