From bb304443161d1a036f788de99f648939f2ae648a Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Wed, 28 Jan 2026 13:52:24 +0000 Subject: [PATCH 1/2] fixing hydration & session bug --- src/app/api/plan/trigger/route.ts | 3 +- .../building-passport/RecommendationCard.tsx | 5 ++-- .../settings/PortfolioSettings.tsx | 29 ++++++++++++++----- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/app/api/plan/trigger/route.ts b/src/app/api/plan/trigger/route.ts index d6146a9..35c09ae 100644 --- a/src/app/api/plan/trigger/route.ts +++ b/src/app/api/plan/trigger/route.ts @@ -35,7 +35,6 @@ const PresignedUrlBodySchema = z export async function POST(request: NextRequest) { // For the moment, this api specifically handles uploads of csvs - console.log("Triggering plan build"); const body = await request.json(); let validatedBody; @@ -78,7 +77,7 @@ export async function POST(request: NextRequest) { JSON.stringify({ msg: "Error triggering plan" }), { status: 500, - } + }, ); } diff --git a/src/app/components/building-passport/RecommendationCard.tsx b/src/app/components/building-passport/RecommendationCard.tsx index f6bfdf6..d03da7f 100644 --- a/src/app/components/building-passport/RecommendationCard.tsx +++ b/src/app/components/building-passport/RecommendationCard.tsx @@ -29,6 +29,7 @@ const TitleMap = { loft_insulation: "Loft Insulation", room_roof_insulation: "Room Roof Insulation", flat_roof_insulation: "Flat Roof Insulation", + sloping_ceiling_insulation: "Sloping Ceiling Insulation", // Floor solid_floor_insulation: "Solid Floor Insulation", suspended_floor_insulation: "Suspended Floor Insulation", @@ -104,12 +105,12 @@ export default function RecommendationCard({ setTotalKwhSavings, }: RecommendationCardProps) { const defaultComponent = recommendationData.find( - (rec: Recommendation) => rec.default + (rec: Recommendation) => rec.default, ) as Recommendation; // A recommendation type could have no default recommendation, so we need to check if it exists const alreadyInstalled = recommendationData.some( - (rec) => rec.alreadyInstalled + (rec) => rec.alreadyInstalled, ); const [cardComponent, setCardComponent] = diff --git a/src/app/portfolio/[slug]/(portfolio)/settings/PortfolioSettings.tsx b/src/app/portfolio/[slug]/(portfolio)/settings/PortfolioSettings.tsx index 8245320..4c5e22d 100644 --- a/src/app/portfolio/[slug]/(portfolio)/settings/PortfolioSettings.tsx +++ b/src/app/portfolio/[slug]/(portfolio)/settings/PortfolioSettings.tsx @@ -106,7 +106,7 @@ const updateSettings = async ({ userId: userId.toString(), action: "update", }), - } + }, ); const permissionsData = await permissionsReponse.json(); @@ -181,7 +181,7 @@ async function deletePortfolio({ userId: userId.toString(), action: "delete", }), - } + }, ); const permissionsData = await permissionsReponse.json(); @@ -201,7 +201,7 @@ async function deletePortfolio({ if (!response.ok) { throw new Error( - "deletePortfolio has been called into action but utterly failed to do the API handoff" + "deletePortfolio has been called into action but utterly failed to do the API handoff", ); } @@ -241,13 +241,13 @@ export default function PortfolioSettings({ onError: (error) => { console.error( "Because the API hand off failed, we're right back here at the mutation station", - error + error, ); }, }); const [portfolioName, setPortfolioName] = useState( - portfolioSettingsData.name + portfolioSettingsData.name, ); const [portfolioBudget, setPortfolioBudget] = useState< @@ -255,11 +255,11 @@ export default function PortfolioSettings({ >(portfolioSettingsData.budget); const [portfolioGoal, setPortfolioGoal] = useState( - portfolioSettingsData.goal + portfolioSettingsData.goal, ); const [portfolioStatus, setPortfolioStatus] = useState( - portfolioSettingsData.status + portfolioSettingsData.status, ); // Set up state for deleteModal and deleteConfirmation @@ -268,6 +268,11 @@ export default function PortfolioSettings({ const [deleteConfirmationByName, setDeleteConfirmationByName] = useState(""); + if (session.status === "loading") { + // You can return a loading spinner or placeholder here + return
Loading...
; + } + if (!session.data) { // The user is not logged in, redirect them to sign in router.push("/"); @@ -473,7 +478,14 @@ export default function PortfolioSettings({
- Danger Zone: + + + + Danger Zone: + + + + @@ -483,6 +495,7 @@ export default function PortfolioSettings({ assigned to this portfolio

+