feat(portfolio): retire the Unmatched tab; surface low_score (ADR-0057 Phase 4/5)

Phase 4: the portfolio landing page now renders the property table directly.
UPRN matching is confirmed during onboarding, so properties arrive matched and
the post-onboarding "Unmatched" tab is no longer needed (tab components left in
place pending a legacy-no-UPRN reconciliation follow-up).
Phase 5: AddressesPanel labels the new "low_score" status "Low-confidence match".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jun-te Kim 2026-07-07 16:29:19 +00:00
parent 8b99e7029c
commit 3f649755b4
2 changed files with 8 additions and 14 deletions

View file

@ -63,6 +63,8 @@ function statusLabel(status: string): string {
switch (status) {
case "ambiguous_duplicate":
return "Ambiguous match";
case "low_score":
return "Low-confidence match";
case "unmatched":
return "No match";
case "invalid_postcode":

View file

@ -1,7 +1,4 @@
import PropertyTable from "../components/PropertyTable";
import UnmatchedProperties from "../components/UnmatchedProperties";
import PortfolioTabs from "../components/PortfolioTabs";
import { getUnmatchedProperties } from "@/lib/properties/unmatched";
export const revalidate = 60;
@ -14,15 +11,10 @@ export default async function Page(props: {
const params = await props.params;
const portfolioId = params.slug;
const unmatched = await getUnmatchedProperties(portfolioId);
return (
<PortfolioTabs
needsAttentionCount={unmatched.length}
properties={<PropertyTable portfolioId={portfolioId} />}
needsAttention={
<UnmatchedProperties properties={unmatched} portfolioId={portfolioId} />
}
/>
);
// UPRN matching is now confirmed during bulk-upload onboarding (ADR-0057), so
// properties arrive already matched — the portfolio-level "Unmatched" tab is
// retired. The tab components (PortfolioTabs / UnmatchedProperties /
// getUnmatchedProperties) are left in place for now, pending a follow-up that
// reconciles legacy no-UPRN properties onboarded before this feature.
return <PropertyTable portfolioId={portfolioId} />;
}