From 8f39bbb482bdba0e845821d76ff87caa7576bfb3 Mon Sep 17 00:00:00 2001 From: ryder777777 Date: Tue, 20 Oct 2026 15:05:34 +0000 Subject: [PATCH] fix(frontend): guard nested campaign property accesses in CampaignDetail (#1477) --- frontend/src/CampaignDetail.jsx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/frontend/src/CampaignDetail.jsx b/frontend/src/CampaignDetail.jsx index 14c4d8ff..ad427b1d 100644 --- a/frontend/src/CampaignDetail.jsx +++ b/frontend/src/CampaignDetail.jsx @@ -101,6 +101,7 @@ export default function CampaignDetail({ const incomingRef = searchParams.get('ref'); const isLoading = !campaign && !error; + const isMissingCampaign = !isLoading && !error && !campaign; const handleRegistered = useCallback(() => { if (!incomingRef || !walletAddress || !id) return; @@ -251,10 +252,10 @@ export default function CampaignDetail({ ) : (
-

Campaign #{campaign.id}

+

Campaign #{campaign?.id ?? id}

-

{campaign.name}

- +

{campaign?.name ?? 'Untitled Campaign'}

+
{lastUpdated ? (

Last updated {lastUpdated.toLocaleTimeString()}

@@ -355,22 +356,22 @@ export default function CampaignDetail({

Description

- {campaign.description || 'No description provided.'} + {campaign?.description || 'No description provided.'}

Reward per Action

-

{campaign.rewardPerAction ?? 0} pts

+

{campaign?.rewardPerAction ?? 0} pts

Created On

-

{formatDate(campaign.createdAt)}

+

{formatDate(campaign?.createdAt)}

- +

Ready to participate?

@@ -404,9 +405,9 @@ export default function CampaignDetail({

Invite Friends

- {campaign.referralBonusPoints > 0 ? ( + {(campaign?.referralBonusPoints ?? 0) > 0 ? (

- Earn +{campaign.referralBonusPoints} bonus pts per friend + Earn +{campaign?.referralBonusPoints ?? 0} bonus pts per friend who registers

) : null}