diff --git a/src/app/toronto/page.tsx b/src/app/toronto/page.tsx index 608710c..2b76d08 100644 --- a/src/app/toronto/page.tsx +++ b/src/app/toronto/page.tsx @@ -13,11 +13,8 @@ import { ELECTION } from "./vote/2026/data"; import { STAGE_ONE } from "./vote/survey-questions/questions"; import { SURVEY_PATH } from "./vote/survey-questions/path"; import { WARD_GEO, WARD_SHAPES } from "./vote/2026/wardGeo"; -import { - ELECTION_DAY, - KEY_DATES_PATH, - VOTING_PERIODS, -} from "./vote/2026/key-dates"; +import { ELECTION_DAY } from "./vote/2026/key-dates"; +import { VOLUNTEER_PATH } from "./volunteer/build-the-vote"; import { EmailCapture } from "./EmailCapture"; import { WardLookupCard } from "./WardLookupCard"; import { HeroSurface } from "./HeroSurface"; @@ -251,10 +248,13 @@ function ElectionCard(props: ElectionCardProps) { * what it is. */ function ElectionCardsSection() { - // Four topics against Yes/No, to match the four date rows beside it. const questions = STAGE_ONE.slice(0, 4); - // Off the shared calendar, so these can't drift from the page they link to. - const dates = [...VOTING_PERIODS, ELECTION_DAY]; + // The volunteer page's three steps, cut down to fit beside the survey rows. + const steps = [ + { title: "Sign up", detail: "About a minute" }, + { title: "Get matched", detail: "With a campaign" }, + { title: "Show up", detail: "Oct 26, as little as 2 hours" }, + ]; const button = "bg-dark text-linen-100 border-dark group-hover/card:bg-accent group-hover/card:border-accent"; @@ -269,27 +269,27 @@ function ElectionCardsSection() { ElectionCard). */}
-
- {dates.map((d) => ( -
+ {steps.map((step, i) => ( +
  • -
    - {d.title} -
    -
    - {d.dateLabel} -
    -
  • + + {i + 1}. {step.title} + + + {step.detail} + + ))} -
    +
    (null); const [menuOpen, setMenuOpen] = useState(false); const [showEmoji, setShowEmoji] = useState(false); const hasScrolled = useRef(false); @@ -18,20 +17,7 @@ export default function Navbar() { const pathname = usePathname(); const isToronto = pathname?.startsWith("/toronto") ?? false; const isPolling = pathname === "/polls" || pathname?.startsWith("/polls/"); - const navLinks = [...(isToronto ? TORONTO_NAV_LINKS : NAV_LINKS)]; - if (!viewer) navLinks.push({ - label: "Log in", - href: `/api/auth/login?redirect=${encodeURIComponent(pathname || "/")}`, - }); - - useEffect(() => { - let cancelled = false; - fetch("/api/auth/me", { cache: "no-store" }) - .then((response) => response.ok ? response.json() : { user: null }) - .then(({ user }) => { if (!cancelled) setViewer(user); }) - .catch(() => { if (!cancelled) setViewer(null); }); - return () => { cancelled = true; }; - }, [pathname]); + const navLinks = isToronto ? TORONTO_NAV_LINKS : NAV_LINKS; // full-screen page, no site chrome — every region's pledge page const isChromeless = isPledgePath(pathname);