Skip to content

Commit eca0ed6

Browse files
authored
fix date comparison (#595)
1 parent 11b4b34 commit eca0ed6

2 files changed

Lines changed: 23 additions & 3 deletions

File tree

components/PoliticianEmbed/PoliticianEmbed.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,17 @@ export function PoliticianEmbed({
4545
const biographySource = politician?.biographySource;
4646
const officeTitle = `${politician?.currentOffice?.title} - ${politician?.currentOffice?.subtitleShort}`;
4747
const upcomingRace = politician?.upcomingRace;
48-
const isPastElection = new Date(upcomingRace?.electionDate) < new Date();
48+
// Compare calendar dates so election day still shows "Running For" (avoids UTC midnight vs local time)
49+
const electionDateStr = upcomingRace?.electionDate
50+
? (typeof upcomingRace.electionDate === "string"
51+
? upcomingRace.electionDate
52+
: new Date(upcomingRace.electionDate).toISOString()
53+
).slice(0, 10)
54+
: "";
55+
const today = new Date();
56+
const todayStr = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, "0")}-${String(today.getDate()).padStart(2, "0")}`;
57+
const isPastElection =
58+
electionDateStr !== "" && electionDateStr < todayStr;
4959

5060
if (isLoading) return <LoaderFlag />;
5161
if (error) return <div>Something went wrong loading this politician.</div>;

components/PoliticianPage/ElectionInfo/ElectionInfoSection.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,23 @@ function ElectionInfoSection() {
4141
});
4242
const politicianId = data?.politicianBySlug?.id;
4343
const upcomingRace = data?.politicianBySlug?.upcomingRace;
44-
const isPastElection = new Date(upcomingRace?.electionDate) < new Date();
44+
// Compare calendar dates so election day still shows "Next Election" (avoids UTC midnight vs local time)
45+
const electionDateStr = upcomingRace?.electionDate
46+
? (typeof upcomingRace.electionDate === "string"
47+
? upcomingRace.electionDate
48+
: new Date(upcomingRace.electionDate).toISOString()
49+
).slice(0, 10)
50+
: "";
51+
const today = new Date();
52+
const todayStr = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, "0")}-${String(today.getDate()).padStart(2, "0")}`;
53+
const isPastElection =
54+
electionDateStr !== "" && electionDateStr < todayStr;
4555

4656
if (isLoading) return <LoaderFlag />;
4757

4858
const opponents =
4959
upcomingRace?.candidates?.filter(
50-
(candidate) => candidate.id != politicianId
60+
(candidate) => candidate.id != politicianId,
5161
) || [];
5262
if (!upcomingRace) return null;
5363

0 commit comments

Comments
 (0)