From 9e3df59ea04eb01e23400b4d47cb9c413139cbaa Mon Sep 17 00:00:00 2001
From: Khalim Conn-Kowlessar
Date: Thu, 28 May 2026 15:33:08 +0000
Subject: [PATCH] Broaden the Awaab's Law panel to cover other condition issues
Coordinators record non-damp/mould observations (e.g. wasp nests) in the
same comments field, but the section was framed entirely around damp and
mould. Reframe the panel copy and table titles around "condition issues",
keep "Damp, Mould" up front so the Awaab's Law urgency still leads, and
mark the damp/mould rows specifically with a red badge column so they
don't blend into the broader list.
Co-Authored-By: Claude Opus 4.7 (1M context)
---
.../your-projects/live/DampMouldRiskPanel.tsx | 14 +++++++++-----
.../your-projects/live/DrillDownTable.tsx | 16 ++++++++++++++++
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/DampMouldRiskPanel.tsx b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/DampMouldRiskPanel.tsx
index 816de4b..e3667c2 100644
--- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/DampMouldRiskPanel.tsx
+++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/DampMouldRiskPanel.tsx
@@ -106,6 +106,7 @@ export default function DampMouldRiskPanel({
const surveyColumns: (keyof ClassifiedDeal)[] = [
"dealname",
"landlordPropertyId",
+ "dampMouldFlag",
"majorConditionIssueDescription",
"majorConditionIssuePhotosS3",
];
@@ -113,6 +114,7 @@ export default function DampMouldRiskPanel({
const surveyLabels: Partial> = {
dealname: "Address",
landlordPropertyId: "Property Ref",
+ dampMouldFlag: "Damp & Mould",
majorConditionIssueDescription: "Surveyor Notes",
majorConditionIssuePhotosS3: "Photo Evidence",
};
@@ -120,6 +122,7 @@ export default function DampMouldRiskPanel({
const coordColumns: (keyof ClassifiedDeal)[] = [
"dealname",
"landlordPropertyId",
+ "dampMouldFlag",
"dampMouldAndRepairComments",
"coordinator",
];
@@ -127,6 +130,7 @@ export default function DampMouldRiskPanel({
const coordLabels: Partial> = {
dealname: "Address",
landlordPropertyId: "Property Ref",
+ dampMouldFlag: "Damp & Mould",
dampMouldAndRepairComments: "Comments",
coordinator: "Coordinator",
};
@@ -145,7 +149,7 @@ export default function DampMouldRiskPanel({
- Awaab's Law — Damp & Mould Risk
+ Awaab's Law — Damp, Mould & Other Condition Issues
Comparison of flags raised at survey vs coordination stage
@@ -159,7 +163,7 @@ export default function DampMouldRiskPanel({
- No damp or mould flags recorded for this project.
+ No condition issues recorded for this project.
) : (
@@ -174,7 +178,7 @@ export default function DampMouldRiskPanel({
color="red"
onClick={() =>
onOpenTable(
- "Damp & Mould — Survey Stage Flags",
+ "Condition Issues — Survey Stage",
risk.surveyFlagDeals,
surveyColumns,
surveyLabels
@@ -190,7 +194,7 @@ export default function DampMouldRiskPanel({
color="red"
onClick={() =>
onOpenTable(
- "Damp & Mould — Coordination Stage Flags",
+ "Condition Issues — Coordination Stage",
risk.coordinatorFlagDeals,
coordColumns,
coordLabels
@@ -208,7 +212,7 @@ export default function DampMouldRiskPanel({
{risk.coordinatorFlagCount - risk.surveyFlagCount} additional{" "}
{risk.coordinatorFlagCount - risk.surveyFlagCount === 1 ? "property was" : "properties were"}{" "}
- flagged for damp & mould at the coordination stage that{" "}
+ flagged with condition issues at the coordination stage that{" "}
{risk.coordinatorFlagCount - risk.surveyFlagCount === 1 ? "was" : "were"} not
identified during the initial survey.
diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/DrillDownTable.tsx b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/DrillDownTable.tsx
index 25dc5f8..c5b314d 100644
--- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/DrillDownTable.tsx
+++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/DrillDownTable.tsx
@@ -34,6 +34,19 @@ const NO_COMMENT_PLACEHOLDER =
"Damp & mould discovered — no note from coordinator";
const COMMENT_PREVIEW_LIMIT = 60;
+function DampMouldBadgeCell({ value }: { value: unknown }) {
+ const isYes =
+ typeof value === "string" && value.trim().toLowerCase() === "yes";
+
+ if (!isYes) return null;
+
+ return (
+
+ Damp & Mould
+
+ );
+}
+
function DampMouldCommentCell({ value }: { value: unknown }) {
const comment = typeof value === "string" ? value.trim() : "";
@@ -176,6 +189,9 @@ export default function DrillDownTable({
if (key === "dampMouldAndRepairComments") {
return ;
}
+ if (key === "dampMouldFlag") {
+ return ;
+ }
return (
{value != null ? String(value) : (