diff --git a/frontend/src/app/site-finder/analysis/[cad]/page.tsx b/frontend/src/app/site-finder/analysis/[cad]/page.tsx index e73f256d..4b804421 100644 --- a/frontend/src/app/site-finder/analysis/[cad]/page.tsx +++ b/frontend/src/app/site-finder/analysis/[cad]/page.tsx @@ -75,8 +75,13 @@ interface PageProps { } export default function AnalysisPage({ params }: PageProps) { - // React 19: use() unwraps Promise params (app router pattern) - const { cad } = use(params); + // React 19: use() unwraps Promise params (app router pattern). + // Next.js delivers `cad` URL-encoded (":" -> "%3A"); decode once here so + // downstream hooks/components see the canonical "66:41:0204016:10" and can + // re-encode exactly once when building API URLs / hrefs (prevents double- + // encode that made backend regex reject the cad with HTTP 400). + const { cad: cadRaw } = use(params); + const cad = decodeURIComponent(cadRaw); return (
- {/* Right sidebar */} -
- - - -
+ {/* Right sidebar — hidden when ParcelDrawer is open to avoid overlap */} + {selectedParcel == null && ( +
+ + + +
+ )} {/* Parcel drawer (slide-in from right) */}